Verbinden Sie Ihren ESP8266 mit einem beliebigen verfügbaren WLAN-Netzwerk

María Hernández
· Lesezeit: 6 Minuten
Per E-Mail versenden

Der ESP8266 ist ein Mikrocontroller von Espressif Systems . Als WLAN-Modul IoT äußerst nützlich .

Unabhängig von IoT Anwendung gibt es zwei Möglichkeiten, Ihren ESP8266 mit der Cloud zu verbinden. Erstens können Sie Ihre WLAN-Zugangsdaten in die Firmware des ESP8266 , um die erforderliche Verbindung herzustellen und Daten zu senden. Die zweite Möglichkeit – die wir im Folgenden Schritt für Schritt erläutern – besteht darin, einen eigenen Zugangspunkt in die Platine zu integrieren und eine universelle Firmware zu erstellen, die per Knopfdruck eine Verbindung zu jedem verfügbaren Netzwerk herstellt.

Anforderungen

Schritt 1. Hardware-Einrichtung

Hinweis : Das Ubidots Team hat einige Änderungen an der ConfigManager-Bibliothek vorgenommen, um eine Routine zu implementieren, die den AP-Modus durch einfaches Drücken eines externen Reset- Knopfes startet.

Je nach gewähltem ESP8266-Modul müssen Sie möglicherweise den Reset-Pin mithilfe dieser Bibliotheksversion . Die Standardeinstellungen für den Taster sind Pin 5 ; bei Verwendung eines NodeMCU müssen Sie den Taster an D1 .

Schritt 2. Richten Sie die Arduino IDE mit Ihrem Gerät ein

Bevor Sie ein ESP8266- Gerät verwenden, müssen Sie die Platine in der Arduino IDE installieren. Befolgen Sie die unten stehenden Schritte, um die Platine zu kompilieren.

Falls Sie dies noch nicht getan haben, laden Sie zunächst die Arduino IDE .

  1. Öffnen Sie die Arduino IDE. Wählen Sie „Datei“ → „Einstellungen“ und geben Sie die URL unter dem „Zusätzliche Boardverwalter-URLs“ . Sie können mehrere URLs hinzufügen und diese durch Kommas trennen.
http://arduino.esp8266.com/stable/package_esp8266com_index.json

Hinweis : Mac-Benutzer Zum Hochladen der Firmware auf Ihren NodeMCU benötigen Sie außerdem den folgenden Treiber

2. Öffnen Sie den Boardverwalter über Werkzeuge → Board → Boardverwalter und installieren Sie die ESP8266-Plattform. Um das richtige Gerät zu finden, suchen Sie in der Suchleiste ESP8266

3. Wählen Sie das verwendete ESP8266-Modul NodeMCU 1.0 (ESP-12-Modul) . Um das Board auszuwählen, gehen Sie zu „Werkzeuge“ > „Board“ > „Board auswählen“ .

Um mit dem NodeMCU zu kommunizieren, müssen Sie außerdem den Port „com“ auswählen. Gehen Sie zu „Tools“ → „Port“ und wählen Sie den passenden Port für Ihr Gerät aus.

optimieren wir die Upload-Geschwindigkeit Gehen Sie zu Tools -> Upload-Geschwindigkeit -> 115200.

4. Gehen Sie zu GitHub und laden Sie die ConfigManager-Bibliothek . Klicken Sie auf die grüne Schaltfläche mit der Bezeichnung „ Klonen oder herunterladen “ und wählen Sie „ ZIP herunterladen “.

5. Gehen Sie nun zurück zur Arduino IDE und klicken Sie auf Sketch -> Bibliothek einbinden -> .ZIP-Bibliothek hinzufügen .

6. Wählen Sie die .ZIP-Datei von ConfigManager und klicken Sie dann auf „ Akzeptieren “ oder „ Auswählen “.

Bei erfolgreicher Ausführung wird in der Arduino IDE folgende Meldung angezeigt: Bibliothek zu Ihrer Bibliothek hinzugefügt. Überprüfen Sie das Menü „Bibliothek einbinden“.

7. Gehen Sie anschließend zu Sketch/Programme → Bibliothek einbinden → Bibliotheksverwaltung und installieren Sie die PubSubClient- Bibliothek. Um die richtige Bibliothek zu finden, suchen Sie in der Suchleiste „PubSubClient“

8. Starten Sie nun die Arduino IDE vor dem Hochladen neu.

9. Sobald Sie die ESP8266-Plattform und die erforderlichen Bibliotheken installiert haben, installieren Sie den Arduino ESP8266 Dateisystem-Uploader Installationsschritten des Repositorys und kehren Sie anschließend zu dieser Anleitung zurück.

10. Nachdem Ihr Uploader installiert ist, erstellen Sie eine neue Skizze zum Bearbeiten und speichern Sie diese. Unser Beispiel heißt AP_ESP8266 :

11. Gehen Sie als Nächstes in das Sketch-Verzeichnis und erstellen Sie einen neuen Ordner namens data .

12. Sobald das Verzeichnis erstellt ist, laden Sie diese HTML-Datei und fügen Sie sie dem Verzeichnis hinzu. Diese Datei wird im Dateisystem verwendet.

13. Als Nächstes muss die Datei in das Flash-Dateisystem des ESP8266 hochgeladen werden. Stellen Sie zunächst sicher, dass Sie einen Board-Port ausgewählt und den seriellen Monitor geschlossen .

14. Wählen Sie Tools > ESP8266 Sketch Data Upload , um mit dem Hochladen von Dateien in das Flash-Dateisystem des ESP8266 zu beginnen.

Nach Abschluss des Vorgangs sollte in der Statusleiste der IDE die Meldung „SPIFFS-Image hochgeladen“ .

15. Fügen Sie nun den unten stehenden Code in die Arduino IDE . Weisen Sie ihm anschließend die gewünschten Geräte- und Variablenbezeichnungen sowie Ihren eindeutigen Ubidots Ubidots nicht kennen , erfahren Sie hier, wie Sie ihn erhalten.

Kopieren Sie den unten stehenden Code und fügen Sie ihn in die Arduino IDE ein, einschließlich der Parameter für Ihr spezifisches Gerät und Ihre Variablen.

#enthalten<ESP8266WiFi.h> #enthalten<ConfigManager.h> #enthalten<PubSubClient.h> /******* Konstanten definieren **********/ namespace{ const char * AP_NAME = "Ubidots Access Point"; // Weist den Namen Ihres Access Points zu const char * MQTT_SERVER = "ubidots"; const char * TOKEN = "...."; // Weist Ihr Ubidots -Token zu const char * DEVICE_LABEL = "my-device"; // Weist die Gerätebezeichnung zu const char * VARIABLE_LABEL = "my-variable"; // Weist die Variablenbezeichnung zu int SENSOR = A0; } char topic[150]; char payload[50]; String clientMac = ""; unsigned char mac[6]; struct Config { char name[20]; bool enabled; int8 hour; } config; /******* Globale Instanz initialisieren **********/ WiFiClient espClient; PubSubClient client(espClient); ConfigManager configManager; /***************Hilfsfunktionen ********************/ void callback(char* topic, byte* payload, unsigned int length){ } void reconnect() { while (!client.connected()){ Serial.print("Versuche MQTT-Verbindung..."); // Verbindungsversuch if (client.connect(clientMac.c_str(), TOKEN, NULL)) { Serial.println("Verbunden"); break; } else { configManager.reset(); Serial.print("Fehlgeschlagen, rc=""); Serial.print(client.state()); Serial.println("Versuche es in 3 Sekunden erneut"); for(uint8_t Blink=0; Blink<=3; Blink++){ digitalWrite(LED, LOW); delay(500); digitalWrite(LED, HIGH); delay(500); } } } } String macToStr(const uint8_t* mac) { String result; for (int i = 0; i < 6; ++i) { result += String(mac[i], 16); if (i < 5)result += ':'; } return result; } /********* Hauptfunktionen *************/ void setup() { Serial.begin(115200); /* PINs als Ein-/Ausgang deklarieren */ pinMode(SENSOR, INPUT); pinMode(PIN_RESET, INPUT); pinMode(LED, OUTPUT); /* WLAN-MAC-Adresse als MQTT-Clientnamen zuweisen */ WiFi.macAddress(mac); clientMac += macToStr(mac); /* Zugriffspunkt konfigurieren */ configManager.setAPName(AP_NAME); configManager.addParameter("name", config.name, 20); configManager.addParameter("enabled", &config.enabled); configManager.addParameter("hour", &config.hour); configManager.begin(config); /* Serverdetails festlegen */ client.setServer(MQTT_SERVER, 1883); client.setCallback(callback); /* Topic-Anfrage erstellen */ sprintf(topic, "%s%s", "/v1.6/devices/", DEVICE_LABEL); } void loop() { configManager.reset(); configManager.loop(); /* MQTT-Client-Neuverbindung */ if (!client.connected()) { reconnect(); } /* Sensorwert lesen */ int value = analogRead(SENSOR); /* Payload-Anfrage erstellen */ sprintf(payload, "{\"%s\": %d}", VARIABLE_LABEL, value); /* Sensorwert an Ubidots senden */ client.publish(topic, payload); client.loop(); delay(5000); }

16. Nachdem Sie Ihre Parameter eingegeben haben, überprüfen Sie den Code in der Arduino IDE. Klicken Sie dazu auf das Häkchensymbol in der oberen linken Ecke Ihrer Arduino IDE.

Laden Sie anschließend Ihren Code auf Ihren NodeMCU . Wählen Sie dazu das nach rechts neben dem Häkchen.

Sobald der Code hochgeladen ist, wird in der Arduino IDE die folgende Meldung angezeigt:

Ihr ESP8266-Modul ist nun bereit, durch einfaches Drücken des Knopfes eine Verbindung mit jedem verfügbaren Netzwerk herzustellen!

17. Um den Verbindungsstatus zu überprüfen, öffnen Sie den seriellen Monitor Starting Access Point “ im seriellen Monitor angezeigt wird

18. Nachdem der Zugangspunkt erstellt wurde, können Sie eine Verbindung von Ihrem Telefon aus herstellen. Wählen Sie unter WLAN-Netzwerke Ubidots Zugangspunkt .

Sobald die Verbindung hergestellt ist, werden Sie auf die unten stehende Seite weitergeleitet. Geben Sie Ihre WLAN-Parameter ein und klicken Sie auf Speichern .

19. Um zu überprüfen, ob die Verbindung hergestellt wurde, öffnen Sie den seriellen Monitor:

Kehren Sie nun zu Ihren Ubidots -Konten zurück, um die von Ihrem neuen Gerät empfangenen Daten zu visualisieren:

Ergebnisse

Mit dieser Anleitung richten Sie einen Access Point ein, der Ihr Gerät mit jedem verfügbaren Netzwerk verbindet, ohne dass Sie die Anmeldeinformationen in der Firmware speichern müssen – so entsteht eine universelle Firmware, die überall eingesetzt werden kann!

Jetzt sind Sie an der Reihe, es auszuprobieren. noch heute kostenlos bei Ubidots