Inhaltsverzeichnis:
- Lieferungen
- Schritt 1: Idee
- Schritt 2: Blockdiagramm
- Schritt 3: Programmierung
- Schritt 4: Schaltplan und Löten
- Schritt 5: Android-App
Video: IoT-Mondlampe - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
In diesem anweisbaren zeige ich, wie man eine einfache batteriebetriebene LED-Lampe in ein IoT-Gerät umwandelt.
Dieses Projekt beinhaltet:
- Löten;
- Programmierung von ESP8266 mit Arduino IDE;
- Android-Anwendung mit MIT App Inventor erstellen.
Das interessante Objekt ist diese mondförmige Lampe, die ich bei Gearbest gekauft habe. Aber dieses Tutorial kann wirklich an jedes Gerät mit niedriger Gleichspannung angepasst werden (wechselstrombetriebene Geräte erfordern zusätzliche Schaltungen).
Lieferungen
- Android-Smartphone (Android-Versionen 7-9 getestet).
- Lötwerkzeuge.
- Prototyping PCB (Protoboard).
- ESP-12E-Board (oder anderes Devboard mit ESP8266-Mikrocontroller).
- USB-Seriell-Konverter zum Programmieren.
- Mehrere verschiedene Werte von passiven Komponenten (Widerstände und Kondensatoren).
(Optional. Siehe Abschnitt "Blockdiagramm")
- 3.3V@500mA LDO-IC.
- 3.3V-5V Logikpegelwandlerplatine.
- 5V DC-Netzteil.
Schritt 1: Idee
Die Mondlampe wird von einer Li-ION 18650-Zelle gespeist und verfügt über 3 Betriebsmodi:
- aus;
- Handbuch;
- Auto.
Im manuellen Modus wird die Lampe mit einem Druckknopf gesteuert, jeder Druck ändert den LED-Lichtzustand (blau an, orange an, beide an, aus), die Lichtintensität ändert sich, während der Druckknopf gedrückt gehalten wird. Im Auto-Modus ändert sich der LED-Lichtstatus durch Antippen oder Schütteln der Lampe selbst.
Ich beschloss, ESP8266 hinzuzufügen, um als Webserver zu fungieren, der auf Anfragen lauscht und dementsprechend Tastendrücke simuliert. Ich wollte die ursprüngliche Lampenfunktion nicht unterbrechen, sondern nur zusätzliche Steuerfunktionen über WLAN hinzufügen, also habe ich ESP gewählt, um Tastendrücke zu simulieren, anstatt LEDs direkt zu steuern. Dies ermöglichte mir auch, minimal mit der Originalschaltung zu interagieren.
Als der Prototyp fertig war, trieb er ständig ~80mA von der Batterie im ausgeschalteten Zustand (~400mA bei voller Helligkeit). Der Standby-Strom ist hoch, da ESP8266 als Server arbeitet und immer mit WiFi verbunden ist und auf Anfragen lauscht. Die Batterie war nach eineinhalb Tagen nur im ausgeschalteten Zustand leer, daher entschied ich mich später, den USB-Ladeanschluss der Lampen zu verwenden, um die gesamte Elektronik über ein externes 5V-Netzteil mit Strom zu versorgen und die Batterie alle zusammen wegzulassen (dies ist jedoch optional).
Schritt 2: Blockdiagramm
Im Blockschaltbild können Sie sehen, welche Schaltungen hinzugefügt werden und wie bestehende Schaltungen modifiziert werden. In meinem Fall habe ich die Batterie vollständig entfernt und den IC-Eingang des Batterieladegeräts mit dem Ausgang kurzgeschlossen (auch dies ist optional). Transparente Blöcke im Diagramm weisen auf Komponenten hin, die umgangen werden (obwohl der Druckknopf immer noch wie ursprünglich vorgesehen funktioniert).
Laut Dokumentation toleriert ESP8266 nur 3,3V, es gibt jedoch viele Beispiele, in denen ESP8266 mit 5V völlig gut funktioniert, so dass Logikpegelwandler und 3,3V LDO weggelassen werden können, aber ich bin bei der Best Practice geblieben und habe diese Komponenten hinzugefügt.
Ich habe 3 ESP8266 I / O-Pins und ADC-Pins verwendet. Ein digitaler Ausgangspin dient zum Simulieren von Tastendrücken, zwei digitale Eingänge dienen zum Erkennen, welche Farb-LEDs leuchten (daraus können wir herausfinden, in welchem Zustand sich die MCU befindet und welcher Zustand als nächstes nach dem Drücken der Taste vorliegt). Der ADC-Pin misst die Eingangsspannung (über einen Spannungsteiler), so können wir den verbleibenden Batterieladestand überwachen.
Als externe Stromversorgung verwende ich altes Telefonladegerät 5V@1A (keine Schnellladegeräte verwenden).
Schritt 3: Programmierung
Kurz gesagt funktioniert das Programm so (weitere Informationen finden Sie im Code selbst):
ESP8266 verbindet sich mit Ihrem WLAN-Zugangspunkt, dessen Zugangsdaten Sie vor der Programmierung am Anfang des Codes eingeben müssen, er erhält die IP-Adresse vom DHCP-Server Ihres Routers, um die IP herauszufinden, die Sie später benötigen, können Sie die DHCP-Einstellungen der Router-Webschnittstelle überprüfen oder einstellen Debug-Flag im Code auf 1 und Sie werden sehen, welche IP ESP im seriellen Monitor erhalten hat (Sie sollten diese IP in Ihren Router-Einstellungen reservieren, damit ESP beim Booten immer dieselbe IP erhält).
Wenn die MCU initialisiert wird, führt sie immer dieselbe Routine aus:
- Überprüfen Sie, ob noch eine Verbindung zum AP besteht, wenn nicht, versuchen Sie, die Verbindung bis zum Erfolg erneut herzustellen.
-
Warten Sie, bis der Client eine HTTP-Anfrage stellt. Wenn die Anfrage erfolgt:
- Eingangsspannung prüfen.
- Prüfen Sie, in welchem Zustand sich LEDs befinden.
- HTTP-Anfrage mit bekannten LED-Zuständen abgleichen (blau an, orange an, beide an, aus).
- Simulieren Sie so viele Tastendrücke wie nötig, um den angeforderten Zustand zu erreichen.
Ich werde die Programmieranweisungen kurz beschreiben, wenn Sie zum ersten Mal ESP8266 MCU programmieren, suchen Sie nach detaillierteren Anweisungen.
Sie benötigen eine Arduino IDE und einen USB-Seriell-Schnittstellenkonverter (zum Beispiel FT232RL). Befolgen Sie diese Anweisungen, um die IDE vorzubereiten.
Folgen Sie dem Schaltplan, um das ESP-12E-Modul für die Programmierung anzuschließen. Einige Hinweise:
- Verwenden Sie ein externes 3.3V@500mA-Netzteil (in den meisten Fällen reicht eine USB-serielle Stromversorgung nicht aus);
- Überprüfen Sie, ob Ihr USB-Seriell-Wandler mit 3,3 V Logikpegel kompatibel ist;
- Überprüfen Sie, ob die Treiber für den USB-Seriell-Konverter erfolgreich installiert wurden (vom Windows-Gerätemanager). Sie können auch überprüfen, ob es von der IDE aus richtig funktioniert, nur kurze RX- und TX-Pins, dann von der IDE den COM-Port auswählen, den seriellen Monitor öffnen und etwas schreiben, wenn alles funktioniert Sie sollten Text, den Sie senden, in der Konsole sehen;
- aus irgendeinem Grund konnte ich ESP nur programmieren, wenn ich zuerst den USB-Seriell-Konverter an den PC anschloss und dann ESP von einer externen 3,3-V-Quelle anschaltete;
- Nach erfolgreicher Programmierung nicht vergessen, GPIO0 beim nächsten Booten hoch zu ziehen.
Schritt 4: Schaltplan und Löten
Folgen Sie dem Schema, um alle Komponenten an das Protoboard zu löten. Wie bereits erwähnt, sind einige Komponenten optional. Ich habe KA78M33 3.3V LDO IC und diese Logikpegelwandlerplatine von Sparkfun verwendet, alternativ können Sie den Wandler wie im Schaltplan gezeigt selbst herstellen (Sie können jeden N-Kanal-Mosfet anstelle von BSS138 verwenden). Falls Sie bei der Verwendung von Li-ION-Batterien bleiben, ist das +5V-Stromnetz der Pluspol der Batterie. Die ESP8266 ADC-Referenzspannung beträgt 1 V, meine gewählten Widerstandsteilerwerte ermöglichen die Messung einer Eingangsspannung von bis zu 5,7 V.
Es sollten 5 Verbindungen zur Original-Lampenplatine vorhanden sein: +5V (oder +Batterie), GND, Taster, PWM-Signale von der Lampen-MCU zur Steuerung von blauen und orangefarbenen LEDs. Wenn Sie die Lampe wie ich von einer 5-V-Quelle mit Strom versorgen, möchten Sie den IC-VCC-Pin des Batterieladegeräts mit dem OUTPUT-Pin kurzschließen.
Folgen Sie dem zweiten Bild für alle Lötpunkte, die Sie auf der Lampenplatine herstellen müssen.
ANMERKUNGEN:
- Wenn Sie sich entschieden haben, +5V mit dem Batterieladegerät-IC-Ausgang kurzzuschließen, entfernen Sie die Batterie vorher vollständig, da Sie +5V nicht direkt an eine Batterie anschließen möchten.
- Achten Sie darauf, an welchem Taster-Pin Sie den ESP-Ausgang verlöten, da 2 Pins eines Tasters mit Masse verbunden sind und Sie nicht kurzschließen möchten, wenn der ESP-Ausgang HIGH geht, besser mit Multimeter überprüfen.
Schritt 5: Android-App
Die Android-App wurde mit dem Erfinder der MIT-App erstellt. Um eine App und/oder ein Klonprojekt für sich selbst herunterzuladen, gehen Sie zu diesem Link (Sie benötigen ein Google-Konto, um darauf zuzugreifen).
Beim ersten Start müssen Sie die Einstellungen öffnen und Ihre ESP8266-IP-Adresse eingeben. Diese IP wird gespeichert, sodass Sie sie nach dem Neustart des Programms nicht erneut eingeben müssen.
App mit mehreren Android 9- und Android 7-Geräten getestet.
Empfohlen:
So verbinden Sie einen ESP32 mit der IoT-Cloud: 8 Schritte
So verbinden Sie einen ESP32 mit der IoT-Cloud: Diese Anleitung enthält eine Reihe von Artikeln zum Anschließen von Hardware wie Arduino und ESP8266 an die Cloud. Ich werde Ihnen erklären, wie Sie Ihren ESP32-Chip mit dem AskSensors IoT-Dienst mit der Cloud verbinden. Warum ESP32?Nach dem großen Erfolg
So fügen Sie IOT-Funktionen zu Ihren Projekten hinzu – wikiHow
So fügen Sie Ihren Projekten IOT-Funktionen hinzu: Nichts ist besser, als ein DIY-Projekt zu erstellen, das ein kommerzielles Produkt ersetzt, das Sie für nützlich halten. Nun, eigentlich gibt es etwas Besseres. Hinzufügen von IOT-Fähigkeiten zu Ihrem Projekt. Wenn es um Automatisierung geht, flippen Anfänger in der Regel aus
LTE CAT-M1 GSM IoT Sensors Network T - 15 Minuten.: 5 Schritte
LTE CAT-M1 GSM IoT Sensors Network… T - 15 Minuten.: Am 08. April 2018 gab R&D Software Solutions srl [itbrainpower.net] der Öffentlichkeit die Ankündigung des xyz-mIoT von itbrainpower.net Shield bekannt - das erste und kompakteste IoT-Board, das die Vielseitigkeit der ARM0-Mikrosteuerung kombiniert
So veröffentlichen Sie ESP32-Daten mit NTP-Zeitstempel in der IoT-Cloud – wikiHow
So veröffentlichen Sie ESP32-Daten mit NTP-Zeitstempel in der IoT-Cloud: In vielen Anwendungen müssen Benutzer ihre Daten zusammen mit dem lokalen Zeitstempel der in der Nutzlast zu sendenden Werte an die AskSensors-IoT-Cloud senden. Das Zeitstempelformat ist die Zeit der UNIX-Epoche: die Anzahl der Millisekunden, die seit Januar
Steuern von Haushaltsgeräten mit Node-MCU und Google Assistant - IOT - Blynk - IFTTT: 8 Schritte
Steuern von Haushaltsgeräten mit Node-MCU und Google Assistant | IOT | Blynk | IFTTT: Ein einfaches Projekt zur Steuerung von Geräten mit Google Assistant: Warnung: Der Umgang mit Netzstrom kann gefährlich sein. Mit äußerster Sorgfalt behandeln. Stellen Sie einen professionellen Elektriker ein, während Sie mit offenen Stromkreisen arbeiten. Ich übernehme keine Verantwortung für die da