Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-23 12:52
OSOYOO NodeMCU IOT Starterkit
Bitte folgen Sie uns auf Facebook, finden Sie unseren neu veröffentlichten Artikel und teilen Sie Ihre Idee und Ihr Video zur kreativen Verwendung unserer Produkte. Du kannst Cashback oder Giveaway von uns bekommen!Facebook:
Youtube:
In dieser Lektion verbinden wir einen Switch-Button mit der NodeMCU und senden den Switch-Status an einen MQTT-Broker. Wenn die Schaltfläche gedrückt wird, veröffentlicht NodeMCU den Schaltflächenstatus „gedrückt“an den MQTT-Broker und der MQTT-Client abonniert diese Nachrichten. Beim Loslassen des Tasters wird „nicht gedrückt“gesendet.
Schritt 1: Vorbereitung
Hardware:
NodeMCU-Platine x 1
Schaltertaste x 1
1K Widerstand x 1
Steckbrett x 1
Überbrückungsdrähte
Software:
Arduino-IDE (Version 1.6.4+)
ESP8266 Board Package und der Serial Port Driver
MQTT-Client (MQTTBox hier)
Arduino-Bibliothek: PubSubClient
Schritt 2: Verbindungsdiagramm
In dieser Lektion verwenden wir D2 (GPIO4), um den Switch zu steuern. Bitte richten Sie die Hardware gemäß dem Verbindungsdiagramm ein.
Hinweis: Der 1k-Widerstand wird als Pull-Down-Widerstand verwendet. In einer solchen Schaltung ist der NodeMCU-Eingang bei geschlossenem Schalter auf einem logisch hohen Wert, aber wenn der Schalter geöffnet ist, zieht der Pull-Down-Widerstand die Eingangsspannung bis auf Masse (logischer Nullwert), wodurch ein undefinierter Zustand am Eingang verhindert wird.
Schritt 3: Code
Kopieren Sie den folgenden Code in die Arduino-IDE:
/* _ _ _ _ _ _ _ _ _ _ * / _ / /_)/ _ \| | | |/ _ / / _ / / _) _ \| / *| |_| |_ | |_| | |_| | |_| | |_| ((_| |_| | | | | * \_/(_/ \_/ \_ |\_/ \_(_)_)_/|_|_|_| * (_/ * Verwenden Sie die NodeMCU sendet Schalterschaltflächenstatus über WLAN an MQTT-Client * Tutorial-URL: * CopyRight www.osoyoo.com */ #include #include
int BUTTON_PIN = D2; // Taste ist mit GPIO-Pin D1 verbunden
// Aktualisieren Sie diese mit Werten, die für Ihr Netzwerk geeignet sind. const char* ssid = "********"; // Geben Sie hier Ihre WLAN-Ssid ein const char* password = "********"; // Geben Sie hier Ihr WLAN-Passwort ein. const char* mqtt_server = "broker.mqttdashboard.com"; //const char* mqtt_server = "iot.eclipse.org";
WiFiClient espClient;
PubSubClient-Client (espClient); lange letzteNachricht = 0; Zeichennachricht[50];
void setup_wifi() {
Verzögerung (100); // Wir beginnen mit der Verbindung zu einem WiFi-Netzwerk Serial.print ("Connecting to"); Serial.println (ssid); WiFi.begin(ssid, Passwort); Während (WiFi.status () != WL_CONNECTED) { Verzögerung (500); Serial.print("."); } RandomSeed (Mikros ()); Serial.println(""); Serial.println ("WiFi verbunden"); Serial.println("IP-Adresse:"); Serial.println (WiFi.localIP()); }
void callback(char* topic, byte* payload, unsigned int length)
{} //Rückruf beenden
Void erneut verbinden () {
// Schleife, bis wir wieder verbunden sind, während (!client.connected()) {Serial.print("MQTT-Verbindung wird versucht…"); // Eine zufällige Client-ID erstellen String clientId = "ESP8266Client-"; clientId += String (zufällig (0xffff), HEX); // Versuch eine Verbindung herzustellen //wenn Ihr MQTT-Broker clientID, username und password hat //Bitte ändern Sie die folgende Zeile in if (client.connect(clientId, userName, passWord)) if (client.connect(clientId.c_str())) {Serial.println ("verbunden"); //Sobald mit dem MQTT-Broker verbunden, den Befehl abonnieren, falls vorhanden client.subscribe("OsoyooCommand"); } sonst {Serial.print ("fehlgeschlagen, rc = "); Serial.print (client.state ()); Serial.println ("versuchen Sie es in 5 Sekunden erneut"); // 5 Sekunden warten, bevor es erneut versucht wird delay(5000); } } } //Wiederverbindung beenden ()
Leere Einrichtung () {
Serial.begin(115200); setup_wifi(); client.setServer(mqtt_server, 1883); client.setCallback (Rückruf); pinMode (BUTTON_PIN, INPUT); }
Leere Schleife () {
if (!client.connected()) { reconnect(); } client.loop(); jetzt lang = millis(); int-Status; // Nachricht alle 2 Sekunden senden if (now - lastMsg > 2000) { lastMsg = now; status = digitalRead (BUTTON_PIN); String msg="Schaltflächenstatus: "; if(status==HIGH) { msg= msg+ "Gedrückt"; char-Nachricht[58]; msg.toCharArray(Nachricht, 58); Serial.println (Nachricht); //Sensordaten an MQTT-Broker veröffentlichen client.publish("OsoyooData", Nachricht); } else { msg= msg+ "Nicht drücken"; char-Nachricht[58]; msg.toCharArray(Nachricht, 58); Serial.println (Nachricht); //Sensordaten an MQTT-Broker veröffentlichen client.publish("OsoyooData", Nachricht); } } }
Bearbeiten Sie den Code, um ihn an Ihre eigenen WLAN- und MQTT-Einstellungen anzupassen, wie folgt: 1) Hotspot-Konfiguration: Suchen Sie unter der Codezeile und geben Sie dort Ihre eigene ssid und Ihr Passwort ein.
const char* ssid = „your_hotspot_ssid“;const char* Passwort = „your_hotspot_password“;
2) Einstellung der MQTT-Serveradresse: Sie können Ihre eigene MQTT-Broker-URL oder IP-Adresse verwenden, um den Wert über mqtt_server festzulegen. Sie können auch einige berühmte kostenlose MQTT-Server verwenden, um das Projekt zu testen, z. B. „broker.mqtt-dashboard.com“, „iot.eclipse.org“usw.
const char* mqtt_server = „broker.mqtt-dashboard.com“;
3) MQTT-Client-Einstellungen Wenn Ihr MQTT-Broker Client-ID, Benutzername und Passwort-Authentifizierung erfordert, müssen Sie dies ändern
if (client.connect(clientId.c_str()))
Zu
if (client.connect(clientId, userName, passWord)) // Geben Sie Ihre clientId/userName/passWord hier ein
Wenn nicht, behalten Sie sie einfach als Standard bei. Wählen Sie danach den entsprechenden Board-Typ und Port-Typ wie unten beschrieben aus und laden Sie dann die Skizze auf die NodeMCU hoch.
- Platine: "NodeMCU 0.9 (ESP-12-Modul)"
- CPU-Frequenz: „80 MHz“Flash-Größe:“
- 4M (3M SPIFFS)”
- Upload-Geschwindigkeit: "115200"
- Port: Wählen Sie Ihren eigenen seriellen Port für Ihre NodeMCU
Schritt 4: MQTT-Client-Einstellungen
Wenn Sie nicht wissen, wie Sie den MQTT-Client konfigurieren, besuchen Sie bitte unseren letzten Artikel:
Themeneinstellungen:Zu veröffentlichendes Thema: OsoyooCommand
Thema zum Abonnieren: OsoyooData
Laufergebnis
Sobald der Upload abgeschlossen ist, wenn der WLAN-Hotspot-Name und die Passworteinstellung in Ordnung sind und der MQTT-Broker verbunden ist, öffnen Sie den Serial Monitor. Sie sehen das folgende Ergebnis: Halten Sie diese Taste gedrückt, der Serial Monitor gibt alle 2 Sekunden "Button status: Pressed" aus;Wenn Sie diese Taste loslassen, gibt der Serial Monitor alle 2 Sekunden „Button status: Not Pressed“aus.
Empfohlen:
MQTT Broker (Mosquitto) unter Windows installieren: 7 Schritte
Installation von MQTT Broker (Mosquitto) unter Windows: Was ist Broker? Der MQTT-Broker ist ein Datenverwaltungszentrum oder wird allgemein als "Server" bezeichnet. Der Mosquitto-Broker ist dafür verantwortlich, alle Nachrichten zu bearbeiten, Nachrichten zu filtern, zu entscheiden, wer daran interessiert ist und dann die
So richten Sie Mosquitto MQTT auf AWS ein: 8 Schritte
So richten Sie Mosquitto MQTT auf AWS ein: Hallo! Ich werde für meine IOT-Projekte einen privaten MQTT-Broker mit Passwort auf meinem AWS-Konto (amazon web service) einrichten. Um dies zu tun, habe ich ein kostenloses Konto bei AWS erstellt, das für 1 Jahr gültig ist, indem ich hierher gehe:
NodeMCU - MQTT-Basisbeispiel: 4 Schritte
NodeMCU - MQTT Basic Example: Diese Lektion zeigt die grundlegende Verwendung des MQTT-Protokolls auf dem NodeMCU-Board. Wir verwenden hier die MQTTBox als MQTT-Client und verwenden die NodeMCU, um die folgenden Operationen durchzuführen: outTopic“alle zwei Sekunden.Subscr
MQTT-Integration: 4 Schritte
MQTT-Integration: Unser Facebook-Post: https://www.facebook.com/IoTGuruLive/videos/359772791497906
Tutorial ESP8266 und Node-RED MQTT GPIO (Mosquitto) # 1: 5 Schritte
Tutorial ESP8266 und Node-RED MQTT GPIO (Mosquitto) #1: Zur Einbindung des Moduls ESP8266 mit der Node-red IoT-Plattform wurde das MQTT-Protokoll verwendet, es gibt Client-Bibliotheken für esp8266 als MQTT in diesem Fall habe ich mich für die Bibliothek pubsubclient entschieden. In diesem Beispiel wird Node Red empfangen, der Daten empfängt von