Мазмұны:

NodeMCU MQTT Iot жобасы - ауысу түймесі: 4 қадам
NodeMCU MQTT Iot жобасы - ауысу түймесі: 4 қадам

Бейне: NodeMCU MQTT Iot жобасы - ауысу түймесі: 4 қадам

Бейне: NodeMCU MQTT Iot жобасы - ауысу түймесі: 4 қадам
Бейне: Умный дом. Как сделать умную розетку на Ардуино. С использованием mqtt. 2024, Қараша
Anonim
Image
Image

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 клиентінің параметрлері
MQTT клиентінің параметрлері
MQTT клиентінің параметрлері
MQTT клиентінің параметрлері

Егер сіз MQTT клиентін қалай конфигурациялауды білмесеңіз, біздің соңғы мақалаға кіріңіз:

Тақырып параметрлері: Жарияланатын тақырып: OsoyooCommand

Жазылу тақырыбы: OsoyooData

Жүгіру нәтижесі

Жүктеу аяқталғаннан кейін, егер Wi -Fi хотспотының атауы мен құпия сөзі дұрыс болса және MQTT брокері қосылса, сериялық мониторды ашыңыз, сіз келесі нәтижені көресіз: осы түймені басып тұрыңыз, сериялық монитор әр 2 секунд сайын «түйме күйі: басылады» шығарады.; бұл түймені босатқаннан кейін, сериялық монитор әр 2 секунд сайын «Түймешік күйі: басылмайды» шығарады.

Ұсынылған: