Мазмұны:
Бейне: NodeMCU MQTT Iot жобасы - ауысу түймесі: 4 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:25
OSOYOO NodeMCU IOT стартер жинағы
Фейсбукте бізді қадағалаңыз, біздің жаңа шығарылымды табыңыз және біздің өнімдерді шығармашылықпен пайдалану туралы өз ойыңызбен және бейнеңізбен бөлісіңіз. Сіз бізден қолма -қол ақшаны қайтара аласыз немесе сыйлық ала аласыз! 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) қолданамыз, жабдықты қосылу графигіне сәйкес орнатыңыз.
Ескертпе: 1к резистор төмен түсетін резистор ретінде қолданылады, мұндай тізбекте коммутатор жабылған кезде 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); long lastMsg = 0; char msg [50];
жарамсыз setup_wifi () {
кешіктіру (100); // Біз Wi -Fi желісіне қосылудан бастаймыз 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 қосылымы әрекет етуде …») кезінде қайта қосылғанша айналдырыңыз; // String clientId = «ESP8266Client-» кездейсоқ клиент идентификаторын жасаңыз; clientId += Жол (кездейсоқ (0xffff), HEX); // Қосылу әрекеті // егер сізде MQTT брокерінің клиент идентификаторы, пайдаланушы аты мен құпия сөзі болса // келесі жолды if (client.connect (clientId, userName, passWord)) if (client.connect (clientId.c_str ())) деп өзгертіңіз {Serial.println («қосылған»); // MQTT брокеріне қосылғаннан кейін, клиентке жазылу пәрмені.subscribe («OsoyooCommand»); } else {Serial.print («сәтсіз, rc =»); Serial.print (client.state ()); Serial.println («5 секундтан кейін қайталап көріңіз»); // Қайталаудың кешігуіне дейін 5 секунд күтіңіз (5000); }}} // қайта қосылуды аяқтау ()
жарамсыз орнату () {
Serial.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 күйі; // әр 2 секунд сайын хабар жіберіңіз, егер (қазір - lastMsg> 2000) {lastMsg = қазір; күй = digitalRead (BUTTON_PIN); String msg = «Түймешік күйі:»; if (status == HIGH) {msg = msg+ «Басылды»; char хабарламасы [58]; msg.toCharArray (хабар, 58); Serial.println (хабар); // сенсорлық мәліметтерді MQTT брокеріне жариялау client.publish («OsoyooData», хабарлама); } else {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_server мәнінен жоғары орнату үшін өзіңіздің MQTT брокерінің URL мекенжайын немесе IP мекенжайын пайдалануға болады. Сіз сондай-ақ жобаны сынау үшін кейбір ақысыз MQTT серверін қолдана аласыз, мысалы, «broker.mqtt-dashboard.com», «iot.eclipse.org» және т.
const char* mqtt_server = “broker.mqtt-dashboard.com”;
3) MQTT клиентінің параметрлері Егер сіздің MQTT брокері клиент идентификаторын, пайдаланушы аты мен құпия сөзді растауды қажет етсе, сізге өзгерту қажет.
if (client.connect (clientId.c_str ()))
Кімге
if (client.connect (clientId, userName, passWord)) // // clientId/userName/passWord қойыңыз
Олай болмаған жағдайда, оларды әдепкі күйінде қалдырыңыз, содан кейін төмендегідей жауап беретін тақтаның түрі мен порт түрін таңдаңыз, содан кейін эскизді NodeMCU -ге жүктеңіз.
- Тақта: «NodeMCU 0.9 (ESP-12 модулі)»
- Процессор жиілігі: «80 МГц» Жарқыл мөлшері: »
- 4M (3M SPIFFS) »
- Жүктеу жылдамдығы: 115200 ″
- Порт: NodeMCU үшін өзіңіздің сериялық портыңызды таңдаңыз
4 -қадам: MQTT клиентінің параметрлері
Егер сіз MQTT клиентін қалай конфигурациялауды білмесеңіз, біздің соңғы мақалаға кіріңіз:
Тақырып параметрлері: Жарияланатын тақырып: OsoyooCommand
Жазылу тақырыбы: OsoyooData
Жүгіру нәтижесі
Жүктеу аяқталғаннан кейін, егер Wi -Fi хотспотының атауы мен құпия сөзі дұрыс болса және MQTT брокері қосылса, сериялық мониторды ашыңыз, сіз келесі нәтижені көресіз: осы түймені басып тұрыңыз, сериялық монитор әр 2 секунд сайын «түйме күйі: басылады» шығарады.; бұл түймені босатқаннан кейін, сериялық монитор әр 2 секунд сайын «Түймешік күйі: басылмайды» шығарады.
Ұсынылған:
Шыны IoT сенсорлық түймесі: 10 қадам
Шыны IoT сенсорлық түймесі: Менде ITO әйнегінің бір күні дүкеннің айналасында болды және оны жақсы пайдалану туралы ойладым. ITO, индий қалайы оксиді, әйнек әдетте сұйық кристалды дисплейлерде, күн батареяларында, ұшақтың кабинасының терезелерінде және т
Totoro жобасы - IoT & MQTT & ESP01: 7 қадам (суреттермен)
Totoro жобасы - IoT & MQTT & ESP01: Totoro жобасы - бұл көптеген басқа формаларда көшіруге болатын жақсы IoT жобасы. Case AdafruitIO) .MQTT және Ad үшін пайдалы нұсқаулық
IoT басу түймесі (D1 Mini): 6 қадам
IoT басу түймесі (D1 Mini): Мен телефонға хабарландыру жіберу үшін қолдануға болатын IoT басу түймесін жасадым (Amazon Dash туралы ойланыңыз) (мысалы, бақшада демалғанда сусын толтыруды сұрау үшін). Сіз көптеген басқа құрылғылармен өзара әрекеттесу үшін оңай конфигурациялай аласыз
NodeMCU көмегімен төтенше жағдай түймесі: 7 қадам
NodeMCU көмегімен төтенше жағдай түймесі: төтенше жағдай туындаған кезде жедел жәрдем түймесі көмек алуға көмектеседі, тек түймені бассаңыз, ол автоматты түрде Facebook немесе twitter -ге кодқа енгізген хабарды жібереді, егер сізде бар болса, басқа батырманы қосуға болады. медициналық жағдай
Қолданбаңызды басқаратын IoT түймесі: 6 қадам
Қолданбаңызды басқаратын IoT түймесі: Микроконтроллерлердің маған ұнайтын нәрселерінің бірі - оларды енгізу құрылғысы ретінде пайдалану мүмкіндігі, мысалы, Arduino Micro HID (адам интерфейсі құрылғысы) ретінде пайдаланылуы мүмкін, бұл кейбір кодтауды білдіреді. Өз қолыңызбен пернетақтаны қалай жасауға болатынын біліңіз