Mundarija:

NodeMCU MQTT Iot loyihasi - almashtirish tugmasi: 4 qadam
NodeMCU MQTT Iot loyihasi - almashtirish tugmasi: 4 qadam

Video: NodeMCU MQTT Iot loyihasi - almashtirish tugmasi: 4 qadam

Video: NodeMCU MQTT Iot loyihasi - almashtirish tugmasi: 4 qadam
Video: Народный MQTT Broker на ESP8266. uMQTTBroker. 2024, Iyul
Anonim
Image
Image

OSOYOO NodeMCU IOT boshlang'ich to'plami

Iltimos, bizni facebook -da kuzatib boring, yangi chiqarilgan mahsulotimizni toping va o'z mahsulotingizni ijodiy ishlatish bo'yicha o'z fikringiz va videongiz bilan o'rtoqlashing. Siz bizdan naqd pulni qaytarishingiz yoki sovg'a olishingiz mumkin! Facebook:

Youtube:

Ushbu darsda biz NodeMCU -ga o'tish tugmachasini ulaymiz va MQTT brokeriga kalit holatini yuboramiz. Tugma bosilganda, NodeMCU MQTT brokeriga "bosilgan" tugma holatini e'lon qiladi va MQTT mijozi bu xabarlarga obuna bo'ladi. Qachonki tugma qo'yib yuborilsa, "bosilmagan" xabar yuboriladi.

1 -qadam: Tayyorgarlik

Ulanish grafigi
Ulanish grafigi

Uskuna:

NodeMCU taxtasi x 1

Kalit tugmasi x 1

1K qarshilik x 1

Non paneli x 1

Jumper simlari

Dasturiy ta'minot:

Arduino IDE (1.6.4+ versiyasi)

ESP8266 karta to'plami va ketma -ket port drayveri

MQTT mijozi (MQTTBox bu erda)

Arduino kutubxonasi: PubSubClient

2 -qadam: Ulanish grafigi

Ushbu darsda biz kalitni boshqarish uchun D2 (GPIO4) dan foydalanamiz, iltimos, uskunani ulanish grafigiga muvofiq sozlang.

Eslatma: 1k rezistor pastga tushirish qarshiligi sifatida ishlatiladi, bunday sxemada, kalit yopilganda, NodeMCU usuli mantiqiy yuqori qiymatda bo'ladi, lekin kalit ochiq bo'lsa, pastga tushadigan qarshilik kirish voltajini tortadi erga (mantiqiy nol qiymati), kirishda aniqlanmagan holatni oldini oladi.

3 -qadam: kod

Kod
Kod
Kod
Kod

Quyidagi kodni Arduino IDE -ga nusxalash:

/ * _ _ _ _ _ _ _ _ _ _ * / _ / / _) / _ / | | | | / _ / / _ / / _) _ / | / *| | _ | | _ | | _ | | | _ | | | _ | | | _ | ((_ | | _ | | | | | * / _/ (_/ / _/ / _ | / _/ / _ (_) _) _/ | _ | _ | _ | * (_/ * NodeMCU Wi -Fi orqali MQTT mijoziga kalit tugmasi holatini yuboradi * Qo'llanma URL manzili: * CopyRight www.osoyoo.com */ #include #include

int BUTTON_PIN = D2; // tugmasi D1 GPIO piniga ulangan

// Buni tarmoqqa mos qiymatlar bilan yangilang. const char*ssid = "********"; // wifi ssid -ni bu erga qo'ying const char*password = "********"; // wifi parolingizni bu erga qo'ying. const char* mqtt_server = "broker.mqttdashboard.com"; // const char* mqtt_server = "iot.eclipse.org";

WiFiClient espClient;

PubSubClient mijozi (espClient); long lastMsg = 0; char xabar [50];

void setup_wifi () {

kechikish (100); // Biz Wi -Fi tarmog'iga ulanishdan boshlaymiz Serial.print ("Ulanish"); Serial.println (ssid); WiFi.begin (ssid, parol); while (WiFi.status ()! = WL_CONNECTED) {kechiktirish (500); Serial.print ("."); } randomSeed (mikrosxemalar)); Serial.println (""); Serial.println ("Wi -Fi ulangan"); Serial.println ("IP -manzil:"); Serial.println (WiFi.localIP ()); }

bekor qo'ng'iroq (char* mavzu, bayt* yuk, imzosiz int uzunligi)

{} // qayta qo'ng'iroqni tugatish

bekor qayta ulanish () {

// (! Client.connected ()) {Serial.print ("MQTT ulanishi urinilmoqda …"), biz qayta ulanmagunimizcha aylantiring; // Tasodifiy mijoz identifikatorini yaratish String clientId = "ESP8266Client-"; clientId += String (tasodifiy (0xffff), HEX); // Ulanishga urinish // agar sizda MQTT brokerida clientID, foydalanuvchi nomi va parol bo'lsa // quyidagi satrni if (client.connect (clientId, userName, passWord)) if (client.connect (clientId.c_str ())) ga o'zgartiring. {Serial.println ("ulangan"); // MQTT brokeriga ulanganidan so'ng, agar mijoz bo'lsa, obuna bo'lish buyrug'i.subscribe ("OsoyooCommand"); } boshqa {Serial.print ("muvaffaqiyatsiz, rc ="); Serial.print (client.state ()); Serial.println ("5 soniyadan keyin qayta urinib ko'ring"); // Kechiktirishni qayta urinishdan oldin 5 soniya kuting (5000); }}} // qayta ulanishni tugatish ()

bo'sh o'rnatish () {

Serial.begin (115200); o'rnatish_wifi (); client.setServer (mqtt_server, 1883); client.setCallback (qayta qo'ng'iroq qilish); pinMod (BUTTON_PIN, INPUT); }

void loop () {

if (! client.connected ()) {reconnect (); } client.loop (); uzoq vaqtdan beri = millis (); int holati; // har 2 soniyada xabar yuboring, agar (hozir - lastMsg> 2000) {lastMsg = hozir; holati = digitalRead (BUTTON_PIN); String msg = "Tugma holati:"; if (status == HIGH) {msg = msg+ "Bosildi"; char xabari [58]; msg.toCharArray (xabar, 58); Serial.println (xabar); // sensor ma'lumotlarini MQTT brokeriga chop etish client.publish ("OsoyooData", xabar); } else {msg = msg+ "Bosilmaydi"; char xabari [58]; msg.toCharArray (xabar, 58); Serial.println (xabar); // sensor ma'lumotlarini MQTT brokeriga chop etish client.publish ("OsoyooData", xabar); }}}

O'zingizning WiFi va MQTT sozlamalaringizga mos keladigan kodni quyidagi amallar bilan tahrirlang: 1) Hotspot konfiguratsiyasi: Quyida kod satrini toping, o'z ssid va parolingizni qo'ying.

const char* ssid = "your_hotspot_ssid"; const char* parol = "your_hotspot_password";

2) MQTT Server manzili sozlamalari: Siz mqtt_server qiymatini belgilash uchun o'zingizning MQTT broker URL yoki IP manzilidan foydalanishingiz mumkin. Loyihani sinab ko'rish uchun "broker.mqtt-dashboard.com", "iot.eclipse.org" va boshqalar kabi mashhur bepul MQTT serveridan foydalanishingiz mumkin.

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

3) MQTT mijoz sozlamalari Agar sizning MQTT brokeringiz mijoz identifikatori, foydalanuvchi nomi va parolni tasdiqlashni talab qilsa, siz o'zgartirishingiz kerak.

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

Kimga

if (client.connect (clientId, userName, passWord)) // // clientId/userName/passWord -ni bu erga qo'ying

Agar yo'q bo'lsa, ularni odatdagidek saqlang, shundan so'ng koresponding karta turini va port turini quyida tanlang, so'ng eskizni NodeMCU -ga yuklang.

  • Kengash: "NodeMCU 0.9 (ESP-12 moduli)"
  • CPU chastotasi: "80 MGts" flesh o'lchami:"
  • 4M (3M SPIFFS)”
  • Yuklash tezligi: 115200 ″
  • Port: NodeMCU uchun o'zingizning ketma -ket portingizni tanlang

4 -qadam: MQTT mijoz sozlamalari

MQTT mijoz sozlamalari
MQTT mijoz sozlamalari
MQTT mijoz sozlamalari
MQTT mijoz sozlamalari

Agar siz MQTT mijozini qanday sozlashni bilmasangiz, bizning oxirgi maqolamizga tashrif buyuring:

Mavzular sozlamalari: nashr etiladigan mavzu: OsoyooCommand

Obuna bo'lish uchun mavzu: OsoyooData

Yugurish natijasi

Yuklash tugagandan so'ng, agar Wi -Fi ulanish nuqtasi nomi va parol sozlamalari yaxshi bo'lsa va MQTT brokeri ulangan bo'lsa, ketma -ket monitorni oching, siz quyidagi natijani ko'rasiz: bu tugmani bosib turing, ketma -ket monitor har 2 soniyada "tugma holati: bosiladi" ni chiqaradi.; bu tugmani qo'ygandan so'ng, Serial monitor har 2 soniyada "Tugma holati: bosilmayapti" ni chiqaradi.

Tavsiya: