Indholdsfortegnelse:
Video: NodeMCU MQTT Iot Project - Switch -knap: 4 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
OSOYOO NodeMCU IOT Starter kit
Følg os venligst på facebook, find vores nye udgivne vare og del din idé og video om, hvordan du kreativt kan bruge vores produkter. Du kan få penge tilbage eller giveaway fra os! Facebook:
Youtube:
I denne lektion forbinder vi en switch -knap til NodeMCU og sender switchstatus til en MQTT -mægler. Når der trykkes på knappen, vil NodeMCU offentliggøre knapstatus "trykket" til MQTT -mægler, og MQTT -klienten vil abonnere på disse meddelelser. Når trykknappen slippes, sendes "ikke trykket".
Trin 1: Forberedelse
Hardware:
NodeMCU -kort x 1
Skift knap x 1
1K modstand x 1
Brødbræt x 1
Jumper ledninger
Software:
Arduino IDE (version 1.6.4+)
ESP8266 Board Package og den serielle portdriver
MQTT Client (MQTTBox her)
Arduino bibliotek: PubSubClient
Trin 2: Forbindelsesgraf
I denne lektion bruger vi D2 (GPIO4) til at styre kontakten, opsæt venligst hardwaren i henhold til forbindelsesgrafen.
Bemærk: 1k-modstanden bruges som en pull down-modstand, I et sådant kredsløb, når kontakten er lukket, har NodeMCU-indgangen en logisk høj værdi, men når kontakten er åben, trækker pull-down-modstanden indgangsspændingen ned til jorden (logisk nulværdi), hvilket forhindrer en udefineret tilstand ved indgangen.
Trin 3: Kode
Kopiér nedenstående kode til Arduino IDE:
/ * _ _ _ _ _ _ _ _ _ _ * / _ / / _) / _ / | | | | / _ / / _ / / _) _ / | / *| | _ | | _ | | _ | | | _ | | | _ | | | _ | ((_ | | _ | | | | | * / _/ (_/ / _/ / _ | / _/ / _ (_) _) _/ | _ | _ | _ | * (_/ * Brug NodeMCU sender switch -knapstatus til MQTT -klient via WiFi * Tutorial URL: * CopyRight www.osoyoo.com */ #include #include
int BUTTON_PIN = D2; // knappen er forbundet til GPIO pin D1
// Opdater disse med værdier, der passer til dit netværk. const char*ssid = "********"; // læg din wifi ssid her const char*password = "********"; // sæt din wifi -adgangskode her. const char* mqtt_server = "mægler.mqttdashboard.com"; // const char* mqtt_server = "iot.eclipse.org";
WiFiClient espClient;
PubSubClient -klient (espClient); lang sidsteMsg = 0; char msg [50];
ugid setup_wifi () {
forsinkelse (100); // Vi starter med at oprette forbindelse til et WiFi -netværk Serial.print ("Opretter forbindelse til"); Serial.println (ssid); WiFi.begin (ssid, adgangskode); mens (WiFi.status ()! = WL_CONNECTED) {forsinkelse (500); Serial.print ("."); } randomSeed (micros ()); Serial.println (""); Serial.println ("WiFi tilsluttet"); Serial.println ("IP -adresse:"); Serial.println (WiFi.localIP ()); }
ugyldig tilbagekald (tegn* emne, byte* nyttelast, usigneret int -længde)
{} // afslut opkald
ugyldig forbindelse igen () {
// Sløjfe, indtil vi genopretter forbindelse, mens (! Client.connected ()) {Serial.print ("Forsøger MQTT -forbindelse …"); // Opret et tilfældigt klient-ID String clientId = "ESP8266Client-"; clientId += String (tilfældig (0xffff), HEX); // Forsøg at oprette forbindelse // hvis din MQTT -mægler har clientID, brugernavn og adgangskode // skift venligst følgende linje til if (client.connect (clientId, userName, passWord)) if (client.connect (clientId.c_str ()))) {Serial.println ("forbundet"); // når den er tilsluttet MQTT -mægler, kan du abonnere på kommando, hvis nogen client.subscribe ("OsoyooCommand"); } ellers {Serial.print ("mislykkedes, rc ="); Serial.print (client.state ()); Serial.println ("prøv igen om 5 sekunder"); // Vent 5 sekunder, før forsinkelsen forsøger igen (5000); }}} // afslut forbindelse igen ()
ugyldig opsætning () {
Serial.begin (115200); setup_wifi (); client.setServer (mqtt_server, 1883); client.setCallback (tilbagekald); pinMode (BUTTON_PIN, INPUT); }
void loop () {
hvis (! client.connected ()) {genforbind (); } client.loop (); længe nu = millis (); int status; // send besked hvert 2. sekund, hvis (nu - lastMsg> 2000) {lastMsg = nu; status = digitalRead (BUTTON_PIN); String msg = "Knapstatus:"; if (status == HIGH) {msg = msg+ "Presset"; forkælelsesmeddelelse [58]; msg.toCharArray (meddelelse, 58); Serial.println (besked); // offentliggøre sensordata til MQTT -mægler client.publish ("OsoyooData", meddelelse); } ellers {msg = msg+ "Ikke tryk"; forkælelsesmeddelelse [58]; msg.toCharArray (meddelelse, 58); Serial.println (besked); // offentliggøre sensordata til MQTT -mægler client.publish ("OsoyooData", meddelelse); }}}
Rediger koden, så den passer til dine egne WiFi- og MQTT -indstillinger som følgende operationer: 1) Hotspot -konfiguration: Find nedenfor kodelinjen, sæt din egen ssid og adgangskode der.
const char* ssid = "your_hotspot_ssid"; const char* password = "your_hotspot_password";
2) MQTT -serveradresseindstilling: Du kan bruge din egen MQTT -mægler -URL eller IP -adresse til at angive over mqtt_server -værdi. Du kan også bruge en berømt gratis MQTT-server til at teste projektet, f.eks. “Broker.mqtt-dashboard.com”, “iot.eclipse.org” osv.
const char* mqtt_server = “mægler.mqtt-dashboard.com”;
3) MQTT -klientindstillinger Hvis din MQTT -mægler kræver clientID, brugernavn og adgangskodegodkendelse, skal du ændre
hvis (client.connect (clientId.c_str ()))
Til
hvis (client.connect (clientId, userName, passWord)) // læg dit clientId/userName/passWord her
Hvis ikke, skal du bare beholde dem som standard. Efter at have gjort det, skal du vælge den tilsvarende korttype og porttype som nedenfor, og derefter uploade skitsen til NodeMCU.
- Board:”NodeMCU 0.9 (ESP-12 Modul)”
- CPU -frekvens:”80MHz” Flashstørrelse:”
- 4M (3M SPIFFS)”
- Uploadhastighed:”115200 ″
- Port: Vælg din egen serielle port til din NodeMCU
Trin 4: MQTT -klientindstillinger
Hvis du ikke ved, hvordan du konfigurerer MQTT-klient, kan du besøge vores sidste artikel:
Emner Indstillinger: Emne at udgive: OsoyooCommand
Emne for at abonnere: OsoyooData
Kørende resultat
Når overførslen er udført, hvis wifi -hotspots navn og adgangskodeindstilling er ok, og MQTT -mægler er tilsluttet, skal du åbne Serial Monitor, du vil se følgende resultat: Fortsæt med at trykke på denne knap, Serial Monitor udsender "Knapstatus: Trykkes" hvert 2. sekund; når du slipper denne knap, udsender den serielle skærm "Knapstatus: Ikke trykket" hvert 2. sekund.
Anbefalede:
IOT Home Automation DIY Project #1: 7 trin
IOT Home Automation DIY Project # 1: # INTRODUKTION Hjemmeautomatisering er automatiseringsprocessen for husholdningsapparater som vekselstrøm, ventilator, køleskab, lys og listen fortsætter, så de kan styres med din telefon, computer eller endda eksternt. Dette projekt omhandler esp2866
IoT med NodeMCU og MQTT: 4 trin
IoT Med NodeMCU og MQTT: [En] Engang til en industriel applikation havde jeg brug for at lave et printkort med 8 tørre kontakter, lidt lege med MQTT og besluttede at tilpasse det til arbejde ved hjælp af NodeMCU esp-f v4. For at gøre det til en enkel måde at lave billig hjemmeautomatisering. [Pt-Br] Cert
Totoro Project - IoT & MQTT & ESP01: 7 trin (med billeder)
Totoro Project - IoT & MQTT & ESP01: Totoro Project er et dejligt IoT -projekt, du kan kopiere i mange andre forskellige former. Ved hjælp af ESP01 -kortet kan du med MQTT -protokollen kommunikere status for knappen til MQTT -mægleren (i min case AdafruitIO). En nyttig vejledning til MQTT og Ad
ESP8266 NODEMCU BLYNK IOT Tutorial - Esp8266 IOT Brug af Blunk og Arduino IDE - Kontrol af lysdioder over internettet: 6 trin
ESP8266 NODEMCU BLYNK IOT Tutorial | Esp8266 IOT Brug af Blunk og Arduino IDE | Kontrol af lysdioder over internettet: Hej Guys i denne instruks vil vi lære at bruge IOT med vores ESP8266 eller Nodemcu. Vi vil bruge blynk app til det. Så vi vil bruge vores esp8266/nodemcu til at styre lysdioderne over internettet. Så Blynk app vil blive forbundet til vores esp8266 eller Nodemcu
ESPHA - IOT PROJECT: 4 trin (med billeder)
ESPHA - IOT PROJECT: I dette projektnavn er "ESPHA" ved hjælp af en Arduino, esp8266 og et websted (skabt af mig) bliver få elektroniske sensordata og gadgets styret og manipuleret. Her har jeg vist " RGB LED " under hvilken du styrer LED -tilstand (1 fo