Obsah:

Projekt NodeMCU MQTT Iot - prepínač: 4 kroky
Projekt NodeMCU MQTT Iot - prepínač: 4 kroky

Video: Projekt NodeMCU MQTT Iot - prepínač: 4 kroky

Video: Projekt NodeMCU MQTT Iot - prepínač: 4 kroky
Video: home automation using nodemcu 8266 - IoT 2024, Júl
Anonim
Image
Image

Štartovacia sada OSOYOO NodeMCU IOT

Sledujte nás na Facebooku, nájdite náš nový uvoľnený produkt a podeľte sa o svoj nápad a video o tom, ako kreatívne používať naše produkty. Môžete od nás získať peniaze späť alebo darček! Facebook:

Youtube:

V tejto lekcii pripojíme prepínacie tlačidlo k NodeMCU a pošleme stav prepínača brokerovi MQTT. Po stlačení tlačidla NodeMCU zverejní stav tlačidla „stlačené“maklérovi MQTT a klient MQTT sa prihlási na odber týchto správ. Po uvoľnení tlačidla sa odošle „nestlačené“.

Krok 1: Príprava

Graf pripojenia
Graf pripojenia

Hardvér:

Doska NodeMCU x 1

Prepínač x 1

1K odpor x 1

Breadboard x 1

Prepojovacie vodiče

Softvér:

Arduino IDE (verzia 1.6.4+)

Balíček dosky ESP8266 a ovládač sériového portu

Klient MQTT (MQTTBox tu)

Knižnica Arduino: PubSubClient

Krok 2: Graf pripojenia

V tejto lekcii používame na ovládanie prepínača D2 (GPIO4), hardvér nastavte podľa grafu pripojenia.

Poznámka: 1k odpor sa používa ako rezistor nadol, V takom obvode, keď je spínač zatvorený, je vstup NodeMCU na logicky vysokej hodnote, ale keď je spínač otvorený, sťahovací odpor ťahá vstupné napätie až na zem (logická nulová hodnota), čím sa zabráni nedefinovanému stavu na vstupe.

Krok 3: Kód

Kód
Kód
Kód
Kód

Skopírujte nasledujúci kód do Arduino IDE:

/ * _ _ _ _ _ _ _ _ _ _ * / _ / / _) / _ / | | | | / _ / / _ / / _) _ / | / *| | _ | | _ | | _ | | | _ | | | _ | | | _ | (((_ | | _ | | | | | * / _/ (_/ / _/ / _ | / _/ / _ (_) _) _/ | _ | _ | _ | * (_/ * Použite Stav prepínača NodeMCU odoslať klientovi MQTT cez WiFi * URL tutoriálu: * CopyRight www.osoyoo.com */ #include #include

int BUTTON_PIN = D2; // Tlačidlo // je pripojené k pinu GPIO D1

// Aktualizujte ich hodnotami vhodnými pre vašu sieť. const char*ssid = "********"; // dajte sem svoju wifi ssid const char*heslo = "********"; // sem zadajte svoje wifi heslo. const char* mqtt_server = "broker.mqttdashboard.com"; // const char* mqtt_server = "iot.eclipse.org";

WiFiClient espClient;

Klient PubSubClient (espClient); dlhá posledná správa = 0; char msg [50];

neplatné setup_wifi () {

oneskorenie (100); // Začneme pripojením k WiFi sieti Serial.print („Pripojenie k“); Serial.println (ssid); WiFi.begin (ssid, heslo); while (WiFi.status ()! = WL_CONNECTED) {oneskorenie (500); Serial.print ("."); } randomSeed (micros ()); Serial.println (""); Serial.println ("WiFi pripojené"); Serial.println ("IP adresa:"); Serial.println (WiFi.localIP ()); }

neplatné spätné volanie (znak* téma, bajt* užitočné zaťaženie, dĺžka bez znamienka)

{} // ukončenie spätného volania

zrušiť opätovné pripojenie () {

// Slučka, kým sa znova nepripojíme, kým (! Client.connected ()) {Serial.print ("Pokus o pripojenie MQTT …"); // Vytvorenie reťazca náhodného ID klienta clientId = "ESP8266Client-"; clientId += String (náhodný (0xffff), HEX); // Pokus o pripojenie // ak váš broker MQTT má ID klienta, používateľské meno a heslo // zmeňte nasledujúci riadok na if (client.connect (clientId, userName, passWord)) if (client.connect (clientId.c_str ())) {Serial.println ("pripojený"); // po pripojení k maklérovi MQTT zadajte príkaz subscribe, ak nejaký klient.subscribe ("OsoyooCommand"); } else {Serial.print ("zlyhalo, rc ="); Serial.print (client.state ()); Serial.println („skúste to znova o 5 sekúnd“); // Pred oneskorením opakovania počkajte 5 sekúnd (5 000); }}} // koniec znova pripojiť ()

neplatné nastavenie () {

Serial.begin (115200); setup_wifi (); client.setServer (mqtt_server, 1883); client.setCallback (spätné volanie); pinMode (BUTTON_PIN, INPUT); }

prázdna slučka () {

if (! client.connected ()) {reconnect (); } client.loop (); teraz dlho = millis (); int stav; // odosielanie správ každé 2 sekundy, ak (teraz - lastMsg> 2000) {lastMsg = now; status = digitalRead (BUTTON_PIN); String msg = "Stav tlačidla:"; if (status == HIGH) {msg = msg+ "Pressed"; char správa [58]; msg.toCharArray (správa, 58); Serial.println (správa); // zverejnenie údajov senzora klientovi brokera MQTT.publish ("OsoyooData", správa); } else {msg = msg+ "Not Press"; char správa [58]; msg.toCharArray (správa, 58); Serial.println (správa); // zverejnenie údajov senzora klientovi brokera MQTT.publish ("OsoyooData", správa); }}}

Upravte kód tak, aby zodpovedal vašim vlastným nastaveniam WiFi a MQTT, nasledovne: 1) Konfigurácia hotspotu: V nižšie uvedenom riadku kódu zadajte svoj vlastný ssid a heslo.

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

2) Nastavenie adresy servera MQTT: Na nastavenie hodnoty mqtt_server môžete použiť svoju vlastnú URL alebo IP adresu makléra MQTT. Na testovanie projektu môžete použiť aj slávny bezplatný server MQTT, ako napríklad „broker.mqtt-dashboard.com“, „iot.eclipse.org“atď.

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

3) Nastavenia klienta MQTT Ak váš broker MQTT vyžaduje autentifikáciu klienta, používateľského mena a hesla, musíte zmeniť

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

Komu

if (client.connect (clientId, userName, passWord)) // sem vložte svoje clientId/userName/passWord

Ak nie, ponechajte ich ako predvolené. Potom urobte zodpovedajúci typ dosky a typ portu, ako je uvedené nižšie, a potom nahrajte skicu na NodeMCU.

  • Doska: "NodeMCU 0,9 (modul ESP-12)"
  • Frekvencia CPU: „80 MHz“Veľkosť blesku: „
  • 4 milióny (3 milióny rázov) “
  • Rýchlosť nahrávania: "115200"
  • Port: Vyberte si vlastný sériový port pre svoj NodeMCU

Krok 4: Nastavenia klienta MQTT

Nastavenia klienta MQTT
Nastavenia klienta MQTT
Nastavenia klienta MQTT
Nastavenia klienta MQTT

Ak neviete, ako nakonfigurovať klienta MQTT, navštívte náš posledný článok:

Nastavenia tém: Téma na zverejnenie: OsoyooCommand

Téma na predplatné: OsoyooData

Výsledok behu

Akonáhle je nahrávanie dokončené, ak je názov a heslo hotspotu wifi v poriadku a je pripojený broker MQTT, otvorte sériový monitor, zobrazí sa nasledujúci výsledok: Podržte toto tlačidlo stlačené, sériový monitor zobrazí „Stav tlačidla: stlačené“každé 2 sekundy; akonáhle uvoľníte toto tlačidlo, sériový monitor bude vydávať „Stav tlačidla: Nestlačené“každé 2 sekundy.

Odporúča: