Агуулгын хүснэгт:
Видео: NodeMCU MQTT Iot төсөл - Шилжүүлэгч товч: 4 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:03
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 клиентийг хэрхэн тохируулахаа мэдэхгүй байгаа бол манай сүүлийн нийтлэл рүү зочилно уу:
Сэдвийн тохиргоо: Нийтлэх сэдэв: OsoyooCommand
Захиалах сэдэв: OsoyooData
Ажиллаж буй үр дүн
Байршуулалтыг хийсний дараа wifi сүлжээний цэгийн нэр, нууц үгийн тохиргоо зөв хийгдсэн бөгөөд MQTT брокер холбогдсон бол Цуваа мониторыг нээгээд дараах үр дүнг харах болно: Энэ товчлуурыг дарж байтал Цуваа монитор нь 2 секунд тутамд "Button status: Pressed" гарна.; энэ товчлуурыг гаргасны дараа Цуваа монитор нь 2 секунд тутамд "Товчлуурын төлөв: дарагдаагүй" гэж гаргана.
Зөвлөмж болгож буй:
Товч баатар - Sumedh & Jeanelle (робот техник): 5 алхам
Button Hero - Sumedh & Jeanelle (робот техник): Button Hero тоглоомын зааварчилгаанд тавтай морилно уу! Энэ тоглоом бол Guitar Hero тоглоомын зөөврийн хувилбар юм. Энэхүү бүтцэд бид (миний хамтрагч бид хоёр) энэ төслийг талхны тавцан дээр болон гагнуурын аргаар хэрхэн бүтээсэн тухайгаа хуваалцах болно
Arduino доош тоолох W/ амрах товч: 4 алхам
Arduino Count Down W/ Rest Button: Энэхүү зааварчилгаа нь товчлуураар дахин тохируулах боломжтой 4 оронтой 7 сегментийн дэлгэц ашиглан хэрхэн тоолох тоолуур хийхийг танд заах болно. Үүнийг хийх санаа надад төрсөн, учир нь анги дээр 1 оронтой 7 сегментийн дэлгэцийг бүтээхдээ би ямар нэгэн зүйл бүтээхийг хүссэн юм
Тоторо төсөл - IoT & MQTT & ESP01: 7 алхам (зурагтай)
Totoro төсөл - IoT & MQTT & ESP01: Totoro төсөл бол өөр өөр хэлбэрээр хуулж авах сайхан IoT төсөл юм. ESP01 самбарыг ашиглан MQTT протоколын тусламжтайгаар товчлуурын статусыг MQTT брокерт мэдэгдэх боломжтой тохиолдол AdafruitIO) .MQTT болон зар сурталчилгааны талаархи хэрэгтэй гарын авлага
Эхлэгчдэд зориулсан Arduino -ийн 10 үндсэн төсөл! Нэг самбараар хамгийн багадаа 15 төсөл хий !: 6 алхам
Эхлэгчдэд зориулсан Arduino -ийн 10 үндсэн төсөл! Хамгийн багадаа 15 төслийг нэг самбараар хий !: Arduino Project & Хичээлийн зөвлөл; Arduino -ийн үндсэн 10 төслийг багтаасан болно. Бүх эх код, Gerber файл болон бусад. SMD байхгүй байна! Хүн бүрт хялбар гагнах. Зөөврийн болон сольж болох хялбар бүрэлдэхүүн хэсгүүд. Та хамгийн багадаа 15 төсөл хийх боломжтой
USB -ээр ажилладаг шарагч! Энэхүү төсөл нь хуванцар / мод / цаасаар шатаж болно (хөгжилтэй төсөл нь маш нарийн мод байх ёстой): 3 алхам
USB -ээр ажилладаг шарагч! Энэ төсөл нь хуванцар / мод / цаасаар шатаж болно (хөгжилтэй төсөл нь маш нарийн мод байх ёстой): ЭНЭ USB ашиглан бүү хий !!!! Энэ нь бүх сэтгэгдлээс таны компьютерийг гэмтээж болохыг олж мэдсэн. миний компьютер сайн байна 600ma 5V утасны цэнэглэгч ашиглана уу. Би үүнийг ашигласан бөгөөд энэ нь сайн ажилладаг бөгөөд хэрэв та цахилгаан тэжээлийг зогсоохын тулд хамгаалалтын залгуур ашиглавал юу ч гэмтээхгүй