Բովանդակություն:
Video: NodeMCU MQTT Iot Project - Անջատիչ կոճակ. 4 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
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 հաճախորդը, այցելեք մեր վերջին հոդվածը ՝
Թեմաների կարգավորումներ. Հրապարակման թեմա. OsoyooCommand
Բաժանորդագրվելու թեման ՝ OsoyooData
Վազքի արդյունք
Վերբեռնումն ավարտվելուց հետո, եթե wifi թեժ կետի անվան և գաղտնաբառի կարգավորումը կարգին է, և MQTT միջնորդը միացված է, բացեք Serial Monitor- ը, կտեսնեք հետևյալ արդյունքը. Շարունակեք սեղմել այս կոճակը, Serial Monitor- ը ամեն 2 վայրկյան դուրս կգա «Button status: Pressed»: Այս կոճակը բաց թողնելուց հետո Սերիական մոնիտորը յուրաքանչյուր 2 վայրկյանում կհեռացնի «Կոճակի կարգավիճակը. սեղմված չէ»:
Խորհուրդ ենք տալիս:
Microsoft Teams- ի համր կոճակ. 4 քայլ
Microsoft Teams- ի ձայնի անջատման կոճակ Քանի որ 2020 թ. Այս նախագիծը օգտագործում է Adafruit Circuit Playground Express (CPX) և մեծ կոճակ ՝ Microsoft Teams- ի համար տաք ստեղնով համր կոճակ ստեղծելու համար
Ապակե IoT Touch կոճակ `10 քայլ
Glass IoT Touch Button. Ես օրերս ITO ապակու կտոր էի դրել խանութի մոտ և մտածում էի այն լավ օգտագործելու մասին: ITO, Indium Tin Oxide, ապակին սովորաբար հանդիպում են հեղուկ բյուրեղյա ցուցափեղկերում, արևային բջիջներում, ինքնաթիռի խցիկի պատուհաններում և այլն: Տարբերությունը բ
IoT կոճակ (D1 Mini) ՝ 6 քայլ
IoT Push Button (D1 Mini). Ես պատրաստել եմ IoT կոճակ (Մտածեք Amazon Dash- ի մասին), որը կարող եք օգտագործել ձեր հեռախոսին ծանուցումները մղելու համար (օրինակ ՝ պարտեզում հանգստանալիս խմիչքի լիցքավորում պահանջելու համար): Դուք հեշտությամբ կարող եք նորից կարգավորել բազմաթիվ այլ սարքերի հետ փոխգործակցությունը
Արտակարգ իրավիճակների կոճակ NodeMCU- ով ՝ 7 քայլ
Արտակարգ իրավիճակների կոճակ ՝ NodeMCU- ով. Արտակարգ իրավիճակների կոճակը օգնում է ձեզ օգնություն ստանալ, եթե կա որևէ արտակարգ իրավիճակ, պարզապես սեղմեք կոճակը, և այն ինքնաբերաբար կտեղադրի facebook կամ twitter հաղորդագրություն, որը դուք տեղադրել եք ծածկագրում, եթե ունեք բժշկական պայման
IoT կոճակ, որը վերահսկում է ձեր ծրագիրը. 6 քայլ
IoT կոճակը, որը վերահսկում է ձեր ծրագիրը. Միկրոկոնտրոլերների մեջ ինձ ամենաշատը դուր է գալիս դրանք որպես մուտքային սարք օգտագործելու ունակությունը, օրինակ ՝ Arduino Micro- ն կարող է օգտագործվել որպես HID (մարդկային միջերեսի սարք), ինչը նշանակում է որոշ կոդավորում և ինչպես կարող եք ստեղծել ձեր սեփական ստեղնաշարը