WEBVTT
00:00:00.000 --> 00:00:12.379
EH2018 Vorspannmusik
00:00:12.379 --> 00:00:14.759
Jochen Krapf: Okay, hallo zusammen!
00:00:14.759 --> 00:00:18.230
Ich bin der Jochen. Ich will heute was
erzählen, wie es der Titel schon sagt,
00:00:18.230 --> 00:00:21.650
über „Easy Do-It-Yourself
Internet-of-Things“,
00:00:21.650 --> 00:00:27.470
Sachen mit dem ESP und mal einen kurzen
Überblick noch in der Version mit dem
00:00:27.470 --> 00:00:31.789
[Raspberry] Pi.
So, was wollen wir heute machen?
00:00:31.789 --> 00:00:35.800
Also eigentlich ein theoretischer Workshop,
wenn man so will. Ich will hier
00:00:35.800 --> 00:00:41.150
ein IoT-Gerät bauen, hier als Vortrag,
mit dem ich ein paar Sachen
00:00:41.150 --> 00:00:48.990
messen will. Als Raumtemperatur, relative
Feuchte, und auch ein Bewegungssensor.
00:00:48.990 --> 00:00:52.090
Ich will auch die Helligkeit noch ein
bisschen schätzen, nicht messen.
00:00:52.090 --> 00:00:55.690
Es ist keine genaue Messung, sondern nur,
ob es hell oder dunkel im Raum ist.
00:00:55.690 --> 00:01:02.531
Noch Tür- oder Fensterkontakte. Und
das Ganze soll dann mit MQTT ‒ das ist
00:01:02.531 --> 00:01:06.570
ein standardisiertes Protokoll, was bei
vielen IoT-Geräten verwendet wird
00:01:06.570 --> 00:01:11.070
mittlerweile ‒ soll an irgendeinen Server
geschickt werden. Das Ganze
00:01:11.070 --> 00:01:17.000
als kleines, einfaches Teil. Und
vielleicht noch einen Ausblick,
00:01:17.000 --> 00:01:22.080
was man sonst noch so alles mit
dem IoT-Gerät machen könnte.
00:01:22.080 --> 00:01:27.310
Man kann natürlich auch die
Funksteckdosen steuern. Man kann
00:01:27.310 --> 00:01:32.890
die Infrarot-Fernbedienung ersetzen durch
ein IoT-Gerät, und damit einen Fernseher
00:01:32.890 --> 00:01:38.670
quasi fernsteuern. Man kann irgendwelche
Taster abfragen, um dann z.B. Lichtschalter
00:01:38.670 --> 00:01:46.820
durch ein IoT-Gerät zu ersetzen. Man kann
LED-Strips steuern, sowohl die RGB-Strips
00:01:46.820 --> 00:01:53.810
als auch WS2812, das sind die
einzelsteuerbaren RGB-Sachen, oder
00:01:53.810 --> 00:01:59.449
auch Relais, um eine Lampe ein- und
auszuschalten. Statusanzeigen über LCD
00:01:59.449 --> 00:02:06.480
sind natürlich auch möglich. Und auch
weitere Sensoren, wie z.B. Feinstaub,
00:02:06.480 --> 00:02:11.380
Stickoxide, organische Gase und so was
kann man natürlich auch anschließen.
00:02:11.380 --> 00:02:17.490
Da soll mal das grobe Ziel sein, was wir
machen wollen. Und bei der Umsetzung
00:02:17.490 --> 00:02:20.480
habe ich natürlich auch ein paar
Anforderungen. Soll natürlich Open Source
00:02:20.480 --> 00:02:27.699
sein. Ist ja hier klar, eigentlich.
Möglichst wenig Programmierkenntnisse
00:02:27.699 --> 00:02:32.799
und auch wenig Löterfahrung, damit man
das einfach und schnell machen kann.
00:02:32.799 --> 00:02:37.319
Ich weiß, dass hier auch viele Leute sind,
die sehr gute Programmierer sind,
00:02:37.319 --> 00:02:40.549
aber hier geht’s eher darum, dass so
die breite Masse auch mal schnell
00:02:40.549 --> 00:02:46.199
ein IoT-Gerät bauen kann, ohne
viel Aufwand. Ich will natürlich
00:02:46.199 --> 00:02:51.319
Standardmodule verwenden, die
natürlich auch nichts kosten dürfen.
00:02:51.319 --> 00:02:57.299
Mit ‘Standardmodule’ meine ich Sachen,
die ich überall bei Ebay und sonstigen
00:02:57.299 --> 00:03:02.809
Portalen bekomme, für wenig Geld,
die oft auch als Arduino-Zusatzmodule
00:03:02.809 --> 00:03:07.299
ausgewiesen werden.
00:03:07.299 --> 00:03:10.279
Was nimmt man dafür?
Man braucht irgendeinen Prozessor.
00:03:10.279 --> 00:03:16.979
Das, was am häufigsten verwendet wird,
mittlerweile, ist der sogenannte ESP8266.
00:03:16.979 --> 00:03:24.219
„-12“ ist dann noch die spezielle Bauform.
Und sieht dann entsprechend so aus.
00:03:24.219 --> 00:03:30.150
Das ist ein 32 bit-Prozessor
mit genügend Megahertz,
00:03:30.150 --> 00:03:34.509
um auch ein bisschen Webserver
und sowas zu machen.
00:03:34.509 --> 00:03:41.310
Hat 4 MB Flash für [das] Programm
und auch eine Flash-Disk,
00:03:41.310 --> 00:03:46.339
um auch Dateien abzulegen. Mit 20kB
RAM kommt man nicht so weit,
00:03:46.339 --> 00:03:50.719
aber es reicht, auch für Webserver-
Anwendungen. Auf jeden Fall
00:03:50.719 --> 00:03:55.069
wesentlich mehr als man beim
Arduino, zum Beispiel, hätte.
00:03:55.069 --> 00:04:02.799
Der große Vorteil: er hat ein Wi-Fi mit
eingebaut. Man sieht ja die Antenne.
00:04:02.799 --> 00:04:10.669
Also die interne Antenne, um dann mit
2,4GHz dann gegen den lokalen Access Point
00:04:10.669 --> 00:04:17.870
dann Daten zu werfen. Der große Vorteil
ist, dass das Ganze über die Arduino-IDE
00:04:17.870 --> 00:04:25.300
programmierfähig ist. Und mehr als
90% der Libraries von Arduino auch
00:04:25.300 --> 00:04:29.340
mit diesem Prozessor verwendet werden
können. Man kann natürlich auch andere
00:04:29.340 --> 00:04:36.550
Sachen, wie atom-Umgebung mit platform.io
zur Programmierung verwenden.
00:04:36.550 --> 00:04:43.970
[Da] gehe ich jetzt nicht näher [darauf]
ein, nur… wer damit etwas machen will.
00:04:43.970 --> 00:04:51.270
Das Modul hat 2mm Raster, ist damit für
Hobbyisten natürlich nicht so gut geeignet.
00:04:51.270 --> 00:04:57.500
Mit Anlöten, oder Breadboard-Anwendung.
Deshalb gibt es ein paar andere Sachen,
00:04:57.500 --> 00:05:01.990
es gibt Hersteller, die dann genau dieses
Modul auf Platinen setzen, die dann wieder
00:05:01.990 --> 00:05:13.261
mit 2,54mm-Raster arbeiten ‒ dann also
Breadboard-fähig ‒ und dann auch schon
00:05:13.261 --> 00:05:18.789
USB-Seriell-Wandler mit auf der Platine
haben. Um dann gleich an den Rechner
00:05:18.789 --> 00:05:25.330
anstecken zu können. Und auch einen
Spannungswandler, um dann mit 5V
00:05:25.330 --> 00:05:32.220
zu arbeiten. Der Chip selber braucht 3,3V.
Auf der linken Seite ist die sogenannte
00:05:32.220 --> 00:05:36.800
Node-MCU. Die man nicht nur mit LUA
verwenden kann, sondern auch
00:05:36.800 --> 00:05:42.729
neu flashen, und dann eben seinen
C-Code darauf ausführen kann.
00:05:42.729 --> 00:05:48.270
Rechts sieht man das im Prinzip
elektronisch Gleiche, nur auf einer
00:05:48.270 --> 00:05:53.510
anderen Platine. Das ist der WeMos D1,
davon gibt es auch eine Pro-Variante
00:05:53.510 --> 00:05:59.680
mit steckbarer Antenne. Hat das gleiche
drauf, und den USB-Seriell-Wandler
00:05:59.680 --> 00:06:04.490
auf der Unterseite. Deshalb ist die
Platine kleiner und kompakter.
00:06:04.490 --> 00:06:11.220
Die werde ich jetzt hier für meine
Vorführung auch verwenden.
00:06:11.220 --> 00:06:16.840
Man hat an dem Prozessor 9 I/O-Pins,
00:06:16.840 --> 00:06:19.999
die man frei verwenden kann.
00:06:19.999 --> 00:06:23.580
Und damit kann man dann die meisten
Sachen auch abdecken. Man hat auch
00:06:23.580 --> 00:06:31.739
I2C-Bus, man hat SPI, man hat einen
AD-Wandler-Kanal. Fast alle Pins
00:06:31.739 --> 00:06:41.090
sind als GPIO verwendbar, um
dann alles mögliche zu schalten
00:06:41.090 --> 00:06:45.990
und eben einzulesen.
00:06:45.990 --> 00:06:50.199
Zu den Sensoren: ich habe ja gesagt,
Hauptaufgabe ist Temperatur-
00:06:50.199 --> 00:06:57.610
und Feuchtemessung. Dafür gibt es den
DHT22, als einen von vielen Sensoren,
00:06:57.610 --> 00:07:03.790
nur als Beispiel. Es gibt Infrarot-
Bewegungsmelder ‒ kann ich gleich
00:07:03.790 --> 00:07:09.370
noch mal live vorführen. Und es gibt
auch Standard-LDR’s, die man hier
00:07:09.370 --> 00:07:15.300
verwenden kann, um eine Helligkeit
abzuschätzen.
00:07:15.300 --> 00:07:20.960
Jetzt brauche ich die Kamera!
00:07:20.960 --> 00:07:30.780
Nö, ich muss mal kurz…
00:07:30.780 --> 00:07:34.950
Halt! Nein… So.
00:07:34.950 --> 00:07:39.740
Jetzt! Das ist nochmal der ESP.
Hier ist die Rückseite
00:07:39.740 --> 00:07:44.370
mit dem USB-Seriell-Wandler.
Hier ist die Vorderseite
00:07:44.370 --> 00:07:52.739
mit dem ESP, und eben der Antenne
auf der Vorderseite für WLAN.
00:07:52.739 --> 00:08:03.680
Sensoren ‒ habe ich einmal hier den DHT22,
00:08:03.680 --> 00:08:08.800
der hier einfach mit drei Pins am ESP
angeschlossen wird, da kommen wir
00:08:08.800 --> 00:08:18.969
gleich noch dazu. Ich habe noch den
Infrarot-Melder, der sieht dann so aus.
00:08:18.969 --> 00:08:23.719
Noch Schärfe…
00:08:23.719 --> 00:08:30.780
Und auf der Rückseite ist eben die
Elektronik, mit drei Anschlüssen,…
00:08:30.780 --> 00:08:38.129
Sieht man’s gut?
00:08:38.129 --> 00:08:40.489
So, jetzt.
00:08:40.489 --> 00:08:45.050
…der einfach nur ein Signal ausgibt,
wenn sich jemand im Raum bewegt hat.
00:08:45.050 --> 00:08:51.350
Ansonsten braucht er einfach 5 Volt,
und das war’s dann. Zu den Kosten:
00:08:51.350 --> 00:08:55.300
der Bewegungsmelder kostet
vielleicht 3..4 Euro, wenn man es
00:08:55.300 --> 00:09:01.930
in Deutschland kauft. Der Temperatursensor
auch 3..4..5 Euro. Es gibt natürlich
00:09:01.930 --> 00:09:06.850
noch weitere Module. Es gibt noch jede
Menge solche Module ‒ jetzt nur
00:09:06.850 --> 00:09:13.070
als Beispiel ‒ die einfach schon
00:09:13.070 --> 00:09:17.230
freundlicherweise auf ein
Board gelötet sind, und
00:09:17.230 --> 00:09:23.660
einfach mit ein paar Steckkontakten an
den Prozessor entweder angelötet bzw.
00:09:23.660 --> 00:09:27.529
mit Steckkabeln angeschlossen werden kann.
00:09:27.529 --> 00:09:35.440
Dann wollten wir ja noch die
Helligkeit detektieren. Da gibt es
00:09:35.440 --> 00:09:38.570
einen sogenannten LDR ‒ einen
lichtempfindlichen Widerstand.
00:09:38.570 --> 00:09:44.470
Kostet vielleicht einen Euro, oder weniger,
wenn man einen Zehnerpack nimmt.
00:09:44.470 --> 00:09:53.540
Dann eventuell noch eine Leuchtdiode
als Statusanzeige.
00:09:53.540 --> 00:09:58.160
Zu der Verkabelung:
ist auch relativ einfach.
00:09:58.160 --> 00:10:02.380
Für den Temperatursensor brauche
ich hier nur noch einen Widerstand
00:10:02.380 --> 00:10:11.250
als sogenannten Pullup, um die
Datenleitungen gegen die 3,3 V zu ziehen.
00:10:11.250 --> 00:10:14.370
Das heißt, ich brauche einfach nur
drei Kabel am Prozessor anlöten,
00:10:14.370 --> 00:10:18.660
und habe das Ding schon konnektiert.
00:10:18.660 --> 00:10:24.040
Eins daneben, in der Mitte, ist der
Bewegungsmelder. Der braucht 5 Volt,
00:10:24.040 --> 00:10:30.559
gibt ein 3,3 Volt TTL-Signal raus. Und den
kann ich auch einfach am Prozessor,
00:10:30.559 --> 00:10:35.490
an einem fast beliebigen Pin anschließen.
00:10:35.490 --> 00:10:41.310
Wenn ich die Helligkeit messen will, kann
ich den LDR oben rechts einfach so
00:10:41.310 --> 00:10:45.550
anschließen, weil, es sind schon
Widerstände als Spannungsteiler
00:10:45.550 --> 00:10:52.489
aufgelötet. Und damit brauche ich keine
weiteren, externen Komponenten.
00:10:52.489 --> 00:10:56.680
Wenn ich einen Türschalter habe will,
brauche ich natürlich noch einen Pullup,
00:10:56.680 --> 00:11:02.240
unten rechts, der mir das Ganze auf 3 Volt
zieht. Und der Schalter, ich sage mal,
00:11:02.240 --> 00:11:06.490
einen Reed-Schalter, z.B., um einen
Fensterkontakt abzufragen, der
00:11:06.490 --> 00:11:13.730
gegen Masse schaltet. Optional noch
eine LED, die am Fenster anzeigt, ob es
00:11:13.730 --> 00:11:20.050
geöffnet ist. Und auch die LED ‒ einfach
mit einem Vorwiderstand anschließen.
00:11:20.050 --> 00:11:25.339
Wenn ich weitere Sachen anschließen
will, nur so mal als Überblick,
00:11:25.339 --> 00:11:32.339
alles was einen I2C-Bus hat, einfach
mit den zwei Leitungen ‒ also ‘Daten’
00:11:32.339 --> 00:11:39.000
und ‘Clock’ ‒ am Prozessor anschließen,
und das war’s. Ich brauche nichts weiteres.
00:11:39.000 --> 00:11:43.420
Auch jetzt so ‘Neopixel’ ‒ einfach mit
einem Pin anschließen, natürlich
00:11:43.420 --> 00:11:48.300
die 5 Volt aus einem starken Netzteil
noch beziehen, und dann kann ich
00:11:48.300 --> 00:11:53.990
das Ganze betreiben. Auch einen LED-Strip
kann ich einfach mit einem Schalttransistor
00:11:53.990 --> 00:11:59.399
dann mit PWM auch die Helligkeit steuern.
Und man sieht, dass sich die ganze Hardware
00:11:59.399 --> 00:12:04.579
eigentlich sehr in Grenzen hält. Und damit
auch für Hobbyisten: einfach nur Kabel
00:12:04.579 --> 00:12:12.049
an Sensor und Prozessor anschließen,
und schon sollte alles funktionieren.
00:12:12.049 --> 00:12:16.980
Dann brauche ich natürlich noch ein
Netzteil. Da kann man natürlich solche
00:12:16.980 --> 00:12:22.829
schönen China-Handyladenetzteile nehmen.
Wenn man den USB-Stecker
00:12:22.829 --> 00:12:28.059
nicht kaufen will, kann man, wie hier
zu sehen, auch einfach aus einem Stück
00:12:28.059 --> 00:12:36.840
Lochrasterplatine sich selber schnell einen
Stecker bauen, funktioniert wunderbar.
00:12:36.840 --> 00:12:42.939
Gehäuse. Da ist man natürlich komplett
frei, was man machen will.
00:12:42.939 --> 00:12:48.920
Man kann irgendwas nehmen, was eh da ist,
eine Haushaltsbox, so eine Verteilerdose,
00:12:48.920 --> 00:12:54.960
vielleicht eine Zigarrenkiste oder
sonstwas. Wenn man im Hackerspace
00:12:54.960 --> 00:12:57.680
oder Fablab einen 3D-Drucker hat,
kann man sich natürlich da auch
00:12:57.680 --> 00:13:02.130
was beliebiges drucken. Ich nehme
natürlich sehr gern den Laser-Cutter,
00:13:02.130 --> 00:13:10.530
um damit Gehäuse zu bauen. Und
das kann ich dann auch vorführen.
00:13:10.530 --> 00:13:24.810
Muss nur schnell noch umbauen.
Aus dem Laser-Cutter
00:13:24.810 --> 00:13:29.210
würde dann z.B. sowas rausfallen.
00:13:29.210 --> 00:13:32.160
Also ein sehr luftiges Gehäuse,
dass man dann wirklich
00:13:32.160 --> 00:13:34.990
die Raumtemperatur messen kann
und nicht die Eigentemperatur
00:13:34.990 --> 00:13:42.490
des Prozessors. Und wenn man das
Ganze dann entsprechend bestückt,
00:13:42.490 --> 00:13:47.259
dann würde das so aussehen. Da habe ich
den Bewegungsmelder, ich habe meine
00:13:47.259 --> 00:13:56.390
Status-Leuchtdiode. Hier habe ich meinen
Temperatur- und Feuchtigkeitssensor.
00:13:56.390 --> 00:14:02.480
Hier vorne habe ich den LDR. Hier habe ich
noch die Buchsen für die Fensterkontakte,
00:14:02.480 --> 00:14:07.949
zwei Stück. Und hier gleich mit
eingearbeitet, das USB-Netzteil,
00:14:07.949 --> 00:14:11.819
um das Ding einfach in die nächste
Steckdose zu stecken und dann
00:14:11.819 --> 00:14:16.230
keine weiteren Kabel mehr zu ziehen.
Wer keine Steckdose hat, kann
00:14:16.230 --> 00:14:22.070
natürlich dann auch so eine Variante
nehmen. Das ist das gleiche,
00:14:22.070 --> 00:14:25.230
vielleicht muss ich es… naja… ein
bisschen anders halten, naja,
00:14:25.230 --> 00:14:33.710
man sieht es schlecht. Hier innen
drin sieht man den Prozessor.
00:14:33.710 --> 00:14:41.479
So. Hier sieht man den Prozessor, und
die USB-Buchse nach außen zugänglich,
00:14:41.479 --> 00:14:45.209
dass man einfach mit einem Micro-USB-
Kabel drauf verbinden kann.
00:14:45.209 --> 00:14:49.720
Ansonsten auch wieder hier oben den
lichtempfindlichen Widerstand,
00:14:49.720 --> 00:14:58.779
die Kontakte für die Fenster, Temperatur
und Feuchtigkeit. Und nach vorne
00:14:58.779 --> 00:15:04.249
den Passiv-Infrarot-Bewegungsmelder,
mit Diode. Und auf der Rückseite
00:15:04.249 --> 00:15:10.529
noch ein paar Löcher, um das ganze mit
Schrauben an die Wand zu dübeln.
00:15:10.529 --> 00:15:15.959
Man kann sich natürlich nicht nur solche
Gehäuse nehmen, oder bauen.
00:15:15.959 --> 00:15:20.370
Man kann natürlich auch andere Sachen
machen. Einfach mal als Ausblick, was man
00:15:20.370 --> 00:15:25.250
alles verwenden kann. Man kann auch
bestehende Sachen nehmen.
00:15:25.250 --> 00:15:31.699
Z. B. hier so einen schönen, alten
Schalter, die man teilweise noch findet.
00:15:31.699 --> 00:15:36.770
Wo man dann hier… schalten kann.
00:15:36.770 --> 00:15:44.809
Und auf der Unterseite ist natürlich
der ESP eingelassen.
00:15:44.809 --> 00:15:47.509
Das ganze gibt es natürlich auch…
00:15:47.509 --> 00:15:52.420
so, vielleicht, wenn noch jemand
die alten Schalter hier kennt,
00:15:52.420 --> 00:15:58.510
diese Bakelit-Schalter. Da wurde natürlich
das Schaltelement entfernt und durch
00:15:58.510 --> 00:16:07.110
einen Encoder ersetzt. Wenn man
mal dreht, hat man natürlich dann
00:16:07.110 --> 00:16:13.840
einen Encoder und kann damit auch
einen Dimmer z. B. damit realisieren.
00:16:13.840 --> 00:16:17.540
Was man auch noch hat,
es gibt auch solche Module,
00:16:17.540 --> 00:16:22.790
mit Touch-Zahlenfeldern. Dann einfach
ein paar Platten oben und unten drauf,
00:16:22.790 --> 00:16:34.480
und unten entsprechend wieder der
ESP eingelassen. Als letztes noch
00:16:34.480 --> 00:16:41.410
so eine schöne, alte, mechanische Klingel.
Mit ‒ irgendwo ein Stift? ‒
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.
00:16:48.510 --> 00:16:51.480
Einen Schalttransistor, um die Spulen
entsprechend zu treiben.
00:16:51.480 --> 00:16:58.139
Noch Stabilisierung über einen
Kondensator und hier der ESP.
00:16:58.139 --> 00:17:02.690
Und ich kann es auch
mal umdrehen. So.
00:17:02.690 --> 00:17:09.180
Und damit sind Sachen möglich, z. B.
als Notification Device, um zu sagen,
00:17:09.180 --> 00:17:13.119
dass eine Mail da ist, oder, bei uns
im Fablab haben wir das ganze dann
00:17:13.119 --> 00:17:15.949
mit zwei Läutwerken, um…
00:17:15.949 --> 00:17:21.660
…um die Uhrzeit zu schlagen,
in Binär natürlich,
00:17:21.660 --> 00:17:25.049
mit ‘High’ und ‘Low’, also zwei
verschiedenen Klingeltönen.
00:17:25.049 --> 00:17:29.230
Und das ist eben alles dann
als Gehäuse möglich.
00:17:29.230 --> 00:17:32.220
Ach ja, doch, eins habe ich noch!
00:17:32.220 --> 00:17:38.400
Auch so ein Schalter, so ein schöner,
alter Bakelit-Schalter,
00:17:38.400 --> 00:17:44.760
und dann einfach unten den ESP,
einfach eingeklebt.
00:17:44.760 --> 00:17:56.220
Ohne das Schalterelement jetzt
auszutauschen, sondern original zu lassen.
00:17:56.220 --> 00:18:02.460
Jetzt brauchen wir natürlich noch Software
für das Ganze. Da gibt es jetzt zwei…
00:18:02.460 --> 00:18:06.250
…Versionen, sage ich mal. Man kann sich
natürlich die Einzel-Libraries von Github
00:18:06.250 --> 00:18:11.840
holen. Für den DHT gibt es
eine Library, für den
00:18:11.840 --> 00:18:15.470
‒ was hatten wir noch alles? ‒
für irgendwelche anderen
00:18:15.470 --> 00:18:19.590
I2C-Devices, für alles Mögliche gibt es
Librarys, auch Webserver gibt es
00:18:19.590 --> 00:18:24.921
mittlerweile ziemlich viele für den ESP.
Wir wollen das ganze ja
00:18:24.921 --> 00:18:30.550
an einen Server schicken, mit MQTT,
auch dafür gibt es eine Library.
00:18:30.550 --> 00:18:33.440
Das kann man sich alles herunterladen,
kann das ganze irgendwie versuchen,
00:18:33.440 --> 00:18:38.650
zusammenzumergen, dann irgendwo in der
Arduino-IDE was zusammenzubasteln,
00:18:38.650 --> 00:18:42.860
wo das ganze dann verbindet. Und dann
ist man tagelang beschäftigt, bei Google
00:18:42.860 --> 00:18:47.130
und Stackoverflow zu schauen, warum es
nicht funktioniert, oder wie es dann
00:18:47.130 --> 00:18:51.490
richtig funktioniert. Das ist so die
Programmierervariante.
00:18:51.490 --> 00:18:55.830
Aber ich habe ja gesagt, wir wollen das
ganze für Leute auch machen, die jetzt
00:18:55.830 --> 00:19:01.230
keine oder wenig Programmiererfahrung
haben. Deshalb eben Version 2.
00:19:01.230 --> 00:19:06.390
Ich nehme einfach eine fertige Software
mit dem Namen ESPEasy.
00:19:06.390 --> 00:19:12.770
Hier zu finden auf Github bzw. das Wiki
dazu, einfach bei Google oder der
00:19:12.770 --> 00:19:16.581
entsprechenden Suchmaschine „ESPEasy Wiki“
eingeben, dann kommt ihr auf die
00:19:16.581 --> 00:19:24.520
entsprechende Seite.
So, was macht jetzt die Software?
00:19:24.520 --> 00:19:29.470
Jetzt muss ich erstmal meine Testumgebung
nochmal ein bisschen erklären.
00:19:29.470 --> 00:19:33.600
Ich habe hier ‒ da kann man ja nochmal
kurz die Kamera ‒ ich habe hier
00:19:33.600 --> 00:19:39.851
nochmal das, was ich schon gezeigt habe,
jetzt mit Kabel dran. Ich habe hier unten
00:19:39.851 --> 00:19:44.860
meinen ESP eingebaut.
00:19:44.860 --> 00:19:52.260
Und er hängt… USB jetzt nur
als Stromverbindung.
00:19:52.260 --> 00:19:57.680
Und ich habe hier einen Banana Pi als
Server und Access Point stehen.
00:19:57.680 --> 00:20:01.460
Access Point heißt, ich habe jetzt schon
eine Verbindung hergestellt zwischen
00:20:01.460 --> 00:20:07.590
dem ESP und dem Access Point. Mein Rechner
ist jetzt auch auf dem gleichen Access Point.
00:20:07.590 --> 00:20:11.510
Und damit kann ich jetzt die Webseite
von dem ESP mir anschauen.
00:20:11.510 --> 00:20:17.570
Auf dem Banana Pi ist auch noch der MQTT
Broker installiert, wo ich dann später
00:20:17.570 --> 00:20:22.990
nochmal darauf zurückkommen will.
00:20:22.990 --> 00:20:27.820
So.
00:20:27.820 --> 00:20:33.300
Hier oben sieht man die IP-Adresse,
d. h. ich bin jetzt direkt auf dem ESP,
00:20:33.300 --> 00:20:38.120
der jetzt mit dieser Adresse angemeldet
ist. Vielleicht muss ich noch einen Schritt
00:20:38.120 --> 00:20:43.920
zurückgehen. Beim ersten Mal flashen mit
diesem ESPEasy geht der ESP in den
00:20:43.920 --> 00:20:48.250
Access Point Mode. Ich kann mich dann mit
Handy oder Laptop darauf verbinden,
00:20:48.250 --> 00:20:53.030
kann dann die SSID und Passwort
entsprechend eintippen. Dann wird
00:20:53.030 --> 00:20:57.240
neu gebootet, und dann ist er bereit,
und ich kann dann im hausinternen Netz,
00:20:57.240 --> 00:21:02.530
wie jetzt, einfach darauf zugreifen.
Wenn ich draufgehe, habe ich erstmal
00:21:02.530 --> 00:21:09.370
eine Übersichtsseite, mit
allgemeinen Info-Daten.
00:21:09.370 --> 00:21:14.500
Ich habe eine Karteikarte mit der
Konfiguration. Wie jetzt hier,
00:21:14.500 --> 00:21:22.680
das ist mein Access Point, mit dem
entsprechenden Passwort.
00:21:22.680 --> 00:21:28.800
Ich kann auch noch einen zweiten
Access Point eintragen, als Fallback.
00:21:28.800 --> 00:21:33.830
Ich kann natürlich auch feste Adressen
vergeben, wenn ich keinen DHCP
00:21:33.830 --> 00:21:39.820
haben will. Und ich kann auch
00:21:39.820 --> 00:21:43.230
den Zugriff über ein Passwort schützen,
wenn ich Angst habe, dass über mein
00:21:43.230 --> 00:21:46.700
hausinternes Netz jemand dranrumspielt.
00:21:46.700 --> 00:21:51.530
Das braucht man im Heimnetz
üblicherweise nicht.
00:21:51.530 --> 00:21:55.670
Das ist die Grundkonfiguration, um erstmal
die Kommunikation herzustellen,
00:21:55.670 --> 00:22:02.790
nach außen. Es gibt eine Hardwareseite,
wo ich noch sagen kann,
00:22:02.790 --> 00:22:08.580
wo mein I2C-Bus liegt, auf welchen Pins.
Ich kann noch die Status-LED,
00:22:08.580 --> 00:22:14.510
die hier öfter mal blau blinkt, noch
sagen, auf welchem Pin die liegt,
00:22:14.510 --> 00:22:20.110
um dann auch eben ‘Rückkopplungen’
über Verbindungen und
00:22:20.110 --> 00:22:26.720
Datenpakete noch zu erhalten. Das
wichtigste ist eigentlich dieser Reiter,
00:22:26.720 --> 00:22:31.090
„Devices“. Hier geht es um die ganzen
Sensoren, die ich angeschlossen habe
00:22:31.090 --> 00:22:37.200
oder anschließen kann. Ich habe
jetzt hier drei Sensoren aktiviert.
00:22:37.200 --> 00:22:44.070
Die drei, die ich vorhin
schon vorgestellt habe.
00:22:44.070 --> 00:22:47.550
Ich fange jetzt einfach mal
mit dem einfachsten an.
00:22:47.550 --> 00:22:51.360
Der Passiv-Infrarotmelder gibt ja
einfach nur ein Signal aus,
00:22:51.360 --> 00:22:54.460
wenn sich jemand bewegt hat.
Das heißt, ich brauche einfach nur
00:22:54.460 --> 00:23:04.180
einen Schaltereingang. Nennt sich dann,
00:23:04.180 --> 00:23:08.240
hier, „Switch“.
00:23:08.240 --> 00:23:11.230
Okay, ich fange nochmal andersrum an,
ich nehme erstmal einen neuen.
00:23:11.230 --> 00:23:15.000
Ich nehme einen… hier.
00:23:15.000 --> 00:23:19.620
Wenn ich noch nichts eingetragen habe,
habe ich hier eine Auswahl,
00:23:19.620 --> 00:23:25.430
mit Sensoren, die ich hierfür
verwenden kann. Sind irgendwie,
00:23:25.430 --> 00:23:31.020
glaube ich, so 60 Stück, oder so,
oder 65 mittlerweile.
00:23:31.020 --> 00:23:34.420
Das sind lauter Plug-Ins, die werden
ständig erweitert, von irgendwelchen
00:23:34.420 --> 00:23:38.740
Usern, die freundlicherweise eben
die Plug-Ins zur Verfügung stellen.
00:23:38.740 --> 00:23:44.900
Und damit kann ich eben so ziemlich alles,
was es an Sensor-Platinen zu kaufen gibt,
00:23:44.900 --> 00:23:50.410
auch einbinden. Wenn ich das
dann mal ausgewählt habe,
00:23:50.410 --> 00:23:56.070
dann habe ich es hier eingetragen,
und kann es editieren.
00:23:56.070 --> 00:23:59.620
Also hier habe ich einen
‘Switch’ ausgewählt.
00:23:59.620 --> 00:24:02.880
Kann ich jetzt nicht mehr ändern,
dann müsste ich es eben
00:24:02.880 --> 00:24:08.010
rausschmeißen. Ich kann dem Device einen
Namen geben. Das ist dann interessant,
00:24:08.010 --> 00:24:12.120
wenn ich mehrere Devices vom
gleichen Typ habe. Und es ist auch
00:24:12.120 --> 00:24:17.160
interessant für das, was ich an MQTT
schicke, weil das Teil des Namens ist,
00:24:17.160 --> 00:24:22.490
des Topics ist, was bei MQTT
dann verwendet wird.
00:24:22.490 --> 00:24:25.620
Ich kann dann jetzt beim ‘Schalter’ noch
sagen, ob ich einen Pull-Up haben will,
00:24:25.620 --> 00:24:30.680
ob ich eine invertierte Logik haben will,
welchen Pin ich haben will.
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
00:24:36.460 --> 00:24:42.770
oder anderen festen Sachen
dann belegt sind.
00:24:42.770 --> 00:24:46.850
Ich kann sagen „normaler Switch“
oder auch „dimmer mode“ oder so.
00:24:46.850 --> 00:24:49.790
Können wir später mal darauf eingehen.
00:24:49.790 --> 00:24:54.210
Und das ‘delay’ ‒ komme ich beim anderen
Sensor nochmal drauf. Dieser Schalter,
00:24:54.210 --> 00:25:00.000
wenn „delay=0“ eingestellt ist,
würde jetzt immer bei einer Änderung
00:25:00.000 --> 00:25:04.500
ein Datenpaket an MQTT schicken.
00:25:04.500 --> 00:25:10.800
Und ich kann der Variablen, die geschickt
wird, auch noch einen Namen geben.
00:25:10.800 --> 00:25:15.270
Das ist vielleicht besser zu sehen
bei dem nächsten Sensor.
00:25:15.270 --> 00:25:20.230
Das ist nämlich dieser Temperatur-
und Feuchtesensor,
00:25:20.230 --> 00:25:26.380
DHT-11 oder auch -22, je nachdem,
was man verwenden will.
00:25:26.380 --> 00:25:32.440
Hier kann ich wieder einen Namen vergeben.
Ich kann sagen, er ist auf ‘diesem’ Pin.
00:25:32.440 --> 00:25:36.180
Dann wird ja… von dem Plug-In werden
mehrere Sachen unterstützt.
00:25:36.180 --> 00:25:40.780
Da kann ich auswählen, welche.
00:25:40.780 --> 00:25:45.740
Und ich kann jetzt noch sagen, er soll
alle 10 Sekunden gesampled werden,
00:25:45.740 --> 00:25:51.870
und der Temperaturwert eben
übermittelt werden. Ich habe hier
00:25:51.870 --> 00:25:57.720
eben zwei Kanäle, Temperatur und
Feuchtigkeit, und kann irgendeinen
00:25:57.720 --> 00:26:06.890
Namen vergeben, entsprechend für MQTT
oder andere Heim-Automatisierungssysteme,
00:26:06.890 --> 00:26:13.800
an die ich das ganze dann schicken will.
00:26:13.800 --> 00:26:19.190
Noch der letzte, der lichtempfindliche
Widerstand, mit dem ich ja die Helligkeit
00:26:19.190 --> 00:26:24.530
abschätzen will. Hängt einfach auf einem
Analogkanal. Okay ‒ auf DEM einen
00:26:24.530 --> 00:26:30.700
Analogkanal. Ich kann noch sagen
„Oversampling“, um dann eben Rauschen
00:26:30.700 --> 00:26:35.620
rauszubekommen. Ich könnte auch noch
das ganze kalibrieren, wenn ich wollte,
00:26:35.620 --> 00:26:40.140
dass ich eben einen unteren und oberen
Punkt definiere, und dazwischen
00:26:40.140 --> 00:26:44.850
wird eben linear interpoliert. Und auch
der soll jetzt alle 10 Sekunden
00:26:44.850 --> 00:26:50.560
gesampled werden. Dann habe ich hier
noch eine Einstellung, „dieser Wert soll
00:26:50.560 --> 00:26:56.820
an Controller 1 geschickt werden“. Zu den
Controllern komme ich jetzt gleich.
00:26:56.820 --> 00:27:01.710
Und auch hier habe ich wieder
einen Namen festgelegt.
00:27:01.710 --> 00:27:08.720
Und so kann ich halt bis zu 12 Devices
konfigurieren, und einfach durch Klicken
00:27:08.720 --> 00:27:14.420
in der Web-Oberfläche dann zuweisen
auf die Pins, auf die Eigenschaften,
00:27:14.420 --> 00:27:21.260
einige Sachen eben auch skalieren.
00:27:21.260 --> 00:27:24.500
Hier bei ‘Analog’ zum Beispiel könnte ich
auch eine Formel eintippen,
00:27:24.500 --> 00:27:29.040
oder eine einfache Formel, wo ich dann
sage, ich multipliziere oder addiere
00:27:29.040 --> 00:27:32.210
noch einen Wert dazu. Bei der Temperatur
kann es sein, dass sie immer
00:27:32.210 --> 00:27:37.200
ein Grad zu hoch oder zu tief misst, dann
könnte ich hier einfach „-1“ reinschreiben.
00:27:37.200 --> 00:27:41.460
Oder halt dann auf andere Werte skalieren.
00:27:41.460 --> 00:27:47.240
Ich kann auch noch festlegen, wieviele
Dezimalstellen an den Controller
00:27:47.240 --> 00:27:53.910
übermittelt werden sollen.
So, jetzt zu den Controllern.
00:27:53.910 --> 00:27:59.020
Hier habe ich schon mal zwei eingetragen,
auch hier wieder das gleiche
00:27:59.020 --> 00:28:06.270
Plug-In-Prinzip. Ich habe
die Auswahl von etlichen
00:28:06.270 --> 00:28:13.070
Controllern. Also verschiedene
MQTT-Varianten, die aber alle
00:28:13.070 --> 00:28:20.500
recht ähnlich sind. Ich kann auch
http-Requests abschicken, weil, an viele
00:28:20.500 --> 00:28:26.020
Server oder auch Datenbanken kann man
einfach ein GET-Request hinschicken,
00:28:26.020 --> 00:28:32.450
und die übernehmen so die Daten.
00:28:32.450 --> 00:28:36.820
Da können wir jetzt mal rein.
00:28:36.820 --> 00:28:40.220
Bleiben wir mal gleich
bei dem GET-Request.
00:28:40.220 --> 00:28:45.280
Ich kann hier eine IP-Adresse sagen,
wo das ganze hingeschickt werden soll,
00:28:45.280 --> 00:28:50.760
über welchen Port. Wenn notwendig,
auch, über Login.
00:28:50.760 --> 00:28:54.610
Ich kann hier dann auch sagen, GET
oder POST, oder was auch immer.
00:28:54.610 --> 00:28:57.220
Und kann das auch hier
entsprechend zusammenbauen.
00:28:57.220 --> 00:29:01.520
Damit habe ich auch die Möglichkeit,
einer InfluxDB-Datenbank z.B.
00:29:01.520 --> 00:29:09.720
die Daten direkt hinzuschicken.
00:29:09.720 --> 00:29:14.280
Ich will aber jetzt hier an einen
MQTT-Server das ganze schicken.
00:29:14.280 --> 00:29:17.910
Nicht ‘Server’, sondern ‘Broker’
in dem Fall.
00:29:17.910 --> 00:29:24.710
Das ist mein Banana Pi, die Adresse,
wo der Broker läuft. Der Standard-Port
00:29:24.710 --> 00:29:30.840
ist eben die 1883. Wenn
notwendig, auch mit Login.
00:29:30.840 --> 00:29:39.930
Und das ist eine Variable, wie er
das Topic für den MQTT-String
00:29:39.930 --> 00:29:44.550
zusammenbaut. Ich habe den
Systemnamen, das wäre jetzt hier
00:29:44.550 --> 00:29:52.120
„Test-IoT“. „Task-Name“ wäre quasi
der Sensor. Und „value-Name“
00:29:52.120 --> 00:29:57.450
wäre eben z.B. Temperatur- oder
Feuchtigkeit. Und damit habe ich
00:29:57.450 --> 00:30:03.420
alles konfiguriert, was ich brauche.
Und damit sollte eigentlich schon
00:30:03.420 --> 00:30:09.950
alles funktionieren.
00:30:09.950 --> 00:30:13.400
So, jetzt habe ich hier auf meinem Rechner
00:30:13.400 --> 00:30:19.560
ein kleines Python-Skript, was jetzt einfach
zu dem Broker eine Verbindung aufbaut
00:30:19.560 --> 00:30:24.240
und einfach mitliest, was eben an den
Broker geschickt wird. Und man sieht,
00:30:24.240 --> 00:30:30.220
dass jetzt alle 10 Sekunden Temperatur,
Feuchtigkeit und Helligkeit
00:30:30.220 --> 00:30:35.520
geschickt wird. Und wenn ich hier mich
irgendwie bewege, dann wird auch noch
00:30:35.520 --> 00:30:42.240
ein „anyone here“ vom Infrarotsensor
00:30:42.240 --> 00:30:48.540
eben mitgeschickt. D.h. man sieht,
es funktioniert auch schon.
00:30:48.540 --> 00:30:54.170
So, ohne dass man jetzt großartig was
programmieren oder einstellen muss.
00:30:54.170 --> 00:31:00.010
Einfach nur zusammenklicken,
und das war’s.
00:31:00.010 --> 00:31:04.490
Ich habe natürlich noch ein bisschen mehr
00:31:04.490 --> 00:31:09.560
Möglichkeiten. Ich habe auch noch „Rules“.
00:31:09.560 --> 00:31:14.320
Das sind dann sehr einfache Regeln,
die ich noch hinterlegen kann.
00:31:14.320 --> 00:31:19.640
Z.B. wenn der Infrarotsensor mit dem Kanal
„Anyone here“ triggert, also,
00:31:19.640 --> 00:31:28.270
sprich, wenn ich hier mich bewege
und gleichzeitig der LDR einen Wert
00:31:28.270 --> 00:31:32.550
kleiner 200, das war jetzt empirisch
ermittelt, d.h. einfach, hier im Raum
00:31:32.550 --> 00:31:38.770
wäre es dunkel. Dann soll er einfach
auf einem GPIO-Pin eben den Status
00:31:38.770 --> 00:31:42.800
von „Anyone here“ ausgeben. Das wäre
jetzt die einfachste Variante von dem,
00:31:42.800 --> 00:31:49.140
was man als Bewegungsmelder mit Lampe
kennt. Kann man hier einfach als Rule
00:31:49.140 --> 00:31:52.311
hinterlegen. Es geht noch ein bisschen
komplizierter, aber jetzt bitte
00:31:52.311 --> 00:31:57.020
keine Wunder erwarten. Also aufwändigere
Sachen würde man dann auf der Serverseite
00:31:57.020 --> 00:32:03.040
machen, hinter dem MQTT-Broker. Aber auch
hier können wir als Standalone-Lösung
00:32:03.040 --> 00:32:10.690
schon einen einfachen Bewegungsmelder,
der eine Lampe schaltet, realisieren.
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,
00:32:18.130 --> 00:32:22.370
um herauszufinden, auf welcher Adresse
jetzt mein Sensor läuft, weil, das ist
00:32:22.370 --> 00:32:28.350
nicht immer klar bei den einfachen
Modulen. Ich kann meine Settings
00:32:28.350 --> 00:32:37.870
noch wohin speichern, ich kann neue
Firmware over-se-air auch updaten.
00:32:37.870 --> 00:32:41.980
Ich kann auch hier noch
00:32:41.980 --> 00:32:49.690
einige Zusatzsachen einstellen, aber
das würde jetzt zu weit gehen.
00:32:49.690 --> 00:32:54.520
Auch… irgendwo war es doch…
ich sehe es gerade nicht…
00:32:54.520 --> 00:33:00.500
NTP-Server kann ich einstellen, z.B. wie
ich gesagt habe, für den Stundenschlag
00:33:00.500 --> 00:33:05.840
würde aus NTP die Zeit beziehen, und dann
natürlich sekundengenau schlagen.
00:33:05.840 --> 00:33:14.900
Pause
00:33:14.900 --> 00:33:20.130
So. Dann wieder zurück zu meinen Folien.
Damit hätten wir im Prinzip
00:33:20.130 --> 00:33:23.210
eigentlich ein fertiges Gerät, was man
einfach nur noch an die Wand schrauben
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
00:33:31.230 --> 00:33:35.610
einen Server wie FHEM oder sowas
hintendran setzen, der die Daten
00:33:35.610 --> 00:33:39.640
entgegennimmt, und auch
Hausautomatisierung machen, hier
00:33:39.640 --> 00:33:45.120
aus der Temperatur oder Feuchtigkeit dann
die Heizung entsprechend ein-/ausschalten,
00:33:45.120 --> 00:33:48.780
irgendwelche Lichter ein-/ausschalten,
oder Warnung geben, wenn noch ein Fenster
00:33:48.780 --> 00:34:00.380
offen ist. Das ganze beruht jetzt auf dem
ESP, dem alten, kleinen ESP, muss ich
00:34:00.380 --> 00:34:07.730
dazu sagen. Die ESP32-Variante ist
gerade noch im Programmieren,
00:34:07.730 --> 00:34:12.500
ist noch nicht so richtig einsatzfähig.
Wer als Beta-Version damit spielen will,
00:34:12.500 --> 00:34:17.960
kann die gerne mal probieren. Aber
das ist jetzt… bezieht sich nur auf den
00:34:17.960 --> 00:34:24.809
kleinen ESP. Es gibt ein zweites Projekt.
00:34:24.809 --> 00:34:28.939
Mit dem Namen EzPiC.
00:34:28.939 --> 00:34:33.149
Jetzt hier rechts oben zu sehen.
Die Grundphilosophie
00:34:33.149 --> 00:34:36.489
ist die gleiche. D.h. ich will eine
Web-Oberfläche, wo ich alles schnell
00:34:36.489 --> 00:34:44.408
einstellen kann. Ich will mich nicht lange
mit Programmierung und sowas aufhalten.
00:34:44.408 --> 00:34:51.619
Und warum das Projekt angefangen wurde
ist, ich will erstmal das ganze auf dem Pi
00:34:51.619 --> 00:34:54.809
zum Laufen bringen. Das war der
ursprüngliche Gedanke, wurde dann
00:34:54.809 --> 00:35:00.359
erweitert. Ich will es auch noch auf einem
ESP32, also der nächstgrößere ESP
00:35:00.359 --> 00:35:04.529
mit mehr Speicher, mehr Geschwindigkeit
und noch ein paar Features mehr,
00:35:04.529 --> 00:35:12.740
auch mehr Pins. Und als Zusatzding
für die Entwickler, dass die
00:35:12.740 --> 00:35:16.450
das ganze erstmal, wenn es nicht um
die reine Hardware geht, auch mal
00:35:16.450 --> 00:35:21.500
auf dem PC testen können. Also ohne
dauernd irgendwas zu programmieren
00:35:21.500 --> 00:35:25.460
und, ja, geht nicht, und man muss jetzt
mit LED-Blinken quasi debuggen,
00:35:25.460 --> 00:35:30.919
sondern ich kann dann in einer richtigen
Umgebung, z.B. atom-Umgebung,
00:35:30.919 --> 00:35:37.160
bzw. Visual Studio Code, dann kann ich
einfach rein-debuggen
00:35:37.160 --> 00:35:41.619
und schonmal alles ausprobieren.
00:35:41.619 --> 00:35:46.910
Das ESPEasy-Projekt ist
in C und C++ geschrieben.
00:35:46.910 --> 00:35:51.300
Das EzPiC-Projekt ist angedacht mit Python
00:35:51.300 --> 00:35:56.380
und wurde jetzt noch erweitert
mit microPython, also ein Hybrid
00:35:56.380 --> 00:36:00.799
aus beiden Welten. Und das klappt auch
schon recht gut. D.h. man kann
00:36:00.799 --> 00:36:06.920
mit dem gleichen Source-Code-Stand
sowohl microPython auf einer ESP32
00:36:06.920 --> 00:36:13.229
fahren, als auch mit Normal-Python,
also 3.4 oder höher.
00:36:13.229 --> 00:36:18.020
Auf dem PC oder auf dem Raspberry Pi.
00:36:18.020 --> 00:36:23.539
Der Webserver bei dem ESPEasy-Projekt
ist selbergeschrieben.
00:36:23.539 --> 00:36:28.690
Bei dem neuen Projekt wird versucht,
einen fertigen Webserver, den es
00:36:28.690 --> 00:36:33.750
als lauffähiges Projekt gibt, mit
einzubinden. Das ist der ‘MicroWebSrv’.
00:36:33.750 --> 00:36:37.950
Findet man auf Github.
00:36:37.950 --> 00:36:41.670
Das neue Projekt ist noch in einer frühen
Phase, ich dachte, dass man vielleicht
00:36:41.670 --> 00:36:47.350
schon für den Easter-Hegg dann schon mehr
zeigen kann. Aber ist noch in einer
00:36:47.350 --> 00:36:55.490
sehr, sehr Alpha-Version. Der Grund,
warum auch das neue Projekt… auf dem ESP
00:36:55.490 --> 00:36:59.400
habe ich natürlich sehr begrenzte
Ressourcen, was jetzt RAM betrifft,
00:36:59.400 --> 00:37:06.440
was Flash betrifft, was Geschwindigkeit
betrifft, auch die Pins sind sehr limitiert.
00:37:06.440 --> 00:37:11.619
Und wenn ich in einer anderen Umgebung
bin, dann kann ich mich halt
00:37:11.619 --> 00:37:17.120
freier bewegen, und mich dann
entsprechend austoben.
00:37:17.120 --> 00:37:21.940
Ohne jetzt auf die Details einzugehen,
da gibt es schon entsprechende
00:37:21.940 --> 00:37:26.650
Konzepte. Es ist alles Plugin-basiert,
dass man dann auch sagen kann,
00:37:26.650 --> 00:37:31.230
ich habe für andere Prozessoren auch
andere Module, die dann spezielle Hardware
00:37:31.230 --> 00:37:40.849
noch unterstützen, die auf dem Prozessor
möglich sind. Und was ich schon zeigen kann,
00:37:40.849 --> 00:37:49.150
ist, eine kleine Demo, das läuft jetzt auf
meinem PC, ich habe es jetzt
00:37:49.150 --> 00:37:55.209
technisch nicht mehr geschafft, auf die
Schnelle den Banana Pi dazu zu bringen.
00:37:55.209 --> 00:38:02.160
Ich habe hier meine Web Page, ich bin
jetzt quasi in dem Webserver, der quasi
00:38:02.160 --> 00:38:05.660
in Python läuft.
Ich habe hier auch schon
00:38:05.660 --> 00:38:09.670
Devices, mit entsprechend
einer Device-Liste, wo ich
00:38:09.670 --> 00:38:14.589
Devices dazuhängen kann,
00:38:14.589 --> 00:38:19.750
wo ich auch Devices editieren kann.
00:38:19.750 --> 00:38:24.020
Man sieht, das sieht alles ähnlich aus
wie bei dem ESPEasy-Projekt,
00:38:24.020 --> 00:38:30.210
nur hier da mehr Ressourcen
verfügbar sind, mit Bootstrap
00:38:30.210 --> 00:38:36.540
als Oberflächen-Tool. Und
00:38:36.540 --> 00:38:40.760
halt hier die ersten Schritte
‒ Plugin-System läuft.
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,
00:38:45.130 --> 00:38:51.420
um das ein bisschen voranzubringen,
um eben auch ESP32 und Raspberry Pi
00:38:51.420 --> 00:38:58.850
noch zu unterstützen.
00:38:58.850 --> 00:39:04.490
So, im Prinzip bin ich jetzt durch.
00:39:04.490 --> 00:39:09.910
Wenn jetzt Fragen sind, dann bitte…
00:39:09.910 --> 00:39:14.740
…meldet euch, Fragen zum
ESPEasy-Projekt, Fragen zum
00:39:14.740 --> 00:39:21.440
EzPiC-Projekt. Ich muss nur
das Mikro weiterleiten.
00:39:21.440 --> 00:39:25.410
Frage: Wie machst du das mit der
Konfiguration der Temperatursensoren
00:39:25.410 --> 00:39:29.349
und so? Legst du ein Thermometer
daneben? Oder?
00:39:29.349 --> 00:39:33.890
Jochen: Die Temperatursensoren, wie der
DHT12, oder, was auch gern verwendet wird,
00:39:33.890 --> 00:39:38.720
der BME218 z.B., die sind ab Werk
kalibriert. Es kann halt sein, dass er
00:39:38.720 --> 00:39:42.880
1..2 Grad oder so mal danebenliegt.
Aber eigentlich kommen die Daten schon
00:39:42.880 --> 00:39:47.970
richtig in °C, und die Feuchtigkeit schon
in Prozent, d.h. da braucht man
00:39:47.970 --> 00:39:53.240
nichts kalibrieren. Für andere Sachen,
die man am Analogport anschließen will,
00:39:53.240 --> 00:39:57.760
gibt es eben da auch Min- und Max-Eingabe,
00:39:57.760 --> 00:40:01.189
wo man dann einfach mal die Werte…
00:40:01.189 --> 00:40:04.230
also, sprich, man hat eine obere
und eine untere Temperatur,
00:40:04.230 --> 00:40:08.779
man schaut sich den AD-Wandler-Wert an,
schreibt sich den auf,
00:40:08.779 --> 00:40:12.849
trägt den im Edit-Feld entsprechend ein
und kann dann sagen,
00:40:12.849 --> 00:40:16.430
der obere Wert soll „das“ sein, der
untere Wert soll „die“ Temperatur sein
00:40:16.430 --> 00:40:22.740
und hat das damit kalibriert.
00:40:22.740 --> 00:40:26.719
Sonst noch Fragen?
00:40:26.719 --> 00:40:32.010
Könnt ihr mal durchgeben, bitte?
00:40:32.010 --> 00:40:34.730
Frage: Hast du auch schon mal versucht,
das ganze ohne Strom,
00:40:34.730 --> 00:40:38.140
also mit Batterie zu realisieren?
00:40:38.140 --> 00:40:43.720
Jochen: Der ESP braucht, wenn er
WLAN machen will, 100 bis 200 mA.
00:40:43.720 --> 00:40:46.630
Und damit ist eine Batterie
natürlich sehr schnell leer.
00:40:46.630 --> 00:40:52.450
Es gibt auch einen Modus, wo ich ihn
in Deep-Schlaf versetzen kann,
00:40:52.450 --> 00:40:58.220
und alle paar Sekunden
aufwecken kann. Und…
00:40:58.220 --> 00:41:01.890
…ich muss da jetzt mal hier wieder
zurück auf den…
00:41:01.890 --> 00:41:05.269
Damit kann ich natürlich Messungen machen,
dass ich sage, alle Stunde wacht er
00:41:05.269 --> 00:41:11.940
einmal auf, misst, schickt das ganze
an ‒ hier unten, ‘Sleep Time’ ‒
00:41:11.940 --> 00:41:15.470
schickt das ganze an den Server
und legt sich wieder schlafen.
00:41:15.470 --> 00:41:20.089
Damit kann man dann… wir haben es mal
ausgerechnet, wenn ich alle Stunde messe,
00:41:20.089 --> 00:41:26.470
könnte ich mit AA-Batteriezellen ein
halbes/dreiviertel Jahr überbrücken.
00:41:26.470 --> 00:41:29.619
Aber ich habe halt dann nicht
kontinuierlich Werte, sondern nur
00:41:29.619 --> 00:41:32.630
im Stundenraster.
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,
00:41:37.160 --> 00:41:39.719
aufgedruckte Antenne. Das hat doch
nicht viel Reichweite?
00:41:39.719 --> 00:41:44.359
Jochen: Ich sage mal, halbsoweit wie
ein Laptop, so mal als Faustregel.
00:41:44.359 --> 00:41:52.769
Es gibt natürlich auch den WeMos D1 Pro,
das ist das Board,
00:41:52.769 --> 00:41:54.970
das hat noch einen Stecker drauf,
da kann ich eine externe…
00:41:54.970 --> 00:42:00.230
Da geht es ein bisschen weiter.
Aber man darf halt jetzt keine…
00:42:00.230 --> 00:42:10.820
nicht so eine gute Qualität wie jetzt
eben Handy bzw. PC erwarten.
00:42:10.820 --> 00:42:15.979
So, sonst noch Fragen?
00:42:15.979 --> 00:42:19.500
Keine? Dann…
danke für die Aufmerksamkeit!
00:42:19.500 --> 00:42:26.800
Beifall
00:42:26.800 --> 00:42:31.210
Abspannmusik
00:42:31.210 --> 00:42:38.305
Untertitel erstellt von c3subtitles.de
im Jahr 2018. Mach mit und hilf uns!