Агуулгын хүснэгт:

NodeMCU MQTT Iot төсөл - Шилжүүлэгч товч: 4 алхам
NodeMCU MQTT Iot төсөл - Шилжүүлэгч товч: 4 алхам

Видео: NodeMCU MQTT Iot төсөл - Шилжүүлэгч товч: 4 алхам

Видео: NodeMCU MQTT Iot төсөл - Шилжүүлэгч товч: 4 алхам
Видео: Народный MQTT Broker на ESP8266. uMQTTBroker. 2024, Арваннэгдүгээр
Anonim
Image
Image

OSOYOO NodeMCU IOT Starter иж бүрдэл

Фэйсбүүк дээр биднийг дагаж, бидний гаргасан шинэ зүйлийг олж, бүтээгдэхүүнээ хэрхэн бүтээлчээр ашиглах талаар өөрийн санаа, видеог хуваалцана уу. Та биднээс бэлэн мөнгө буцааж эсвэл бэлэг авах боломжтой! Facebook:

Youtube:

Энэ хичээл дээр бид NodeMCU руу шилжих товчлуурыг холбож, шилжүүлэгчийн статусыг MQTT брокер руу илгээх болно. Товчлуур дарагдсан үед NodeMCU нь товчлуурын статусыг MQTT брокерт "дарагдсан" байдлаар нийтлэх бөгөөд MQTT үйлчлүүлэгч эдгээр зурвасуудыг захиалах болно. Товчлуурыг суллахад "дарагдаагүй" илгээгдэх болно.

Алхам 1: Бэлтгэл ажил

Холболтын график
Холболтын график

Техник хангамж:

NodeMCU самбар x 1

Шилжүүлэгч товч x 1

1K эсэргүүцэл x 1

Талхны самбар x 1

Холбогч утас

Програм хангамж:

Arduino IDE (1.6.4+ хувилбар)

ESP8266 ТУЗ -ийн багц ба цуваа портын драйвер

MQTT үйлчлүүлэгч (MQTTBox энд байна)

Arduino номын сан: PubSubClient

Алхам 2: Холболтын график

Энэ хичээл дээр бид унтраалгыг хянахын тулд D2 (GPIO4) ашигладаг тул тоног төхөөрөмжийг холболтын графикийн дагуу тохируулна уу.

Тэмдэглэл: 1k резисторыг доош татах эсэргүүцэл болгон ашиглаж байна. Ийм хэлхээнд унтраалга хаагдах үед NodeMCU оролт нь логик өндөр утгатай боловч унтраалга нээгдэх үед доош татах эсэргүүцэл нь оролтын хүчдэлийг татдаг. газар дээр (логик тэг утга), оролт дээр тодорхойгүй төлөвөөс урьдчилан сэргийлэх.

Алхам 3: Код

Код
Код
Код
Код

Дараах кодыг Arduino IDE руу хуулна уу.

/ * _ _ _ _ _ _ _ _ _ _ * / _ / / _) / _ / | | | | / _ / / _ / / _) _ / | / *| | _ | | _ | | _ | | | _ | | | _ | | | _ | ((_ | | _ | | | | | * / _/ (_/ / _/ / _ | / _/ / _ (_) _) _/ | _ | _ | _ | * (_/ * Хэрэглэх NodeMCU нь WiFi -ээр дамжуулан MQTT клиент рүү шилжих товчлуурын статус илгээх * Хичээлийн URL: * CopyRight www.osoyoo.com */ #include #include

int BUTTON_PIN = D2; // товчлуур нь D1 GPIO зүүтэй холбогдсон байна

// Эдгээрийг сүлжээндээ тохирсон утгуудаар шинэчилнэ үү. const char*ssid = "********"; // wifi ssid -ээ энд оруулна const char*password = "********"; // энд wifi нууц үгээ оруулна уу. const char* mqtt_server = "broker.mqttdashboard.com"; // const char* mqtt_server = "iot.eclipse.org";

WiFiClient espClient;

PubSubClient үйлчлүүлэгч (espClient); урт удаанMsg = 0; char msg [50];

хүчингүй 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 ()); }

хүчингүй дуудлага хийх (char* сэдэв, байт* ачаа, гарын үсэг зураагүй int урт)

{} // буцааж залгахыг зогсоох

хүчингүй дахин холбох () {

// (! Client.connected ()) {Serial.print ("MQTT холболтыг оролдож байна …") байхад бид дахин холбогдох хүртэл гогцоо хийх; // Санамсаргүй үйлчлүүлэгчийн ID үүсгэх String clientId = "ESP8266Client-"; clientId += String (санамсаргүй (0xffff), HEX); // Холбогдох оролдлого // хэрэв та MQTT зуучлагч клиент ID, хэрэглэгчийн нэр, нууц үгтэй бол // дараах мөрийг if (client.connect (clientId, userName, passWord)) if (client.connect (clientId.c_str ())) болгож өөрчилнө үү. {Serial.println ("холбогдсон"); // MQTT брокерт холбогдсоны дараа захиалагч байвал захиалаарай.subscribe ("OsoyooCommand"); } өөр {Serial.print ("амжилтгүй, rc ="); Serial.print (client.state ()); Serial.println ("5 секундын дараа дахин оролдоно уу"); // Дахин оролдохын тулд 5 секунд хүлээнэ үү (5000); }}} // дахин холболтыг дуусгах ()

хүчингүй тохиргоо () {

Цуваа.begin (115200); setup_wifi (); client.setServer (mqtt_server, 1883); client.setCallback (буцааж залгах); pinMode (BUTTON_PIN, INPUT); }

void loop () {

if (! client.connected ()) {reconnect (); } client.loop (); урт удаан = millis (); int төлөв; // хэрэв (одоо - lastMsg> 2000) {lastMsg = одоо; төлөв = digitalRead (BUTTON_PIN); String msg = "Товчлуурын төлөв:"; if (status == HIGH) {msg = msg+ "дарагдсан"; char зурвас [58]; msg.toCharArray (зурвас, 58); Serial.println (зурвас); // мэдрэгчийн өгөгдлийг MQTT брокерийн клиентэд нийтлэх.publish ("OsoyooData", зурвас); } өөр {msg = msg+ "Хэвлэхгүй"; char зурвас [58]; msg.toCharArray (зурвас, 58); Serial.println (зурвас); // мэдрэгчийн өгөгдлийг MQTT брокер client.publish -д нийтлэх ("OsoyooData", зурвас); }}}

Кодыг өөрийн WiFi болон MQTT тохиргоонд тохируулан дараах үйлдлүүдээр засварлана уу: 1) Халуун цэгийн тохиргоо: Доорх кодын мөрийг олж, тэнд өөрийн ssid болон нууц үгээ оруулна уу.

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

2) MQTT серверийн хаягийн тохиргоо: Та өөрийн MQTT брокерын URL эсвэл IP хаягийг ашиглан mqtt_server дээрх утгыг тохируулж болно. Та төслийг "broker.mqtt-dashboard.com", "iot.eclipse.org" гэх мэт туршиж үзэхийн тулд алдартай үнэгүй MQTT сервер ашиглаж болно.

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

3) MQTT үйлчлүүлэгчийн тохиргоо Хэрэв таны MQTT брокерт клиент ID, хэрэглэгчийн нэр, нууц үгийн баталгаажуулалт шаардлагатай бол та өөрчлөх хэрэгтэй.

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

To

if (client.connect (clientId, userName, passWord)) // // clientId/userName/passWord -ийг энд оруулна уу.

Үгүй бол тэдгээрийг үндсэн хэлбэрээр хадгалж, дараа нь харгалзах самбарын төрөл ба портын төрлийг доорх байдлаар сонгоод ноорогоо NodeMCU руу оруулна уу.

  • Удирдах зөвлөл: "NodeMCU 0.9 (ESP-12 модуль)"
  • CPU -ийн давтамж: "80MHz" Flash хэмжээ:"
  • 4M (3M SPIFFS)”
  • Байршуулах хурд: 115200 ″
  • Порт: NodeMCU -ийнхээ сериал портыг сонгоно уу

Алхам 4: MQTT үйлчлүүлэгчийн тохиргоо

MQTT үйлчлүүлэгчийн тохиргоо
MQTT үйлчлүүлэгчийн тохиргоо
MQTT үйлчлүүлэгчийн тохиргоо
MQTT үйлчлүүлэгчийн тохиргоо

Хэрэв та MQTT клиентийг хэрхэн тохируулахаа мэдэхгүй байгаа бол манай сүүлийн нийтлэл рүү зочилно уу:

Сэдвийн тохиргоо: Нийтлэх сэдэв: OsoyooCommand

Захиалах сэдэв: OsoyooData

Ажиллаж буй үр дүн

Байршуулалтыг хийсний дараа wifi сүлжээний цэгийн нэр, нууц үгийн тохиргоо зөв хийгдсэн бөгөөд MQTT брокер холбогдсон бол Цуваа мониторыг нээгээд дараах үр дүнг харах болно: Энэ товчлуурыг дарж байтал Цуваа монитор нь 2 секунд тутамд "Button status: Pressed" гарна.; энэ товчлуурыг гаргасны дараа Цуваа монитор нь 2 секунд тутамд "Товчлуурын төлөв: дарагдаагүй" гэж гаргана.

Зөвлөмж болгож буй: