Բովանդակություն:

NodeMCU MQTT Iot Project - Անջատիչ կոճակ. 4 քայլ
NodeMCU MQTT Iot Project - Անջատիչ կոճակ. 4 քայլ

Video: NodeMCU MQTT Iot Project - Անջատիչ կոճակ. 4 քայլ

Video: NodeMCU MQTT Iot Project - Անջատիչ կոճակ. 4 քայլ
Video: Ինչպես կատարել 4-ալիք ESP8266 ESP01 Wi-Fi ռելեներ | ESP01 Տնային ավտոմատացում | Remotexy | Խաբել 2024, Հուլիսի
Anonim
Image
Image

OSOYOO NodeMCU IOT Սկսնակ հավաքածու

Խնդրում ենք հետևել մեզ facebook- ում, գտնել մեր նոր թողարկված նյութը և կիսվել ձեր գաղափարով և Տեսանյութով, թե ինչպես ստեղծագործաբար օգտագործել մեր արտադրանքը: Դուք կարող եք հետ ստանալ կանխիկ կամ նվեր մեզանից: Facebook:

Youtube:

Այս դասում մենք անջատիչ կոճակը կկապենք NodeMCU- ին և անջատիչի կարգավիճակը կուղարկենք MQTT բրոքերին: Երբ կոճակը սեղմված է, NodeMCU- ն կհրապարակի MQTT բրոքերին «սեղմված» կոճակի կարգավիճակը, և MQTT հաճախորդը բաժանորդագրվելու է այս հաղորդագրություններին: Երբ կոճակը բաց է թողնվում, «չի սեղմված» կուղարկվի:

Քայլ 1: Նախապատրաստում

Միացման գրաֆիկ
Միացման գրաֆիկ

Սարքավորումներ:

NodeMCU տախտակ x 1

Անջատիչ կոճակ x 1

1K դիմադրություն x 1

Հացաթուղթ x 1

Jumper լարերը

Softwareրագրային ապահովում:

Arduino IDE (տարբերակ 1.6.4+)

ESP8266 տախտակի փաթեթ և սերիայի նավահանգստի վարորդ

MQTT հաճախորդ (MQTTBox այստեղ)

Arduino գրադարան ՝ PubSubClient

Քայլ 2: Միացման գրաֆիկ

Այս դասում մենք օգտագործում ենք D2 (GPIO4) անջատիչը վերահսկելու համար: Խնդրում ենք սարքավորումները կարգավորել ըստ կապի գրաֆիկի:

Նշում. 1k դիմադրիչն օգտագործվում է որպես ներքև քաշվող ռեզիստոր: Նման միացումում, երբ անջատիչը փակ է, NodeMCU մուտքը տրամաբանական բարձր արժեք ունի, բայց երբ անջատիչը բաց է, քաշվող դիմադրիչը քաշում է մուտքային լարումը գետնին ընկած (տրամաբանական զրոյական արժեք) ՝ կանխելով մուտքի անորոշ վիճակը:

Քայլ 3: Կոդ

Կոդ
Կոդ
Կոդ
Կոդ

Պատճենեք ստորև նշված կոդը Arduino IDE- ում.

/ * _ _ _ _ _ _ _ _ _ _ * / _ / / _) / _ / | | | | / _ / / _ / / _) _ / | / *| | _ | | _ | | _ | | | _ | | | _ | | | _ | ((_ | | _ | | | | | * / _/ (_/ / _/ / _ | / _/ / _ (_) _) _/ | _ | _ | _ | * (_/ * օգտագործել NodeMCU- ն անջատիչ կոճակի կարգավիճակը ուղարկեք MQTT հաճախորդին WiFi- ի միջոցով * Ուսուցման URL ՝ * CopyRight www.osoyoo.com */ #include #include

int BUTTON_PIN = D2; // կոճակը միացված է GPIO pin D1- ին

// Թարմացրեք դրանք ձեր ցանցին համապատասխան արժեքներով: const char*ssid = "********"; // տեղադրել ձեր wifi ssid- ն այստեղ const char*գաղտնաբառ = "********"; // տեղադրել ձեր wifi գաղտնաբառը այստեղ: const char* mqtt_server = "broker.mqttdashboard.com"; // const char* mqtt_server = "iot.eclipse.org";

WiFiClient espClient;

PubSubClient հաճախորդ (espClient); երկար lastMsg = 0; char msg [50];

void setup_wifi () {

ուշացում (100); // Մենք սկսում ենք միանալով WiFi ցանցի Serial.print («Միացում»); Serial.println (ssid); WiFi.begin (ssid, գաղտնաբառ); while (WiFi.status ()! = WL_CONNECTED) {ուշացում (500); Serial.print ("."); } randomSeed (micros ()); Serial.println (""); Serial.println («WiFi միացված է»); Serial.println ("IP հասցե` "); Serial.println (WiFi.localIP ()); }

անվավեր հետադարձ կապ (նշան* թեմա, բայթ* բեռնվածություն, անստորագիր ներքին երկարություն)

{} // դադարեցնել հետադարձ կապը

դատարկ միացում () {

// Շարունակեք, քանի դեռ չենք վերամիավորվել (! Client.connected ()) {Serial.print ("MQTT կապի փորձ …"); // Ստեղծեք պատահական հաճախորդի ID String clientId = "ESP8266Client-"; clientId += Լարային (պատահական (0xffff), HEX); // Փորձեք միանալ // եթե դուք MQTT բրոքերին ունեք clientID, օգտվողի անուն և գաղտնաբառ // խնդրում ենք փոխել հետևյալ տողը if (client.connect (clientId, userName, passWord)) if (client.connect (clientId.c_str ())) {Serial.println («կապված»); // MQTT բրոքերին միանալուց հետո բաժանորդագրվեք հրամանին, եթե որևէ հաճախորդ: բաժանորդագրվեք («OsoyooCommand»); } else {Serial.print ("ձախողվեց, rc ="); Serial.print (client.state ()); Serial.println («նորից փորձիր 5 վայրկյանում»); // Սպասեք 5 վայրկյան նախքան հետաձգման հետաձգումը (5000); }}} // վերջ միացնել ()

void setup () {

Serial.begin (115200); setup_wifi (); client.setServer (mqtt_server, 1883); client.setCallback (հետադարձ); pinMode (BUTTON_PIN, INPUT); }

դատարկ շրջան () {

if (! client.connected ()) {նորից միանալ (); } client.loop (); վաղուց = millis (); int կարգավիճակ; // ուղարկել հաղորդագրություն յուրաքանչյուր 2 վայրկյան եթե (այժմ - lastMsg> 2000) {lastMsg = այժմ; կարգավիճակ = digitalRead (BUTTON_PIN); Լարային msg = "Կոճակի կարգավիճակը."; if (կարգավիճակը == HIGH) {msg = msg+ "սեղմված"; char հաղորդագրություն [58]; msg.toCharArray (հաղորդագրություն, 58); Serial.println (հաղորդագրություն); // հրապարակել սենսորային տվյալները MQTT բրոքեր client.publish («OsoyooData», հաղորդագրություն); } else {msg = msg+ "Not Press"; char հաղորդագրություն [58]; msg.toCharArray (հաղորդագրություն, 58); Serial.println (հաղորդագրություն); // հրապարակել սենսորային տվյալները MQTT բրոքեր client.publish («OsoyooData», հաղորդագրություն); }}}

Խմբագրեք ծածկագիրը ՝ ձեր WiFi- ի և MQTT- ի կարգավորումները համապատասխանեցնելու հետևյալ գործողություններին.

const char* ssid = "your_hotspot_ssid"; const char* գաղտնաբառ = "your_hotspot_password";

2) MQTT սերվերի հասցեի կարգավորում. Mqtt_server արժեքը վերը սահմանելու համար կարող եք օգտագործել ձեր սեփական MQTT բրոքերի URL- ը կամ IP հասցեն: Կարող եք նաև օգտագործել որոշ հայտնի անվճար MQTT սերվեր ՝ նախագիծը փորձարկելու համար, օրինակ ՝ «broker.mqtt-dashboard.com», «iot.eclipse.org» և այլն:

const char* mqtt_server = «բրոքեր.mqtt-dashboard.com»;

3) MQTT Հաճախորդի կարգավորումներ Եթե ձեր MQTT բրոքերին պահանջվում է clientID, օգտվողի անուն և գաղտնաբառի նույնականացում, դուք պետք է փոխեք

եթե (client.connect (clientId.c_str ()))

Դեպի

if (client.connect (clientId, userName, passWord)) // տեղադրել ձեր clientId/userName/passWord այստեղ

Եթե ոչ, պարզապես պահեք դրանք որպես կանխադրված: Դրանից հետո ընտրեք համապատասխան տախտակի տեսակը և նավահանգստի տեսակը, ինչպես ստորև, այնուհետև ուրվագիծը վերբեռնեք NodeMCU- ին:

  • Տախտակ. «NodeMCU 0.9 (ESP-12 մոդուլ)»
  • Պրոցեսորի հաճախականությունը ՝ «80 ՄՀց» Ֆլեշի չափը ՝ »:
  • 4 Մ (3 Մ SPIFFS) »
  • Բեռնման արագություն ՝ 115200
  • Պորտ. Ընտրեք ձեր սեփական սերիական նավահանգիստը ձեր NodeMCU- ի համար

Քայլ 4: MQTT հաճախորդի կարգավորումներ

MQTT հաճախորդի կարգավորումներ
MQTT հաճախորդի կարգավորումներ
MQTT հաճախորդի կարգավորումներ
MQTT հաճախորդի կարգավորումներ

Եթե չգիտեք, թե ինչպես կարգավորել MQTT հաճախորդը, այցելեք մեր վերջին հոդվածը ՝

Թեմաների կարգավորումներ. Հրապարակման թեմա. OsoyooCommand

Բաժանորդագրվելու թեման ՝ OsoyooData

Վազքի արդյունք

Վերբեռնումն ավարտվելուց հետո, եթե wifi թեժ կետի անվան և գաղտնաբառի կարգավորումը կարգին է, և MQTT միջնորդը միացված է, բացեք Serial Monitor- ը, կտեսնեք հետևյալ արդյունքը. Շարունակեք սեղմել այս կոճակը, Serial Monitor- ը ամեն 2 վայրկյան դուրս կգա «Button status: Pressed»: Այս կոճակը բաց թողնելուց հետո Սերիական մոնիտորը յուրաքանչյուր 2 վայրկյանում կհեռացնի «Կոճակի կարգավիճակը. սեղմված չէ»:

Խորհուրդ ենք տալիս: