Satura rādītājs:

NodeMCU MQTT Iot Project - slēdža poga: 4 soļi
NodeMCU MQTT Iot Project - slēdža poga: 4 soļi

Video: NodeMCU MQTT Iot Project - slēdža poga: 4 soļi

Video: NodeMCU MQTT Iot Project - slēdža poga: 4 soļi
Video: what is adafruit io ?? how to use this???in tamil 2024, Jūlijs
Anonim
Image
Image

OSOYOO NodeMCU IOT sākuma komplekts

Lūdzu, sekojiet mums Facebook, atrodiet mūsu jauno izlaisto vienumu un dalieties savā idejā un video par to, kā radoši izmantot mūsu produktus. Pie mums jūs varat saņemt naudu atpakaļ vai dotācijas! Facebook:

Youtube:

Šajā nodarbībā mēs savienosim slēdža pogu ar NodeMCU un nosūtīsim slēdža statusu MQTT brokerim. Nospiežot pogu, NodeMCU publicēs pogas statusu “nospiests” MQTT brokerim, un MQTT klients abonēs šos ziņojumus. Atlaižot spiedpogu, tiks nosūtīts paziņojums “nav nospiests”.

1. solis: Sagatavošana

Savienojuma grafiks
Savienojuma grafiks

Aparatūra:

NodeMCU plate x 1

Slēdža poga x 1

1K rezistors x 1

Maizes dēlis x 1

Jumper vadi

Programmatūra:

Arduino IDE (versija 1.6.4+)

ESP8266 plates pakotne un seriālā porta draiveris

MQTT klients (MQTTBox šeit)

Arduino bibliotēka: PubSubClient

2. darbība: savienojuma diagramma

Šajā nodarbībā mēs izmantojam D2 (GPIO4), lai kontrolētu slēdzi, lūdzu, iestatiet aparatūru atbilstoši savienojuma diagrammai.

Piezīme: 1k rezistors izmanto kā nolaižamu rezistoru līdz zemei (loģiskā nulles vērtība), novēršot nenoteiktu stāvokli pie ievades.

3. darbība: kods

Kods
Kods
Kods
Kods

Kopējiet zemāk esošo kodu uz Arduino IDE:

/ * _ _ _ _ _ _ _ _ _ _ * / _ / / _) / _ / | | | | / _ / / _ / / _) _ / | / *| | _ | | _ | | _ | | | _ | | | _ | | | _ | ((_ | | _ | | | | | * / _/ (_/ / _/ / _ | / _/ / _ (_) _) _/ | _ | _ | _ | * (_/ * Izmantojiet NodeMCU nosūta slēdža pogas statusu MQTT klientam, izmantojot WiFi * Apmācības URL: * CopyRight www.osoyoo.com */ #include #include

int BUTTON_PIN = D2; // poga ir pievienota GPIO tapai D1

// Atjauniniet tos ar jūsu tīklam piemērotām vērtībām. const char*ssid = "********"; // ielieciet šeit savu wifi ssid const char*password = "********"; // ievietojiet šeit savu wifi paroli. const char* mqtt_server = "brokeris.mqttdashboard.com"; // const char* mqtt_server = "iot.eclipse.org";

WiFiClient espClient;

PubSubClient klients (espClient); ilgi lastMsg = 0; char msg [50];

void setup_wifi () {

kavēšanās (100); // Sākam ar savienojumu ar WiFi tīklu Serial.print ("Connecting to"); Serial.println (ssid); WiFi.begin (ssid, parole); while (WiFi.status ()! = WL_CONNECTED) {kavēšanās (500); Sērijas nospiedums ("."); } randomSeed (micros ()); Serial.println (""); Serial.println ("savienots WiFi"); Serial.println ("IP adrese:"); Serial.println (WiFi.localIP ()); }

anulēts atzvanīšana (char* tēma, baits* lietderīgā slodze, neparakstīts int garums)

{} // pārtraukt atzvanīšanu

void reconnect () {

// Loop, līdz mēs atkal izveidosim savienojumu, kamēr (! Client.connected ()) {Serial.print ("Mēģina izveidot MQTT savienojumu…"); // Izveidot izlases klienta ID String clientId = "ESP8266Client-"; clientId += String (nejaušs (0xffff), HEX); // mēģiniet izveidot savienojumu // ja jums MQTT brokerim ir klienta ID, lietotājvārds un parole // lūdzu, nomainiet nākamo rindu uz if (client.connect (clientId, userName, passWord)), ja (client.connect (clientId.c_str ())) {Serial.println ("savienots"); // kad esat izveidojis savienojumu ar MQTT brokeri, abonējiet komandu, ja ir kāds client.subscribe ("OsoyooCommand"); } cits {Serial.print ("neizdevās, rc ="); Sērijas nospiedums (client.state ()); Serial.println ("mēģiniet vēlreiz pēc 5 sekundēm"); // Pagaidiet 5 sekundes pirms atkārtotas kavēšanās (5000); }}} // beigt atkārtotu savienojumu ()

void setup () {

Serial.begin (115200); setup_wifi (); client.setServer (mqtt_server, 1883); client.setCallback (atzvanīšana); pinMode (BUTTON_PIN, INPUT); }

void loop () {

ja (! client.connected ()) {reconnect (); } client.loop (); ilgi tagad = milis (); int statuss; // sūtīt ziņojumu ik pēc 2 sekundēm, ja (tagad - lastMsg> 2000) {lastMsg = now; statuss = digitalRead (BUTTON_PIN); String msg = "Pogas statuss:"; if (statuss == AUGSTS) {msg = msg+ "Nospiests"; char ziņa [58]; msg.toCharArray (ziņojums, 58); Serial.println (ziņojums); // publicēt sensoru datus MQTT broker client.publish ("OsoyooData", ziņojums); } else {msg = msg+ "Not Press"; char ziņa [58]; msg.toCharArray (ziņojums, 58); Serial.println (ziņojums); // publicēt sensoru datus MQTT brokeris client.publish ("OsoyooData", ziņojums); }}}

Rediģējiet kodu, lai tas atbilstu jūsu WiFi un MQTT iestatījumiem, veicot šādas darbības: 1) Hotspot konfigurācija: atrodiet zemāk koda rindiņu, ievietojiet tur savu ssid un paroli.

const char* ssid = “your_hotspot_ssid”; const char* parole = “your_hotspot_password”;

2) MQTT servera adreses iestatīšana: lai iestatītu virs mqtt_server vērtības, varat izmantot savu MQTT brokera URL vai IP adresi. Jūs varat arī izmantot kādu slavenu bezmaksas MQTT serveri, lai pārbaudītu projektu, piemēram, “broker.mqtt-dashboard.com”, “iot.eclipse.org” utt.

const char* mqtt_server = “brokeris.mqtt-dashboard.com”;

3) MQTT klienta iestatījumi Ja jūsu MQTT brokerim ir nepieciešama klienta ID, lietotājvārda un paroles autentifikācija, jums tas ir jāmaina

ja (client.connect (clientId.c_str ()))

Uz

if (client.connect (clientId, userName, passWord)) // ielieciet šeit savu clientId/userName/passWord

Ja nē, vienkārši saglabājiet tos kā noklusējuma. Pēc tam izvēlieties atbilstošo plates tipu un porta veidu, kā norādīts zemāk, un pēc tam augšupielādējiet skici NodeMCU.

  • Tāfele: “NodeMCU 0.9 (ESP-12 modulis)”
  • CPU frekvence: “80MHz” Zibspuldzes izmērs:
  • 4 miljoni (3 miljoni SPIFFS)”
  • Augšupielādes ātrums: "115200"
  • Ports: izvēlieties savu NodeMCU sērijas portu

4. darbība: MQTT klienta iestatījumi

MQTT klienta iestatījumi
MQTT klienta iestatījumi
MQTT klienta iestatījumi
MQTT klienta iestatījumi

Ja jūs nezināt, kā konfigurēt MQTT klientu, lūdzu, apmeklējiet mūsu pēdējo rakstu:

Tēmu iestatījumi: publicējamā tēma: OsoyooCommand

Abonējamā tēma: OsoyooData

Skriešanas rezultāts

Kad augšupielāde ir pabeigta, ja wifi tīklāja nosaukuma un paroles iestatījums ir pareizs un MQTT brokeris ir pievienots, atveriet sērijas monitoru, un jūs redzēsit šādu rezultātu: Turiet nospiestu šo pogu, sērijas monitors izvadīs “Pogas statuss: Nospiests” ik pēc 2 sekundēm; tiklīdz atlaidiet šo pogu, sērijas monitors ik pēc 2 sekundēm parādīs paziņojumu “Pogas statuss: nav nospiests”.

Ieteicams: