INHOUDSOPGAWE:
Video: NodeMCU MQTT Iot -projek - skakelknoppie: 4 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
OSOYOO NodeMCU IOT Starter kit
Volg ons op facebook, vind ons nuwe item wat vrygestel is en deel u idee en video oor hoe ons ons produkte kreatief kan gebruik. U kan kontant terugbetaal of weggee van ons! Facebook:
Youtube:
In hierdie les sal ons 'n skakelknoppie aan die NodeMCU koppel en die skakelaarstatus na 'n MQTT -makelaar stuur. As die knoppie ingedruk word, sal NodeMCU die knoppiestatus "ingedruk" aan die MQTT -makelaar publiseer, en die MQTT -kliënt sal op hierdie boodskappe inteken. As die drukknop losgelaat word, word 'nie ingedruk' gestuur nie.
Stap 1: Voorbereiding
Hardeware:
NodeMCU -bord x 1
Skakelknoppie x 1
1K weerstand x 1
Broodbord x 1
Springdrade
Sagteware:
Arduino IDE (weergawe 1.6.4+)
ESP8266 Board Package en die Serial Port Driver
MQTT -kliënt (MQTTBox hier)
Arduino -biblioteek: PubSubClient
Stap 2: Verbindingsgrafiek
In hierdie les gebruik ons D2 (GPIO4) om die skakelaar te beheer; stel die hardeware op volgens die verbindingsgrafiek.
Let wel: die 1k-weerstand word gebruik as 'n aftrekweerstand; in so 'n stroombaan, as die skakelaar gesluit is, het die NodeMCU-ingang 'n logiese hoë waarde, maar as die skakelaar oop is, trek die aftrekweerstand die insetspanning tot op die grond (logiese nulwaarde), wat 'n ongedefinieerde toestand by die invoer voorkom.
Stap 3: Kodeer
Kopieer die onderstaande kode na Arduino IDE:
/ * _ _ _ _ _ _ _ _ _ _ * / _ / / _) / _ / | | | | / _ / / _ / / _) _ / | / *| | _ | | _ | | _ | | | _ | | | _ | | | _ | ((_ | | _ | | | | | * / _/ (_/ / _/ / _ | / _/ / _ (_) _) _/ | _ | _ | _ | * (_/ * Gebruik die NodeMCU stuur die skakelaarstatus na die MQTT -kliënt via WiFi * Tutoriaal -URL: * CopyRight www.osoyoo.com */ #include #include
int BUTTON_PIN = D2; // -knoppie is gekoppel aan GPIO -pen D1
// Werk hierdie op met waardes wat geskik is vir u netwerk. const char*ssid = "********"; // sit jou wifi ssid hier const char*password = "********"; // sit jou wifi wagwoord hier. const char* mqtt_server = "makelaar.mqttdashboard.com"; // const char* mqtt_server = "iot.eclipse.org";
WiFiClient espClient;
PubSubClient -kliënt (espClient); lang laasteMsg = 0; char msg [50];
ongeldig setup_wifi () {
vertraging (100); // Ons begin deur aan te sluit op 'n WiFi -netwerk Serial.print ("Koppel aan"); Serial.println (ssid); WiFi.begin (ssid, wagwoord); terwyl (WiFi.status ()! = WL_CONNECTED) {vertraging (500); Serial.print ("."); } randomSeed (mikros ()); Serial.println (""); Serial.println ("WiFi gekoppel"); Serial.println ("IP -adres:"); Serial.println (WiFi.localIP ()); }
nietige terugbel (char* onderwerp, byte* laai, ongetekende int lengte)
{} // beëindig terugbel
leemte herkoppel () {
// Herhaal totdat ons weer verbind is terwyl (! Client.connected ()) {Serial.print ("Poging tot MQTT -verbinding …"); // Skep 'n ewekansige kliënt-ID String clientId = "ESP8266Client-"; clientId += String (ewekansig (0xffff), HEX); // Probeer om aan te sluit // as u MQTT -makelaar clientID, gebruikersnaam en wagwoord het // verander die volgende reël na if (client.connect (clientId, userName, passWord)) if (client.connect (clientId.c_str ()))) {Serial.println ("verbind"); // sodra u gekoppel is aan die MQTT -makelaar, teken die opdrag in, indien enige client.subscribe ("OsoyooCommand"); } anders {Serial.print ("misluk, rc ="); Serial.print (client.state ()); Serial.println ("probeer weer oor 5 sekondes"); // Wag 5 sekondes voordat die vertraging weer probeer (5000); }}}} // sluit weer aan ()
ongeldige opstelling () {
Serial.begin (115200); setup_wifi (); client.setServer (mqtt_server, 1883); client.setCallback (terugbel); pinMode (BUTTON_PIN, INPUT); }
leemte -lus () {
as (! client.connected ()) {heraansluit (); } client.loop (); nou lank = millis (); int status; // stuur elke 2 sekondes 'n boodskap as (nou - lastMsg> 2000) {lastMsg = nou; status = digitalRead (BUTTON_PIN); String msg = "Knoppie status:"; if (status == HOOG) {msg = msg+ "Gedruk"; char boodskap [58]; msg.toCharArray (boodskap, 58); Serial.println (boodskap); // publiseer sensordata aan die MQTT -makelaar client.publish ("OsoyooData", boodskap); } anders {msg = msg+ "Nie druk nie"; char boodskap [58]; msg.toCharArray (boodskap, 58); Serial.println (boodskap); // publiseer sensordata aan die MQTT -makelaar client.publish ("OsoyooData", boodskap); }}}
Wysig die kode om by u eie WiFi- en MQTT -instellings te pas soos volg: 1) Hotspot -konfigrasie: vind onder die kodelyn, sit u eie ssid en wagwoord daar.
const char* ssid = "your_hotspot_ssid"; const char* password = "your_hotspot_password";
2) MQTT -bedieneradresinstelling: u kan u eie MQTT -makelaar -URL of IP -adres gebruik om die bogenoemde mqtt_server -waarde in te stel. U kan ook 'n bekende MQTT-bediener gebruik om die projek te toets, soos 'broker.mqtt-dashboard.com', 'iot.eclipse.org', ens.
const char* mqtt_server = “makelaar.mqtt-dashboard.com”;
3) MQTT -kliëntinstellings As u MQTT -makelaar clientID, gebruikersnaam en wagwoordverifikasie benodig, moet u verander
as (client.connect (clientId.c_str ()))
Aan
as (client.connect (clientId, userName, passWord)) // plaas u clientId/userName/passWord hier
As dit nie die geval is nie, hou dit dan as standaard; kies dan die ooreenstemmende bordtipe en poorttipe soos hieronder, en laai dan die skets op na die NodeMCU.
- Raad: "NodeMCU 0.9 (ESP-12-module)"
- CPU -frekwensie: "80MHz" flitsgrootte:"
- 4M (3M SPIFFS)”
- Oplaaisnelheid:”115200 ″
- Poort: kies u eie seriële poort vir u NodeMCU
Stap 4: MQTT -kliëntinstellings
As u nie weet hoe om die MQTT-kliënt op te stel nie, besoek ons laaste artikel:
Onderwerpe -instellings: Onderwerp om te publiseer: OsoyooCommand
Onderwerp om in te teken: OsoyooData
Lopende resultaat
Sodra die oplaai voltooi is, as die naam van die wifi -hotspot en die wagwoord goed is en die MQTT -makelaar gekoppel is, maak die Serial Monitor oop, en u sal die volgende resultaat sien: Hou aan om op hierdie knoppie te druk, die seriële monitor sal elke 2 sekondes 'Knoppie status: ingedruk' lewer; sodra u hierdie knoppie loslaat, lewer die seriële monitor elke 2 sekondes 'Knoppie status: nie ingedruk' nie.
Aanbeveel:
NodeMCU ESP8266 - MQTT - Ubidots: 5 stappe
NodeMCU ESP8266 - MQTT - Ubidots: MQTT is 'n standaard OASIS -boodskapprotokol vir die Internet of Things (IoT). Dit is ontwerp as 'n uiters ligte boodskapvervoer vir publiseer/intekening wat ideaal is vir die aansluiting van afgeleë toestelle met 'n klein kodevoetafdruk en 'n minimale netwerk
IoT Met NodeMCU en MQTT: 4 stappe
IoT Met NodeMCU en MQTT: [En] Ek moes vir 'n industriële toepassing 'n PCB met 8 droë kontakte maak, 'n bietjie met MQTT speel en besluit om dit aan te pas by die werk met behulp van NodeMCU esp-f v4. Om dit 'n eenvoudige manier te maak om goedkoop tuisautomatisering te maak. [Pt-Br] Cert
Tuisautomatisering met NodeMCU, HomeAssistant en MQTT: 6 stappe
Tuisautomatisering met NodeMCU, HomeAssistant en MQTT: wil u u huis in 'n slim huis begin omskep, en dit ook goedkoop doen? NodeMCU en HomeAssistant is hier om hieroor te help. Ek beveel u aan om hierdie video te kyk, miskien is dit makliker vir u om te volg. Andersins, volg die stappe hieronder
HUISAUTOMASIE GEBASEER OP LOCAL MQTT SERVER MET RASPBERRY PI EN NODEMCU BOARD: 6 stappe
HUISAUTOMASIE GEBASEER OP LOCAL MQTT SERVER MET RASPBERRY PI EN NODEMCU BOARD: Tot dusver het ek verskeie tutoriaalvideo's gemaak oor die beheer van toestelle via die internet. En daarvoor het ek altyd die Adafruit MQTT -bediener verkies, want dit was maklik om te gebruik en ook gebruikersvriendelik. Maar alles was gebaseer op die internet. Dit beteken dat ons
ESP8266 NODEMCU BLYNK IOT Tutoriaal - Esp8266 IOT Gebruik Blunk en Arduino IDE - Beheer van LED's oor die internet: 6 stappe
ESP8266 NODEMCU BLYNK IOT Tutoriaal | Esp8266 IOT Gebruik Blunk en Arduino IDE | LED's op die internet beheer: Hallo ouens, in hierdie instruksies leer ons hoe om IOT te gebruik met ons ESP8266 of Nodemcu. Ons sal die blynk -app daarvoor gebruik, dus ons sal ons esp8266/nodemcu gebruik om die LED's via die internet te beheer