1
00:00:00,000 --> 00:00:12,379
*EH2018 Vorspannmusik*

2
00:00:12,379 --> 00:00:14,759
Jochen Krapf: Okay, hallo zusammen!

3
00:00:14,759 --> 00:00:18,230
Ich bin der Jochen. Ich will heute was
erzählen, wie es der Titel schon sagt,

4
00:00:18,230 --> 00:00:21,650
über „Easy Do-It-Yourself
Internet-of-Things“,

5
00:00:21,650 --> 00:00:27,470
Sachen mit dem ESP und mal einen kurzen
Überblick noch in der Version mit dem

6
00:00:27,470 --> 00:00:31,789
[Raspberry] Pi.
So, was wollen wir heute machen?

7
00:00:31,789 --> 00:00:35,800
Also eigentlich ein theoretischer Workshop,
wenn man so will. Ich will hier

8
00:00:35,800 --> 00:00:41,150
ein IoT-Gerät bauen, hier als Vortrag,
mit dem ich ein paar Sachen

9
00:00:41,150 --> 00:00:48,990
messen will. Als Raumtemperatur, relative
Feuchte, und auch ein Bewegungssensor.

10
00:00:48,990 --> 00:00:52,090
Ich will auch die Helligkeit noch ein
bisschen schätzen, nicht messen.

11
00:00:52,090 --> 00:00:55,690
Es ist keine genaue Messung, sondern nur,
ob es hell oder dunkel im Raum ist.

12
00:00:55,690 --> 00:01:02,531
Noch Tür- oder Fensterkontakte. Und
das Ganze soll dann mit MQTT ‒ das ist

13
00:01:02,531 --> 00:01:06,570
ein standardisiertes Protokoll, was bei
vielen IoT-Geräten verwendet wird

14
00:01:06,570 --> 00:01:11,070
mittlerweile ‒ soll an irgendeinen Server
geschickt werden. Das Ganze

15
00:01:11,070 --> 00:01:17,000
als kleines, einfaches Teil. Und
vielleicht noch einen Ausblick,

16
00:01:17,000 --> 00:01:22,080
was man sonst noch so alles mit
dem IoT-Gerät machen könnte.

17
00:01:22,080 --> 00:01:27,310
Man kann natürlich auch die
Funksteckdosen steuern. Man kann

18
00:01:27,310 --> 00:01:32,890
die Infrarot-Fernbedienung ersetzen durch
ein IoT-Gerät, und damit einen Fernseher

19
00:01:32,890 --> 00:01:38,670
quasi fernsteuern. Man kann irgendwelche
Taster abfragen, um dann z.B. Lichtschalter

20
00:01:38,670 --> 00:01:46,820
durch ein IoT-Gerät zu ersetzen. Man kann
LED-Strips steuern, sowohl die RGB-Strips

21
00:01:46,820 --> 00:01:53,810
als auch WS2812, das sind die
einzelsteuerbaren RGB-Sachen, oder

22
00:01:53,810 --> 00:01:59,449
auch Relais, um eine Lampe ein- und
auszuschalten. Statusanzeigen über LCD

23
00:01:59,449 --> 00:02:06,480
sind natürlich auch möglich. Und auch
weitere Sensoren, wie z.B. Feinstaub,

24
00:02:06,480 --> 00:02:11,380
Stickoxide, organische Gase und so was
kann man natürlich auch anschließen.

25
00:02:11,380 --> 00:02:17,490
Da soll mal das grobe Ziel sein, was wir
machen wollen. Und bei der Umsetzung

26
00:02:17,490 --> 00:02:20,480
habe ich natürlich auch ein paar
Anforderungen. Soll natürlich Open Source

27
00:02:20,480 --> 00:02:27,699
sein. Ist ja hier klar, eigentlich.
Möglichst wenig Programmierkenntnisse

28
00:02:27,699 --> 00:02:32,799
und auch wenig Löterfahrung, damit man
das einfach und schnell machen kann.

29
00:02:32,799 --> 00:02:37,319
Ich weiß, dass hier auch viele Leute sind,
die sehr gute Programmierer sind,

30
00:02:37,319 --> 00:02:40,549
aber hier geht’s eher darum, dass so
die breite Masse auch mal schnell

31
00:02:40,549 --> 00:02:46,199
ein IoT-Gerät bauen kann, ohne
viel Aufwand. Ich will natürlich

32
00:02:46,199 --> 00:02:51,319
Standardmodule verwenden, die
natürlich auch nichts kosten dürfen.

33
00:02:51,319 --> 00:02:57,299
Mit ‘Standardmodule’ meine ich Sachen,
die ich überall bei Ebay und sonstigen

34
00:02:57,299 --> 00:03:02,809
Portalen bekomme, für wenig Geld,
die oft auch als Arduino-Zusatzmodule

35
00:03:02,809 --> 00:03:07,299
ausgewiesen werden.

36
00:03:07,299 --> 00:03:10,279
Was nimmt man dafür?
Man braucht irgendeinen Prozessor.

37
00:03:10,279 --> 00:03:16,979
Das, was am häufigsten verwendet wird,
mittlerweile, ist der sogenannte ESP8266.

38
00:03:16,979 --> 00:03:24,219
„-12“ ist dann noch die spezielle Bauform.
Und sieht dann entsprechend so aus.

39
00:03:24,219 --> 00:03:30,150
Das ist ein 32 bit-Prozessor
mit genügend Megahertz,

40
00:03:30,150 --> 00:03:34,509
um auch ein bisschen Webserver
und sowas zu machen.

41
00:03:34,509 --> 00:03:41,310
Hat 4 MB Flash für [das] Programm
und auch eine Flash-Disk,

42
00:03:41,310 --> 00:03:46,339
um auch Dateien abzulegen. Mit 20kB
RAM kommt man nicht so weit,

43
00:03:46,339 --> 00:03:50,719
aber es reicht, auch für Webserver-
Anwendungen. Auf jeden Fall

44
00:03:50,719 --> 00:03:55,069
wesentlich mehr als man beim
Arduino, zum Beispiel, hätte.

45
00:03:55,069 --> 00:04:02,799
Der große Vorteil: er hat ein Wi-Fi mit
eingebaut. Man sieht ja die Antenne.

46
00:04:02,799 --> 00:04:10,669
Also die interne Antenne, um dann mit
2,4GHz dann gegen den lokalen Access Point

47
00:04:10,669 --> 00:04:17,870
dann Daten zu werfen. Der große Vorteil
ist, dass das Ganze über die Arduino-IDE

48
00:04:17,870 --> 00:04:25,300
programmierfähig ist. Und mehr als
90% der Libraries von Arduino auch

49
00:04:25,300 --> 00:04:29,340
mit diesem Prozessor verwendet werden
können. Man kann natürlich auch andere

50
00:04:29,340 --> 00:04:36,550
Sachen, wie atom-Umgebung mit platform.io
zur Programmierung verwenden.

51
00:04:36,550 --> 00:04:43,970
[Da] gehe ich jetzt nicht näher [darauf]
ein, nur… wer damit etwas machen will.

52
00:04:43,970 --> 00:04:51,270
Das Modul hat 2mm Raster, ist damit für
Hobbyisten natürlich nicht so gut geeignet.

53
00:04:51,270 --> 00:04:57,500
Mit Anlöten, oder Breadboard-Anwendung.
Deshalb gibt es ein paar andere Sachen,

54
00:04:57,500 --> 00:05:01,990
es gibt Hersteller, die dann genau dieses
Modul auf Platinen setzen, die dann wieder

55
00:05:01,990 --> 00:05:13,261
mit 2,54mm-Raster arbeiten ‒ dann also
Breadboard-fähig ‒ und dann auch schon

56
00:05:13,261 --> 00:05:18,789
USB-Seriell-Wandler mit auf der Platine
haben. Um dann gleich an den Rechner

57
00:05:18,789 --> 00:05:25,330
anstecken zu können. Und auch einen
Spannungswandler, um dann mit 5V

58
00:05:25,330 --> 00:05:32,220
zu arbeiten. Der Chip selber braucht 3,3V.
Auf der linken Seite ist die sogenannte

59
00:05:32,220 --> 00:05:36,800
Node-MCU. Die man nicht nur mit LUA
verwenden kann, sondern auch

60
00:05:36,800 --> 00:05:42,729
neu flashen, und dann eben seinen
C-Code darauf ausführen kann.

61
00:05:42,729 --> 00:05:48,270
Rechts sieht man das im Prinzip
elektronisch Gleiche, nur auf einer

62
00:05:48,270 --> 00:05:53,510
anderen Platine. Das ist der WeMos D1,
davon gibt es auch eine Pro-Variante

63
00:05:53,510 --> 00:05:59,680
mit steckbarer Antenne. Hat das gleiche
drauf, und den USB-Seriell-Wandler

64
00:05:59,680 --> 00:06:04,490
auf der Unterseite. Deshalb ist die
Platine kleiner und kompakter.

65
00:06:04,490 --> 00:06:11,220
Die werde ich jetzt hier für meine
Vorführung auch verwenden.

66
00:06:11,220 --> 00:06:16,840
Man hat an dem Prozessor 9 I/O-Pins,

67
00:06:16,840 --> 00:06:19,999
die man frei verwenden kann.

68
00:06:19,999 --> 00:06:23,580
Und damit kann man dann die meisten
Sachen auch abdecken. Man hat auch

69
00:06:23,580 --> 00:06:31,739
I2C-Bus, man hat SPI, man hat einen
AD-Wandler-Kanal. Fast alle Pins

70
00:06:31,739 --> 00:06:41,090
sind als GPIO verwendbar, um
dann alles mögliche zu schalten

71
00:06:41,090 --> 00:06:45,990
und eben einzulesen.

72
00:06:45,990 --> 00:06:50,199
Zu den Sensoren: ich habe ja gesagt,
Hauptaufgabe ist Temperatur-

73
00:06:50,199 --> 00:06:57,610
und Feuchtemessung. Dafür gibt es den
DHT22, als einen von vielen Sensoren,

74
00:06:57,610 --> 00:07:03,790
nur als Beispiel. Es gibt Infrarot-
Bewegungsmelder ‒ kann ich gleich

75
00:07:03,790 --> 00:07:09,370
noch mal live vorführen. Und es gibt
auch Standard-LDR’s, die man hier

76
00:07:09,370 --> 00:07:15,300
verwenden kann, um eine Helligkeit
abzuschätzen.

77
00:07:15,300 --> 00:07:20,960
Jetzt brauche ich die Kamera!

78
00:07:20,960 --> 00:07:30,780
Nö, ich muss mal kurz…

79
00:07:30,780 --> 00:07:34,950
Halt! Nein… So.

80
00:07:34,950 --> 00:07:39,740
Jetzt! Das ist nochmal der ESP.
Hier ist die Rückseite

81
00:07:39,740 --> 00:07:44,370
mit dem USB-Seriell-Wandler.
Hier ist die Vorderseite

82
00:07:44,370 --> 00:07:52,739
mit dem ESP, und eben der Antenne
auf der Vorderseite für WLAN.

83
00:07:52,739 --> 00:08:03,680
Sensoren ‒ habe ich einmal hier den DHT22,

84
00:08:03,680 --> 00:08:08,800
der hier einfach mit drei Pins am ESP
angeschlossen wird, da kommen wir

85
00:08:08,800 --> 00:08:18,969
gleich noch dazu. Ich habe noch den
Infrarot-Melder, der sieht dann so aus.

86
00:08:18,969 --> 00:08:23,719
Noch Schärfe…

87
00:08:23,719 --> 00:08:30,780
Und auf der Rückseite ist eben die
Elektronik, mit drei Anschlüssen,…

88
00:08:30,780 --> 00:08:38,129
Sieht man’s gut?

89
00:08:38,129 --> 00:08:40,489
So, jetzt.

90
00:08:40,489 --> 00:08:45,050
…der einfach nur ein Signal ausgibt,
wenn sich jemand im Raum bewegt hat.

91
00:08:45,050 --> 00:08:51,350
Ansonsten braucht er einfach 5 Volt,
und das war’s dann. Zu den Kosten:

92
00:08:51,350 --> 00:08:55,300
der Bewegungsmelder kostet
vielleicht 3..4 Euro, wenn man es

93
00:08:55,300 --> 00:09:01,930
in Deutschland kauft. Der Temperatursensor
auch 3..4..5 Euro. Es gibt natürlich

94
00:09:01,930 --> 00:09:06,850
noch weitere Module. Es gibt noch jede
Menge solche Module ‒ jetzt nur

95
00:09:06,850 --> 00:09:13,070
als Beispiel ‒ die einfach schon

96
00:09:13,070 --> 00:09:17,230
freundlicherweise auf ein
Board gelötet sind, und

97
00:09:17,230 --> 00:09:23,660
einfach mit ein paar Steckkontakten an
den Prozessor entweder angelötet bzw.

98
00:09:23,660 --> 00:09:27,529
mit Steckkabeln angeschlossen werden kann.

99
00:09:27,529 --> 00:09:35,440
Dann wollten wir ja noch die
Helligkeit detektieren. Da gibt es

100
00:09:35,440 --> 00:09:38,570
einen sogenannten LDR ‒ einen
lichtempfindlichen Widerstand.

101
00:09:38,570 --> 00:09:44,470
Kostet vielleicht einen Euro, oder weniger,
wenn man einen Zehnerpack nimmt.

102
00:09:44,470 --> 00:09:53,540
Dann eventuell noch eine Leuchtdiode
als Statusanzeige.

103
00:09:53,540 --> 00:09:58,160
Zu der Verkabelung:
ist auch relativ einfach.

104
00:09:58,160 --> 00:10:02,380
Für den Temperatursensor brauche
ich hier nur noch einen Widerstand

105
00:10:02,380 --> 00:10:11,250
als sogenannten Pullup, um die
Datenleitungen gegen die 3,3 V zu ziehen.

106
00:10:11,250 --> 00:10:14,370
Das heißt, ich brauche einfach nur
drei Kabel am Prozessor anlöten,

107
00:10:14,370 --> 00:10:18,660
und habe das Ding schon konnektiert.

108
00:10:18,660 --> 00:10:24,040
Eins daneben, in der Mitte, ist der
Bewegungsmelder. Der braucht 5 Volt,

109
00:10:24,040 --> 00:10:30,559
gibt ein 3,3 Volt TTL-Signal raus. Und den
kann ich auch einfach am Prozessor,

110
00:10:30,559 --> 00:10:35,490
an einem fast beliebigen Pin anschließen.

111
00:10:35,490 --> 00:10:41,310
Wenn ich die Helligkeit messen will, kann
ich den LDR oben rechts einfach so

112
00:10:41,310 --> 00:10:45,550
anschließen, weil, es sind schon
Widerstände als Spannungsteiler

113
00:10:45,550 --> 00:10:52,489
aufgelötet. Und damit brauche ich keine
weiteren, externen Komponenten.

114
00:10:52,489 --> 00:10:56,680
Wenn ich einen Türschalter habe will,
brauche ich natürlich noch einen Pullup,

115
00:10:56,680 --> 00:11:02,240
unten rechts, der mir das Ganze auf 3 Volt
zieht. Und der Schalter, ich sage mal,

116
00:11:02,240 --> 00:11:06,490
einen Reed-Schalter, z.B., um einen
Fensterkontakt abzufragen, der

117
00:11:06,490 --> 00:11:13,730
gegen Masse schaltet. Optional noch
eine LED, die am Fenster anzeigt, ob es

118
00:11:13,730 --> 00:11:20,050
geöffnet ist. Und auch die LED ‒ einfach
mit einem Vorwiderstand anschließen.

119
00:11:20,050 --> 00:11:25,339
Wenn ich weitere Sachen anschließen
will, nur so mal als Überblick,

120
00:11:25,339 --> 00:11:32,339
alles was einen I2C-Bus hat, einfach
mit den zwei Leitungen ‒ also ‘Daten’

121
00:11:32,339 --> 00:11:39,000
und ‘Clock’ ‒ am Prozessor anschließen,
und das war’s. Ich brauche nichts weiteres.

122
00:11:39,000 --> 00:11:43,420
Auch jetzt so ‘Neopixel’ ‒ einfach mit
einem Pin anschließen, natürlich

123
00:11:43,420 --> 00:11:48,300
die 5 Volt aus einem starken Netzteil
noch beziehen, und dann kann ich

124
00:11:48,300 --> 00:11:53,990
das Ganze betreiben. Auch einen LED-Strip
kann ich einfach mit einem Schalttransistor

125
00:11:53,990 --> 00:11:59,399
dann mit PWM auch die Helligkeit steuern.
Und man sieht, dass sich die ganze Hardware

126
00:11:59,399 --> 00:12:04,579
eigentlich sehr in Grenzen hält. Und damit
auch für Hobbyisten: einfach nur Kabel

127
00:12:04,579 --> 00:12:12,049
an Sensor und Prozessor anschließen,
und schon sollte alles funktionieren.

128
00:12:12,049 --> 00:12:16,980
Dann brauche ich natürlich noch ein
Netzteil. Da kann man natürlich solche

129
00:12:16,980 --> 00:12:22,829
schönen China-Handyladenetzteile nehmen.
Wenn man den USB-Stecker

130
00:12:22,829 --> 00:12:28,059
nicht kaufen will, kann man, wie hier
zu sehen, auch einfach aus einem Stück

131
00:12:28,059 --> 00:12:36,840
Lochrasterplatine sich selber schnell einen
Stecker bauen, funktioniert wunderbar.

132
00:12:36,840 --> 00:12:42,939
Gehäuse. Da ist man natürlich komplett
frei, was man machen will.

133
00:12:42,939 --> 00:12:48,920
Man kann irgendwas nehmen, was eh da ist,
eine Haushaltsbox, so eine Verteilerdose,

134
00:12:48,920 --> 00:12:54,960
vielleicht eine Zigarrenkiste oder
sonstwas. Wenn man im Hackerspace

135
00:12:54,960 --> 00:12:57,680
oder Fablab einen 3D-Drucker hat,
kann man sich natürlich da auch

136
00:12:57,680 --> 00:13:02,130
was beliebiges drucken. Ich nehme
natürlich sehr gern den Laser-Cutter,

137
00:13:02,130 --> 00:13:10,530
um damit Gehäuse zu bauen. Und
das kann ich dann auch vorführen.

138
00:13:10,530 --> 00:13:24,810
Muss nur schnell noch umbauen.
Aus dem Laser-Cutter

139
00:13:24,810 --> 00:13:29,210
würde dann z.B. sowas rausfallen.

140
00:13:29,210 --> 00:13:32,160
Also ein sehr luftiges Gehäuse,
dass man dann wirklich

141
00:13:32,160 --> 00:13:34,990
die Raumtemperatur messen kann
und nicht die Eigentemperatur

142
00:13:34,990 --> 00:13:42,490
des Prozessors. Und wenn man das
Ganze dann entsprechend bestückt,

143
00:13:42,490 --> 00:13:47,259
dann würde das so aussehen. Da habe ich
den Bewegungsmelder, ich habe meine

144
00:13:47,259 --> 00:13:56,390
Status-Leuchtdiode. Hier habe ich meinen
Temperatur- und Feuchtigkeitssensor.

145
00:13:56,390 --> 00:14:02,480
Hier vorne habe ich den LDR. Hier habe ich
noch die Buchsen für die Fensterkontakte,

146
00:14:02,480 --> 00:14:07,949
zwei Stück. Und hier gleich mit
eingearbeitet, das USB-Netzteil,

147
00:14:07,949 --> 00:14:11,819
um das Ding einfach in die nächste
Steckdose zu stecken und dann

148
00:14:11,819 --> 00:14:16,230
keine weiteren Kabel mehr zu ziehen.
Wer keine Steckdose hat, kann

149
00:14:16,230 --> 00:14:22,070
natürlich dann auch so eine Variante
nehmen. Das ist das gleiche,

150
00:14:22,070 --> 00:14:25,230
vielleicht muss ich es… naja… ein
bisschen anders halten, naja,

151
00:14:25,230 --> 00:14:33,710
man sieht es schlecht. Hier innen
drin sieht man den Prozessor.

152
00:14:33,710 --> 00:14:41,479
So. Hier sieht man den Prozessor, und
die USB-Buchse nach außen zugänglich,

153
00:14:41,479 --> 00:14:45,209
dass man einfach mit einem Micro-USB-
Kabel drauf verbinden kann.

154
00:14:45,209 --> 00:14:49,720
Ansonsten auch wieder hier oben den
lichtempfindlichen Widerstand,

155
00:14:49,720 --> 00:14:58,779
die Kontakte für die Fenster, Temperatur
und Feuchtigkeit. Und nach vorne

156
00:14:58,779 --> 00:15:04,249
den Passiv-Infrarot-Bewegungsmelder,
mit Diode. Und auf der Rückseite

157
00:15:04,249 --> 00:15:10,529
noch ein paar Löcher, um das ganze mit
Schrauben an die Wand zu dübeln.

158
00:15:10,529 --> 00:15:15,959
Man kann sich natürlich nicht nur solche
Gehäuse nehmen, oder bauen.

159
00:15:15,959 --> 00:15:20,370
Man kann natürlich auch andere Sachen
machen. Einfach mal als Ausblick, was man

160
00:15:20,370 --> 00:15:25,250
alles verwenden kann. Man kann auch
bestehende Sachen nehmen.

161
00:15:25,250 --> 00:15:31,699
Z. B. hier so einen schönen, alten
Schalter, die man teilweise noch findet.

162
00:15:31,699 --> 00:15:36,770
Wo man dann hier… schalten kann.

163
00:15:36,770 --> 00:15:44,809
Und auf der Unterseite ist natürlich
der ESP eingelassen.

164
00:15:44,809 --> 00:15:47,509
Das ganze gibt es natürlich auch…

165
00:15:47,509 --> 00:15:52,420
so, vielleicht, wenn noch jemand
die alten Schalter hier kennt,

166
00:15:52,420 --> 00:15:58,510
diese Bakelit-Schalter. Da wurde natürlich
das Schaltelement entfernt und durch

167
00:15:58,510 --> 00:16:07,110
einen Encoder ersetzt. Wenn man
mal dreht, hat man natürlich dann

168
00:16:07,110 --> 00:16:13,840
einen Encoder und kann damit auch
einen Dimmer z. B. damit realisieren.

169
00:16:13,840 --> 00:16:17,540
Was man auch noch hat,
es gibt auch solche Module,

170
00:16:17,540 --> 00:16:22,790
mit Touch-Zahlenfeldern. Dann einfach
ein paar Platten oben und unten drauf,

171
00:16:22,790 --> 00:16:34,480
und unten entsprechend wieder der
ESP eingelassen. Als letztes noch

172
00:16:34,480 --> 00:16:41,410
so eine schöne, alte, mechanische Klingel.
Mit ‒ irgendwo ein Stift? ‒

173
00:16:41,410 --> 00:16:48,510
mit DC/DC-Wandler, um von den 12 Volt auf
die 5 Volt zu kommen, die der ESP braucht.

174
00:16:48,510 --> 00:16:51,480
Einen Schalttransistor, um die Spulen
entsprechend zu treiben.

175
00:16:51,480 --> 00:16:58,139
Noch Stabilisierung über einen
Kondensator und hier der ESP.

176
00:16:58,139 --> 00:17:02,690
Und ich kann es auch
mal umdrehen. So.

177
00:17:02,690 --> 00:17:09,180
Und damit sind Sachen möglich, z. B.
als Notification Device, um zu sagen,

178
00:17:09,180 --> 00:17:13,119
dass eine Mail da ist, oder, bei uns
im Fablab haben wir das ganze dann

179
00:17:13,119 --> 00:17:15,949
mit zwei Läutwerken, um…

180
00:17:15,949 --> 00:17:21,660
…um die Uhrzeit zu schlagen,
in Binär natürlich,

181
00:17:21,660 --> 00:17:25,049
mit ‘High’ und ‘Low’, also zwei
verschiedenen Klingeltönen.

182
00:17:25,049 --> 00:17:29,230
Und das ist eben alles dann
als Gehäuse möglich.

183
00:17:29,230 --> 00:17:32,220
Ach ja, doch, eins habe ich noch!

184
00:17:32,220 --> 00:17:38,400
Auch so ein Schalter, so ein schöner,
alter Bakelit-Schalter,

185
00:17:38,400 --> 00:17:44,760
und dann einfach unten den ESP,
einfach eingeklebt.

186
00:17:44,760 --> 00:17:56,220
Ohne das Schalterelement jetzt
auszutauschen, sondern original zu lassen.

187
00:17:56,220 --> 00:18:02,460
Jetzt brauchen wir natürlich noch Software
für das Ganze. Da gibt es jetzt zwei…

188
00:18:02,460 --> 00:18:06,250
…Versionen, sage ich mal. Man kann sich
natürlich die Einzel-Libraries von Github

189
00:18:06,250 --> 00:18:11,840
holen. Für den DHT gibt es
eine Library, für den

190
00:18:11,840 --> 00:18:15,470
‒ was hatten wir noch alles? ‒
für irgendwelche anderen

191
00:18:15,470 --> 00:18:19,590
I2C-Devices, für alles Mögliche gibt es
Librarys, auch Webserver gibt es

192
00:18:19,590 --> 00:18:24,921
mittlerweile ziemlich viele für den ESP.
Wir wollen das ganze ja

193
00:18:24,921 --> 00:18:30,550
an einen Server schicken, mit MQTT,
auch dafür gibt es eine Library.

194
00:18:30,550 --> 00:18:33,440
Das kann man sich alles herunterladen,
kann das ganze irgendwie versuchen,

195
00:18:33,440 --> 00:18:38,650
zusammenzumergen, dann irgendwo in der
Arduino-IDE was zusammenzubasteln,

196
00:18:38,650 --> 00:18:42,860
wo das ganze dann verbindet. Und dann
ist man tagelang beschäftigt, bei Google

197
00:18:42,860 --> 00:18:47,130
und Stackoverflow zu schauen, warum es
nicht funktioniert, oder wie es dann

198
00:18:47,130 --> 00:18:51,490
richtig funktioniert. Das ist so die
Programmierervariante.

199
00:18:51,490 --> 00:18:55,830
Aber ich habe ja gesagt, wir wollen das
ganze für Leute auch machen, die jetzt

200
00:18:55,830 --> 00:19:01,230
keine oder wenig Programmiererfahrung
haben. Deshalb eben Version 2.

201
00:19:01,230 --> 00:19:06,390
Ich nehme einfach eine fertige Software
mit dem Namen ESPEasy.

202
00:19:06,390 --> 00:19:12,770
Hier zu finden auf Github bzw. das Wiki
dazu, einfach bei Google oder der

203
00:19:12,770 --> 00:19:16,581
entsprechenden Suchmaschine „ESPEasy Wiki“
eingeben, dann kommt ihr auf die

204
00:19:16,581 --> 00:19:24,520
entsprechende Seite.
So, was macht jetzt die Software?

205
00:19:24,520 --> 00:19:29,470
Jetzt muss ich erstmal meine Testumgebung
nochmal ein bisschen erklären.

206
00:19:29,470 --> 00:19:33,600
Ich habe hier ‒ da kann man ja nochmal
kurz die Kamera ‒ ich habe hier

207
00:19:33,600 --> 00:19:39,851
nochmal das, was ich schon gezeigt habe,
jetzt mit Kabel dran. Ich habe hier unten

208
00:19:39,851 --> 00:19:44,860
meinen ESP eingebaut.

209
00:19:44,860 --> 00:19:52,260
Und er hängt… USB jetzt nur
als Stromverbindung.

210
00:19:52,260 --> 00:19:57,680
Und ich habe hier einen Banana Pi als
Server und Access Point stehen.

211
00:19:57,680 --> 00:20:01,460
Access Point heißt, ich habe jetzt schon
eine Verbindung hergestellt zwischen

212
00:20:01,460 --> 00:20:07,590
dem ESP und dem Access Point. Mein Rechner
ist jetzt auch auf dem gleichen Access Point.

213
00:20:07,590 --> 00:20:11,510
Und damit kann ich jetzt die Webseite
von dem ESP mir anschauen.

214
00:20:11,510 --> 00:20:17,570
Auf dem Banana Pi ist auch noch der MQTT
Broker installiert, wo ich dann später

215
00:20:17,570 --> 00:20:22,990
nochmal darauf zurückkommen will.

216
00:20:22,990 --> 00:20:27,820
So.

217
00:20:27,820 --> 00:20:33,300
Hier oben sieht man die IP-Adresse,
d. h. ich bin jetzt direkt auf dem ESP,

218
00:20:33,300 --> 00:20:38,120
der jetzt mit dieser Adresse angemeldet
ist. Vielleicht muss ich noch einen Schritt

219
00:20:38,120 --> 00:20:43,920
zurückgehen. Beim ersten Mal flashen mit
diesem ESPEasy geht der ESP in den

220
00:20:43,920 --> 00:20:48,250
Access Point Mode. Ich kann mich dann mit
Handy oder Laptop darauf verbinden,

221
00:20:48,250 --> 00:20:53,030
kann dann die SSID und Passwort
entsprechend eintippen. Dann wird

222
00:20:53,030 --> 00:20:57,240
neu gebootet, und dann ist er bereit,
und ich kann dann im hausinternen Netz,

223
00:20:57,240 --> 00:21:02,530
wie jetzt, einfach darauf zugreifen.
Wenn ich draufgehe, habe ich erstmal

224
00:21:02,530 --> 00:21:09,370
eine Übersichtsseite, mit
allgemeinen Info-Daten.

225
00:21:09,370 --> 00:21:14,500
Ich habe eine Karteikarte mit der
Konfiguration. Wie jetzt hier,

226
00:21:14,500 --> 00:21:22,680
das ist mein Access Point, mit dem
entsprechenden Passwort.

227
00:21:22,680 --> 00:21:28,800
Ich kann auch noch einen zweiten
Access Point eintragen, als Fallback.

228
00:21:28,800 --> 00:21:33,830
Ich kann natürlich auch feste Adressen
vergeben, wenn ich keinen DHCP

229
00:21:33,830 --> 00:21:39,820
haben will. Und ich kann auch

230
00:21:39,820 --> 00:21:43,230
den Zugriff über ein Passwort schützen,
wenn ich Angst habe, dass über mein

231
00:21:43,230 --> 00:21:46,700
hausinternes Netz jemand dranrumspielt.

232
00:21:46,700 --> 00:21:51,530
Das braucht man im Heimnetz
üblicherweise nicht.

233
00:21:51,530 --> 00:21:55,670
Das ist die Grundkonfiguration, um erstmal
die Kommunikation herzustellen,

234
00:21:55,670 --> 00:22:02,790
nach außen. Es gibt eine Hardwareseite,
wo ich noch sagen kann,

235
00:22:02,790 --> 00:22:08,580
wo mein I2C-Bus liegt, auf welchen Pins.
Ich kann noch die Status-LED,

236
00:22:08,580 --> 00:22:14,510
die hier öfter mal blau blinkt, noch
sagen, auf welchem Pin die liegt,

237
00:22:14,510 --> 00:22:20,110
um dann auch eben ‘Rückkopplungen’
über Verbindungen und

238
00:22:20,110 --> 00:22:26,720
Datenpakete noch zu erhalten. Das
wichtigste ist eigentlich dieser Reiter,

239
00:22:26,720 --> 00:22:31,090
„Devices“. Hier geht es um die ganzen
Sensoren, die ich angeschlossen habe

240
00:22:31,090 --> 00:22:37,200
oder anschließen kann. Ich habe
jetzt hier drei Sensoren aktiviert.

241
00:22:37,200 --> 00:22:44,070
Die drei, die ich vorhin
schon vorgestellt habe.

242
00:22:44,070 --> 00:22:47,550
Ich fange jetzt einfach mal
mit dem einfachsten an.

243
00:22:47,550 --> 00:22:51,360
Der Passiv-Infrarotmelder gibt ja
einfach nur ein Signal aus,

244
00:22:51,360 --> 00:22:54,460
wenn sich jemand bewegt hat.
Das heißt, ich brauche einfach nur

245
00:22:54,460 --> 00:23:04,180
einen Schaltereingang. Nennt sich dann,

246
00:23:04,180 --> 00:23:08,240
hier, „Switch“.

247
00:23:08,240 --> 00:23:11,230
Okay, ich fange nochmal andersrum an,
ich nehme erstmal einen neuen.

248
00:23:11,230 --> 00:23:15,000
Ich nehme einen… hier.

249
00:23:15,000 --> 00:23:19,620
Wenn ich noch nichts eingetragen habe,
habe ich hier eine Auswahl,

250
00:23:19,620 --> 00:23:25,430
mit Sensoren, die ich hierfür
verwenden kann. Sind irgendwie,

251
00:23:25,430 --> 00:23:31,020
glaube ich, so 60 Stück, oder so,
oder 65 mittlerweile.

252
00:23:31,020 --> 00:23:34,420
Das sind lauter Plug-Ins, die werden
ständig erweitert, von irgendwelchen

253
00:23:34,420 --> 00:23:38,740
Usern, die freundlicherweise eben
die Plug-Ins zur Verfügung stellen.

254
00:23:38,740 --> 00:23:44,900
Und damit kann ich eben so ziemlich alles,
was es an Sensor-Platinen zu kaufen gibt,

255
00:23:44,900 --> 00:23:50,410
auch einbinden. Wenn ich das
dann mal ausgewählt habe,

256
00:23:50,410 --> 00:23:56,070
dann habe ich es hier eingetragen,
und kann es editieren.

257
00:23:56,070 --> 00:23:59,620
Also hier habe ich einen
‘Switch’ ausgewählt.

258
00:23:59,620 --> 00:24:02,880
Kann ich jetzt nicht mehr ändern,
dann müsste ich es eben

259
00:24:02,880 --> 00:24:08,010
rausschmeißen. Ich kann dem Device einen
Namen geben. Das ist dann interessant,

260
00:24:08,010 --> 00:24:12,120
wenn ich mehrere Devices vom
gleichen Typ habe. Und es ist auch

261
00:24:12,120 --> 00:24:17,160
interessant für das, was ich an MQTT
schicke, weil das Teil des Namens ist,

262
00:24:17,160 --> 00:24:22,490
des Topics ist, was bei MQTT
dann verwendet wird.

263
00:24:22,490 --> 00:24:25,620
Ich kann dann jetzt beim ‘Schalter’ noch
sagen, ob ich einen Pull-Up haben will,

264
00:24:25,620 --> 00:24:30,680
ob ich eine invertierte Logik haben will,
welchen Pin ich haben will.

265
00:24:30,680 --> 00:24:36,460
Da habe ich natürlich die ganze Auswahl
an I/O-Pins, die eben nicht mit I2C

266
00:24:36,460 --> 00:24:42,770
oder anderen festen Sachen
dann belegt sind.

267
00:24:42,770 --> 00:24:46,850
Ich kann sagen „normaler Switch“
oder auch „dimmer mode“ oder so.

268
00:24:46,850 --> 00:24:49,790
Können wir später mal darauf eingehen.

269
00:24:49,790 --> 00:24:54,210
Und das ‘delay’ ‒ komme ich beim anderen
Sensor nochmal drauf. Dieser Schalter,

270
00:24:54,210 --> 00:25:00,000
wenn „delay=0“ eingestellt ist,
würde jetzt immer bei einer Änderung

271
00:25:00,000 --> 00:25:04,500
ein Datenpaket an MQTT schicken.

272
00:25:04,500 --> 00:25:10,800
Und ich kann der Variablen, die geschickt
wird, auch noch einen Namen geben.

273
00:25:10,800 --> 00:25:15,270
Das ist vielleicht besser zu sehen
bei dem nächsten Sensor.

274
00:25:15,270 --> 00:25:20,230
Das ist nämlich dieser Temperatur-
und Feuchtesensor,

275
00:25:20,230 --> 00:25:26,380
DHT-11 oder auch -22, je nachdem,
was man verwenden will.

276
00:25:26,380 --> 00:25:32,440
Hier kann ich wieder einen Namen vergeben.
Ich kann sagen, er ist auf ‘diesem’ Pin.

277
00:25:32,440 --> 00:25:36,180
Dann wird ja… von dem Plug-In werden
mehrere Sachen unterstützt.

278
00:25:36,180 --> 00:25:40,780
Da kann ich auswählen, welche.

279
00:25:40,780 --> 00:25:45,740
Und ich kann jetzt noch sagen, er soll
alle 10 Sekunden gesampled werden,

280
00:25:45,740 --> 00:25:51,870
und der Temperaturwert eben
übermittelt werden. Ich habe hier

281
00:25:51,870 --> 00:25:57,720
eben zwei Kanäle, Temperatur und
Feuchtigkeit, und kann irgendeinen

282
00:25:57,720 --> 00:26:06,890
Namen vergeben, entsprechend für MQTT
oder andere Heim-Automatisierungssysteme,

283
00:26:06,890 --> 00:26:13,800
an die ich das ganze dann schicken will.

284
00:26:13,800 --> 00:26:19,190
Noch der letzte, der lichtempfindliche
Widerstand, mit dem ich ja die Helligkeit

285
00:26:19,190 --> 00:26:24,530
abschätzen will. Hängt einfach auf einem
Analogkanal. Okay ‒ auf DEM einen

286
00:26:24,530 --> 00:26:30,700
Analogkanal. Ich kann noch sagen
„Oversampling“, um dann eben Rauschen

287
00:26:30,700 --> 00:26:35,620
rauszubekommen. Ich könnte auch noch
das ganze kalibrieren, wenn ich wollte,

288
00:26:35,620 --> 00:26:40,140
dass ich eben einen unteren und oberen
Punkt definiere, und dazwischen

289
00:26:40,140 --> 00:26:44,850
wird eben linear interpoliert. Und auch
der soll jetzt alle 10 Sekunden

290
00:26:44,850 --> 00:26:50,560
gesampled werden. Dann habe ich hier
noch eine Einstellung, „dieser Wert soll

291
00:26:50,560 --> 00:26:56,820
an Controller 1 geschickt werden“. Zu den
Controllern komme ich jetzt gleich.

292
00:26:56,820 --> 00:27:01,710
Und auch hier habe ich wieder
einen Namen festgelegt.

293
00:27:01,710 --> 00:27:08,720
Und so kann ich halt bis zu 12 Devices
konfigurieren, und einfach durch Klicken

294
00:27:08,720 --> 00:27:14,420
in der Web-Oberfläche dann zuweisen
auf die Pins, auf die Eigenschaften,

295
00:27:14,420 --> 00:27:21,260
einige Sachen eben auch skalieren.

296
00:27:21,260 --> 00:27:24,500
Hier bei ‘Analog’ zum Beispiel könnte ich
auch eine Formel eintippen,

297
00:27:24,500 --> 00:27:29,040
oder eine einfache Formel, wo ich dann
sage, ich multipliziere oder addiere

298
00:27:29,040 --> 00:27:32,210
noch einen Wert dazu. Bei der Temperatur
kann es sein, dass sie immer

299
00:27:32,210 --> 00:27:37,200
ein Grad zu hoch oder zu tief misst, dann
könnte ich hier einfach „-1“ reinschreiben.

300
00:27:37,200 --> 00:27:41,460
Oder halt dann auf andere Werte skalieren.

301
00:27:41,460 --> 00:27:47,240
Ich kann auch noch festlegen, wieviele
Dezimalstellen an den Controller

302
00:27:47,240 --> 00:27:53,910
übermittelt werden sollen.
So, jetzt zu den Controllern.

303
00:27:53,910 --> 00:27:59,020
Hier habe ich schon mal zwei eingetragen,
auch hier wieder das gleiche

304
00:27:59,020 --> 00:28:06,270
Plug-In-Prinzip. Ich habe
die Auswahl von etlichen

305
00:28:06,270 --> 00:28:13,070
Controllern. Also verschiedene
MQTT-Varianten, die aber alle

306
00:28:13,070 --> 00:28:20,500
recht ähnlich sind. Ich kann auch
http-Requests abschicken, weil, an viele

307
00:28:20,500 --> 00:28:26,020
Server oder auch Datenbanken kann man
einfach ein GET-Request hinschicken,

308
00:28:26,020 --> 00:28:32,450
und die übernehmen so die Daten.

309
00:28:32,450 --> 00:28:36,820
Da können wir jetzt mal rein.

310
00:28:36,820 --> 00:28:40,220
Bleiben wir mal gleich
bei dem GET-Request.

311
00:28:40,220 --> 00:28:45,280
Ich kann hier eine IP-Adresse sagen,
wo das ganze hingeschickt werden soll,

312
00:28:45,280 --> 00:28:50,760
über welchen Port. Wenn notwendig,
auch, über Login.

313
00:28:50,760 --> 00:28:54,610
Ich kann hier dann auch sagen, GET
oder POST, oder was auch immer.

314
00:28:54,610 --> 00:28:57,220
Und kann das auch hier
entsprechend zusammenbauen.

315
00:28:57,220 --> 00:29:01,520
Damit habe ich auch die Möglichkeit,
einer InfluxDB-Datenbank z.B.

316
00:29:01,520 --> 00:29:09,720
die Daten direkt hinzuschicken.

317
00:29:09,720 --> 00:29:14,280
Ich will aber jetzt hier an einen
MQTT-Server das ganze schicken.

318
00:29:14,280 --> 00:29:17,910
Nicht ‘Server’, sondern ‘Broker’
in dem Fall.

319
00:29:17,910 --> 00:29:24,710
Das ist mein Banana Pi, die Adresse,
wo der Broker läuft. Der Standard-Port

320
00:29:24,710 --> 00:29:30,840
ist eben die 1883. Wenn
notwendig, auch mit Login.

321
00:29:30,840 --> 00:29:39,930
Und das ist eine Variable, wie er
das Topic für den MQTT-String

322
00:29:39,930 --> 00:29:44,550
zusammenbaut. Ich habe den
Systemnamen, das wäre jetzt hier

323
00:29:44,550 --> 00:29:52,120
„Test-IoT“. „Task-Name“ wäre quasi
der Sensor. Und „value-Name“

324
00:29:52,120 --> 00:29:57,450
wäre eben z.B. Temperatur- oder
Feuchtigkeit. Und damit habe ich

325
00:29:57,450 --> 00:30:03,420
alles konfiguriert, was ich brauche.
Und damit sollte eigentlich schon

326
00:30:03,420 --> 00:30:09,950
alles funktionieren.

327
00:30:09,950 --> 00:30:13,400
So, jetzt habe ich hier auf meinem Rechner

328
00:30:13,400 --> 00:30:19,560
ein kleines Python-Skript, was jetzt einfach
zu dem Broker eine Verbindung aufbaut

329
00:30:19,560 --> 00:30:24,240
und einfach mitliest, was eben an den
Broker geschickt wird. Und man sieht,

330
00:30:24,240 --> 00:30:30,220
dass jetzt alle 10 Sekunden Temperatur,
Feuchtigkeit und Helligkeit

331
00:30:30,220 --> 00:30:35,520
geschickt wird. Und wenn ich hier mich
irgendwie bewege, dann wird auch noch

332
00:30:35,520 --> 00:30:42,240
ein „anyone here“ vom Infrarotsensor

333
00:30:42,240 --> 00:30:48,540
eben mitgeschickt. D.h. man sieht,
es funktioniert auch schon.

334
00:30:48,540 --> 00:30:54,170
So, ohne dass man jetzt großartig was
programmieren oder einstellen muss.

335
00:30:54,170 --> 00:31:00,010
Einfach nur zusammenklicken,
und das war’s.

336
00:31:00,010 --> 00:31:04,490
Ich habe natürlich noch ein bisschen mehr

337
00:31:04,490 --> 00:31:09,560
Möglichkeiten. Ich habe auch noch „Rules“.

338
00:31:09,560 --> 00:31:14,320
Das sind dann sehr einfache Regeln,
die ich noch hinterlegen kann.

339
00:31:14,320 --> 00:31:19,640
Z.B. wenn der Infrarotsensor mit dem Kanal
„Anyone here“ triggert, also,

340
00:31:19,640 --> 00:31:28,270
sprich, wenn ich hier mich bewege
und gleichzeitig der LDR einen Wert

341
00:31:28,270 --> 00:31:32,550
kleiner 200, das war jetzt empirisch
ermittelt, d.h. einfach, hier im Raum

342
00:31:32,550 --> 00:31:38,770
wäre es dunkel. Dann soll er einfach
auf einem GPIO-Pin eben den Status

343
00:31:38,770 --> 00:31:42,800
von „Anyone here“ ausgeben. Das wäre
jetzt die einfachste Variante von dem,

344
00:31:42,800 --> 00:31:49,140
was man als Bewegungsmelder mit Lampe
kennt. Kann man hier einfach als Rule

345
00:31:49,140 --> 00:31:52,311
hinterlegen. Es geht noch ein bisschen
komplizierter, aber jetzt bitte

346
00:31:52,311 --> 00:31:57,020
keine Wunder erwarten. Also aufwändigere
Sachen würde man dann auf der Serverseite

347
00:31:57,020 --> 00:32:03,040
machen, hinter dem MQTT-Broker. Aber auch
hier können wir als Standalone-Lösung

348
00:32:03,040 --> 00:32:10,690
schon einen einfachen Bewegungsmelder,
der eine Lampe schaltet, realisieren.

349
00:32:10,690 --> 00:32:18,130
Es gibt natürlich auch noch jede Menge
Zusatz-Tools. Um z.B. I2C-Bus zu scannen,

350
00:32:18,130 --> 00:32:22,370
um herauszufinden, auf welcher Adresse
jetzt mein Sensor läuft, weil, das ist

351
00:32:22,370 --> 00:32:28,350
nicht immer klar bei den einfachen
Modulen. Ich kann meine Settings

352
00:32:28,350 --> 00:32:37,870
noch wohin speichern, ich kann neue
Firmware over-se-air auch updaten.

353
00:32:37,870 --> 00:32:41,980
Ich kann auch hier noch

354
00:32:41,980 --> 00:32:49,690
einige Zusatzsachen einstellen, aber
das würde jetzt zu weit gehen.

355
00:32:49,690 --> 00:32:54,520
Auch… irgendwo war es doch…
ich sehe es gerade nicht…

356
00:32:54,520 --> 00:33:00,500
NTP-Server kann ich einstellen, z.B. wie
ich gesagt habe, für den Stundenschlag

357
00:33:00,500 --> 00:33:05,840
würde aus NTP die Zeit beziehen, und dann
natürlich sekundengenau schlagen.

358
00:33:05,840 --> 00:33:14,900
Pause

359
00:33:14,900 --> 00:33:20,130
So. Dann wieder zurück zu meinen Folien.
Damit hätten wir im Prinzip

360
00:33:20,130 --> 00:33:23,210
eigentlich ein fertiges Gerät, was man
einfach nur noch an die Wand schrauben

361
00:33:23,210 --> 00:33:31,230
muss. Und es würde das ganze an den
MQTT-Broker schicken und ich könnte dann

362
00:33:31,230 --> 00:33:35,610
einen Server wie FHEM oder sowas
hintendran setzen, der die Daten

363
00:33:35,610 --> 00:33:39,640
entgegennimmt, und auch
Hausautomatisierung machen, hier

364
00:33:39,640 --> 00:33:45,120
aus der Temperatur oder Feuchtigkeit dann
die Heizung entsprechend ein-/ausschalten,

365
00:33:45,120 --> 00:33:48,780
irgendwelche Lichter ein-/ausschalten,
oder Warnung geben, wenn noch ein Fenster

366
00:33:48,780 --> 00:34:00,380
offen ist. Das ganze beruht jetzt auf dem
ESP, dem alten, kleinen ESP, muss ich

367
00:34:00,380 --> 00:34:07,730
dazu sagen. Die ESP32-Variante ist
gerade noch im Programmieren,

368
00:34:07,730 --> 00:34:12,500
ist noch nicht so richtig einsatzfähig.
Wer als Beta-Version damit spielen will,

369
00:34:12,500 --> 00:34:17,960
kann die gerne mal probieren. Aber
das ist jetzt… bezieht sich nur auf den

370
00:34:17,960 --> 00:34:24,809
kleinen ESP. Es gibt ein zweites Projekt.

371
00:34:24,809 --> 00:34:28,939
Mit dem Namen EzPiC.

372
00:34:28,939 --> 00:34:33,149
Jetzt hier rechts oben zu sehen.
Die Grundphilosophie

373
00:34:33,149 --> 00:34:36,489
ist die gleiche. D.h. ich will eine
Web-Oberfläche, wo ich alles schnell

374
00:34:36,489 --> 00:34:44,408
einstellen kann. Ich will mich nicht lange
mit Programmierung und sowas aufhalten.

375
00:34:44,408 --> 00:34:51,619
Und warum das Projekt angefangen wurde
ist, ich will erstmal das ganze auf dem Pi

376
00:34:51,619 --> 00:34:54,809
zum Laufen bringen. Das war der
ursprüngliche Gedanke, wurde dann

377
00:34:54,809 --> 00:35:00,359
erweitert. Ich will es auch noch auf einem
ESP32, also der nächstgrößere ESP

378
00:35:00,359 --> 00:35:04,529
mit mehr Speicher, mehr Geschwindigkeit
und noch ein paar Features mehr,

379
00:35:04,529 --> 00:35:12,740
auch mehr Pins. Und als Zusatzding
für die Entwickler, dass die

380
00:35:12,740 --> 00:35:16,450
das ganze erstmal, wenn es nicht um
die reine Hardware geht, auch mal

381
00:35:16,450 --> 00:35:21,500
auf dem PC testen können. Also ohne
dauernd irgendwas zu programmieren

382
00:35:21,500 --> 00:35:25,460
und, ja, geht nicht, und man muss jetzt
mit LED-Blinken quasi debuggen,

383
00:35:25,460 --> 00:35:30,919
sondern ich kann dann in einer richtigen
Umgebung, z.B. atom-Umgebung,

384
00:35:30,919 --> 00:35:37,160
bzw. Visual Studio Code, dann kann ich
einfach rein-debuggen

385
00:35:37,160 --> 00:35:41,619
und schonmal alles ausprobieren.

386
00:35:41,619 --> 00:35:46,910
Das ESPEasy-Projekt ist
in C und C++ geschrieben.

387
00:35:46,910 --> 00:35:51,300
Das EzPiC-Projekt ist angedacht mit Python

388
00:35:51,300 --> 00:35:56,380
und wurde jetzt noch erweitert
mit microPython, also ein Hybrid

389
00:35:56,380 --> 00:36:00,799
aus beiden Welten. Und das klappt auch
schon recht gut. D.h. man kann

390
00:36:00,799 --> 00:36:06,920
mit dem gleichen Source-Code-Stand
sowohl microPython auf einer ESP32

391
00:36:06,920 --> 00:36:13,229
fahren, als auch mit Normal-Python,
also 3.4 oder höher.

392
00:36:13,229 --> 00:36:18,020
Auf dem PC oder auf dem Raspberry Pi.

393
00:36:18,020 --> 00:36:23,539
Der Webserver bei dem ESPEasy-Projekt
ist selbergeschrieben.

394
00:36:23,539 --> 00:36:28,690
Bei dem neuen Projekt wird versucht,
einen fertigen Webserver, den es

395
00:36:28,690 --> 00:36:33,750
als lauffähiges Projekt gibt, mit
einzubinden. Das ist der ‘MicroWebSrv’.

396
00:36:33,750 --> 00:36:37,950
Findet man auf Github.

397
00:36:37,950 --> 00:36:41,670
Das neue Projekt ist noch in einer frühen
Phase, ich dachte, dass man vielleicht

398
00:36:41,670 --> 00:36:47,350
schon für den Easter-Hegg dann schon mehr
zeigen kann. Aber ist noch in einer

399
00:36:47,350 --> 00:36:55,490
sehr, sehr Alpha-Version. Der Grund,
warum auch das neue Projekt… auf dem ESP

400
00:36:55,490 --> 00:36:59,400
habe ich natürlich sehr begrenzte
Ressourcen, was jetzt RAM betrifft,

401
00:36:59,400 --> 00:37:06,440
was Flash betrifft, was Geschwindigkeit
betrifft, auch die Pins sind sehr limitiert.

402
00:37:06,440 --> 00:37:11,619
Und wenn ich in einer anderen Umgebung
bin, dann kann ich mich halt

403
00:37:11,619 --> 00:37:17,120
freier bewegen, und mich dann
entsprechend austoben.

404
00:37:17,120 --> 00:37:21,940
Ohne jetzt auf die Details einzugehen,
da gibt es schon entsprechende

405
00:37:21,940 --> 00:37:26,650
Konzepte. Es ist alles Plugin-basiert,
dass man dann auch sagen kann,

406
00:37:26,650 --> 00:37:31,230
ich habe für andere Prozessoren auch
andere Module, die dann spezielle Hardware

407
00:37:31,230 --> 00:37:40,849
noch unterstützen, die auf dem Prozessor
möglich sind. Und was ich schon zeigen kann,

408
00:37:40,849 --> 00:37:49,150
ist, eine kleine Demo, das läuft jetzt auf
meinem PC, ich habe es jetzt

409
00:37:49,150 --> 00:37:55,209
technisch nicht mehr geschafft, auf die
Schnelle den Banana Pi dazu zu bringen.

410
00:37:55,209 --> 00:38:02,160
Ich habe hier meine Web Page, ich bin
jetzt quasi in dem Webserver, der quasi

411
00:38:02,160 --> 00:38:05,660
in Python läuft.
Ich habe hier auch schon

412
00:38:05,660 --> 00:38:09,670
Devices, mit entsprechend
einer Device-Liste, wo ich

413
00:38:09,670 --> 00:38:14,589
Devices dazuhängen kann,

414
00:38:14,589 --> 00:38:19,750
wo ich auch Devices editieren kann.

415
00:38:19,750 --> 00:38:24,020
Man sieht, das sieht alles ähnlich aus
wie bei dem ESPEasy-Projekt,

416
00:38:24,020 --> 00:38:30,210
nur hier da mehr Ressourcen
verfügbar sind, mit Bootstrap

417
00:38:30,210 --> 00:38:36,540
als Oberflächen-Tool. Und

418
00:38:36,540 --> 00:38:40,760
halt hier die ersten Schritte
‒ Plugin-System läuft.

419
00:38:40,760 --> 00:38:45,130
Und da wäre es schön, wenn sich auch
noch Entwickler dafür finden würden,

420
00:38:45,130 --> 00:38:51,420
um das ein bisschen voranzubringen,
um eben auch ESP32 und Raspberry Pi

421
00:38:51,420 --> 00:38:58,850
noch zu unterstützen.

422
00:38:58,850 --> 00:39:04,490
So, im Prinzip bin ich jetzt durch.

423
00:39:04,490 --> 00:39:09,910
Wenn jetzt Fragen sind, dann bitte…

424
00:39:09,910 --> 00:39:14,740
…meldet euch, Fragen zum
ESPEasy-Projekt, Fragen zum

425
00:39:14,740 --> 00:39:21,440
EzPiC-Projekt. Ich muss nur
das Mikro weiterleiten.

426
00:39:21,440 --> 00:39:25,410
Frage: Wie machst du das mit der
Konfiguration der Temperatursensoren

427
00:39:25,410 --> 00:39:29,349
und so? Legst du ein Thermometer
daneben? Oder?

428
00:39:29,349 --> 00:39:33,890
Jochen: Die Temperatursensoren, wie der
DHT12, oder, was auch gern verwendet wird,

429
00:39:33,890 --> 00:39:38,720
der BME218 z.B., die sind ab Werk
kalibriert. Es kann halt sein, dass er

430
00:39:38,720 --> 00:39:42,880
1..2 Grad oder so mal danebenliegt.
Aber eigentlich kommen die Daten schon

431
00:39:42,880 --> 00:39:47,970
richtig in °C, und die Feuchtigkeit schon
in Prozent, d.h. da braucht man

432
00:39:47,970 --> 00:39:53,240
nichts kalibrieren. Für andere Sachen,
die man am Analogport anschließen will,

433
00:39:53,240 --> 00:39:57,760
gibt es eben da auch Min- und Max-Eingabe,

434
00:39:57,760 --> 00:40:01,189
wo man dann einfach mal die Werte…

435
00:40:01,189 --> 00:40:04,230
also, sprich, man hat eine obere
und eine untere Temperatur,

436
00:40:04,230 --> 00:40:08,779
man schaut sich den AD-Wandler-Wert an,
schreibt sich den auf,

437
00:40:08,779 --> 00:40:12,849
trägt den im Edit-Feld entsprechend ein
und kann dann sagen,

438
00:40:12,849 --> 00:40:16,430
der obere Wert soll „das“ sein, der
untere Wert soll „die“ Temperatur sein

439
00:40:16,430 --> 00:40:22,740
und hat das damit kalibriert.

440
00:40:22,740 --> 00:40:26,719
Sonst noch Fragen?

441
00:40:26,719 --> 00:40:32,010
Könnt ihr mal durchgeben, bitte?

442
00:40:32,010 --> 00:40:34,730
Frage: Hast du auch schon mal versucht,
das ganze ohne Strom,

443
00:40:34,730 --> 00:40:38,140
also mit Batterie zu realisieren?

444
00:40:38,140 --> 00:40:43,720
Jochen: Der ESP braucht, wenn er
WLAN machen will, 100 bis 200 mA.

445
00:40:43,720 --> 00:40:46,630
Und damit ist eine Batterie
natürlich sehr schnell leer.

446
00:40:46,630 --> 00:40:52,450
Es gibt auch einen Modus, wo ich ihn
in Deep-Schlaf versetzen kann,

447
00:40:52,450 --> 00:40:58,220
und alle paar Sekunden
aufwecken kann. Und…

448
00:40:58,220 --> 00:41:01,890
…ich muss da jetzt mal hier wieder
zurück auf den…

449
00:41:01,890 --> 00:41:05,269
Damit kann ich natürlich Messungen machen,
dass ich sage, alle Stunde wacht er

450
00:41:05,269 --> 00:41:11,940
einmal auf, misst, schickt das ganze
an ‒ hier unten, ‘Sleep Time’ ‒

451
00:41:11,940 --> 00:41:15,470
schickt das ganze an den Server
und legt sich wieder schlafen.

452
00:41:15,470 --> 00:41:20,089
Damit kann man dann… wir haben es mal
ausgerechnet, wenn ich alle Stunde messe,

453
00:41:20,089 --> 00:41:26,470
könnte ich mit AA-Batteriezellen ein
halbes/dreiviertel Jahr überbrücken.

454
00:41:26,470 --> 00:41:29,619
Aber ich habe halt dann nicht
kontinuierlich Werte, sondern nur

455
00:41:29,619 --> 00:41:32,630
im Stundenraster.

456
00:41:32,630 --> 00:41:37,160
Frage: Noch eine Frage ‒ wie weit geht
denn das Wi-Fi? Das ist nur so eine kurze,

457
00:41:37,160 --> 00:41:39,719
aufgedruckte Antenne. Das hat doch
nicht viel Reichweite?

458
00:41:39,719 --> 00:41:44,359
Jochen: Ich sage mal, halbsoweit wie
ein Laptop, so mal als Faustregel.

459
00:41:44,359 --> 00:41:52,769
Es gibt natürlich auch den WeMos D1 Pro,
das ist das Board,

460
00:41:52,769 --> 00:41:54,970
das hat noch einen Stecker drauf,
da kann ich eine externe…

461
00:41:54,970 --> 00:42:00,230
Da geht es ein bisschen weiter.
Aber man darf halt jetzt keine…

462
00:42:00,230 --> 00:42:10,820
nicht so eine gute Qualität wie jetzt
eben Handy bzw. PC erwarten.

463
00:42:10,820 --> 00:42:15,979
So, sonst noch Fragen?

464
00:42:15,979 --> 00:42:19,500
Keine? Dann…
danke für die Aufmerksamkeit!

465
00:42:19,500 --> 00:42:26,800
*Beifall*

466
00:42:26,800 --> 00:42:31,210
*Abspannmusik*

467
00:42:31,210 --> 00:42:38,305
*Untertitel erstellt von c3subtitles.de
im Jahr 2018*
