Turinys:

„NodeMCU MQTT Iot Project“- jungiklio mygtukas: 4 žingsniai
„NodeMCU MQTT Iot Project“- jungiklio mygtukas: 4 žingsniai

Video: „NodeMCU MQTT Iot Project“- jungiklio mygtukas: 4 žingsniai

Video: „NodeMCU MQTT Iot Project“- jungiklio mygtukas: 4 žingsniai
Video: Dust Sensor DSM501A, Technical Specs, and Pinouts, YouTube Shorts, Full Video link is in the Des 2024, Liepa
Anonim
Image
Image

OSOYOO „NodeMCU IOT“pradinis rinkinys

Sekite mus „Facebook“, suraskite mūsų naują išleistą elementą ir pasidalykite savo idėja bei vaizdo įrašu, kaip kūrybingai naudoti mūsų produktus. Iš mūsų galite atgauti grynuosius pinigus ar dovanas! Facebook:

Youtube:

Šioje pamokoje mes prijungsime jungiklio mygtuką prie „NodeMCU“ir išsiųsime jungiklio būseną MQTT tarpininkui. Paspaudus mygtuką, „NodeMCU“paskelbs mygtuko būseną „paspaustas“MQTT brokeriui, o MQTT klientas prenumeruos šiuos pranešimus. Kai mygtukas bus atleistas, bus išsiųstas pranešimas „nespaustas“.

1 žingsnis: Paruošimas

Ryšio grafikas
Ryšio grafikas

Techninė įranga:

„NodeMCU“plokštė x 1

Perjungimo mygtukas x 1

1K rezistorius x 1

Duonos lenta x 1

Jumperio laidai

Programinė įranga:

„Arduino IDE“(1.6.4 ir naujesnė versija)

ESP8266 plokštės paketas ir nuoseklaus prievado tvarkyklė

„MQTT“klientas („MQTTBox“čia)

„Arduino“biblioteka: „PubSubClient“

2 veiksmas: ryšio schema

Šioje pamokoje jungikliui valdyti naudojame D2 (GPIO4), nustatykite aparatūrą pagal ryšio grafiką.

Pastaba: 1k rezistorius naudojamas kaip ištraukiamas rezistorius. Tokioje grandinėje, kai jungiklis uždarytas, „NodeMCU“įvestis yra logiškai didelė, tačiau kai jungiklis yra atidarytas, ištraukiamas rezistorius traukia įėjimo įtampą žemyn (loginė nulinė vertė), užkertant kelią neapibrėžtai būsenai įvestyje.

3 žingsnis: kodas

Kodas
Kodas
Kodas
Kodas

Nukopijuokite žemiau esantį kodą į „Arduino IDE“:

/ * _ _ _ _ _ _ _ _ _ _ * / _ / / _) / _ / | | | | / _ / / _ / / _) _ / | / *| | _ | | _ | | _ | | | _ | | | _ | | | _ | ((_ | | _ | | | | | * / _/ (_/ / _/ / _ | / _/ / _ (_) _) _/ | _ | _ | _ | * (_/ * Naudokite „NodeMCU“siunčia jungiklio mygtuko būseną MQTT klientui per „WiFi“* Mokymo URL: * „CopyRight“www.osoyoo.com */ #include #include

int BUTTON_PIN = D2; // mygtukas prijungtas prie GPIO kaiščio D1

// Atnaujinkite jas naudodami tinklui tinkamas vertes. const char*ssid = "********"; // padėkite čia savo "wifi ssid" const char*password = "********"; // įdėkite čia savo "wifi" slaptažodį. const char* mqtt_server = "broker.mqttdashboard.com"; // const char* mqtt_server = "iot.eclipse.org";

„WiFiClient espClient“;

„PubSubClient“klientas (espClient); ilgas paskutinisMsg = 0; žinučių žinutė [50];

void setup_wifi () {

vėlavimas (100); // Pradedame nuo prisijungimo prie WiFi tinklo Serial.print ("Connecting to"); Serial.println (ssid); WiFi.begin (ssid, slaptažodis); while (WiFi.status ()! = WL_CONNECTED) {delay (500); Serijinis atspaudas ("."); } randomSeed (micros ()); Serial.println (""); Serial.println („WiFi prijungtas“); Serial.println ("IP adresas:"); Serial.println (WiFi.localIP ()); }

negaliojantis atgalinis skambutis (char* tema, baitas* naudingoji apkrova, nepasirašytas int ilgis)

{} // baigti atgalinį skambutį

void reconnect () {

// Ciklas, kol vėl prisijungsime, kol (! Client.connected ()) {Serial.print ("Bandomas MQTT ryšys …"); // Sukurkite atsitiktinį kliento ID String clientId = "ESP8266Client-"; clientId += Styga (atsitiktinė (0xffff), HEX); // bandymas prisijungti // jei MQTT brokeris turi kliento ID, vartotojo vardą ir slaptažodį // pakeiskite šią eilutę į if (client.connect (clientId, userName, passWord)) if (client.connect (clientId.c_str ())) {Serial.println ("prijungtas"); // prisijungę prie MQTT brokerio, užsisakykite komandą, jei yra klientas.subscribe ("OsoyooCommand"); } else {Serial.print ("nepavyko, rc ="); Serial.print (client.state ()); Serial.println ("bandykite dar kartą po 5 sekundžių"); // Palaukite 5 sekundes prieš vėl bandydami uždelsti (5000); }}} // pabaigos prisijungimas ()

void setup () {

Serial.begin (115200); „setup_wifi“(); client.setServer (mqtt_server, 1883); client.setCallback (atšaukimas); pinMode (BUTTON_PIN, INPUT); }

void loop () {

if (! client.connected ()) {reconnect (); } client.loop (); ilgas dabar = milis (); int statusas; // siųsti pranešimą kas 2 sekundes, jei (dabar - lastMsg> 2000) {lastMsg = now; status = digitalRead (BUTTON_PIN); String msg = "Mygtuko būsena:"; if (status == HIGH) {msg = msg+ "Paspaustas"; char pranešimas [58]; msg.toCharArray (pranešimas, 58); Serial.println (pranešimas); // paskelbti jutiklių duomenis MQTT brokeriui client.publish ("OsoyooData", pranešimas); } else {msg = msg+ "Nespausti"; char pranešimas [58]; msg.toCharArray (pranešimas, 58); Serial.println (pranešimas); // paskelbti jutiklių duomenis MQTT brokeriui client.publish ("OsoyooData", pranešimas); }}}

Redaguokite kodą, kad jis atitiktų jūsų „WiFi“ir MQTT nustatymus, kaip nurodyta toliau: 1) „Hotspot“konfigūracija: Raskite žemiau esančią kodo eilutę, įdėkite savo SSID ir slaptažodį.

const char* ssid = „your_hotspot_ssid“; const char* password = „your_hotspot_password“;

2) MQTT serverio adreso nustatymas: Galite naudoti savo MQTT tarpininko URL arba IP adresą, kad nustatytumėte didesnę nei mqtt_server reikšmę. Taip pat galite naudoti žinomą nemokamą MQTT serverį projektui išbandyti, pvz., „Broker.mqtt-dashboard.com“, „iot.eclipse.org“ir kt.

const char* mqtt_server = „broker.mqtt-dashboard.com“;

3) MQTT kliento nustatymai Jei jūsų MQTT brokeriui reikalingas kliento ID, vartotojo vardo ir slaptažodžio autentifikavimas, turite pakeisti

if (client.connect (clientId.c_str ()))

Į

if (client.connect (clientId, userName, passWord)) // padėkite čia savo clientId/userName/passWord

Jei ne, tiesiog palikite juos kaip numatytuosius. Po to pasirinkite atitinkamą plokštės tipą ir prievado tipą, kaip nurodyta toliau, tada įkelkite eskizą į „NodeMCU“.

  • Lenta: „NodeMCU 0.9 (ESP-12 modulis)“
  • CPU dažnis: „80MHz“Blykstės dydis:
  • 4 mln. (3 mln. SPIFFS) “
  • Įkėlimo greitis: "115200"
  • Uostas: pasirinkite savo „NodeMCU“nuoseklųjį prievadą

4 žingsnis: MQTT kliento nustatymai

MQTT kliento nustatymai
MQTT kliento nustatymai
MQTT kliento nustatymai
MQTT kliento nustatymai

Jei nežinote, kaip sukonfigūruoti MQTT klientą, apsilankykite mūsų paskutiniame straipsnyje:

Temų nustatymai: paskelbiama tema: „OsoyooCommand“

Prenumeruojama tema: OsoyooData

Bėgimo rezultatas

Kai įkėlimas bus baigtas, jei „wifi“viešosios interneto prieigos taško pavadinimo ir slaptažodžio nustatymai yra tinkami ir prijungtas MQTT brokeris, atidarykite serijinį monitorių, pamatysite tokį rezultatą: Laikykite nuspaudę šį mygtuką, serijinis monitorius kas 2 sekundes išves „Mygtuko būsena: paspaustas“; Atleidus šį mygtuką, serijinis monitorius kas 2 sekundes išves „Mygtuko būsena: nepaspaustas“.

Rekomenduojamas: