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!