
Мазмуну:
2025 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2025-01-23 14:51


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 Board Package жана Serial Port Driver
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; // баскычы GP1 пин D1 менен туташкан
// Буларды тармагыңызга ылайыктуу баалуулуктар менен жаңыртыңыз. const char*ssid = "********"; // wifi ssid бул жерге коюңуз char 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];
void 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 ()); }
кайра чакыруу жок
{} // кайра чалууну токтотуу
жараксыз кайра туташуу () {
// (! Client.connected ()) {Serial.print ("MQTT туташуусу аракет кылынууда …") кайра туташканга чейин цикл. // Кокустан кардар ID түзүү String clientId = "ESP8266Client-"; clientId += Стринг (туш келди (0xffff), HEX); // Туташуу аракети // эгерде сизде MQTT брокеринде clientID, колдонуучунун аты жана сырсөз // бар болсо, кийинки сапты if (client.connect (clientId, userName, passWord)) if if (client.connect (clientId.c_str ())) {Serial.println ("туташкан"); // MQTT брокерине туташкандан кийин, кандайдыр бир client.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); Strg msg = "Баскычтын абалы:"; if (status == HIGH) {msg = msg+ "Pressed"; char билдирүүсү [58]; msg.toCharArray (билдирүү, 58); Serial.println (билдирүү); // сенсордук маалыматтарды MQTT брокерине жарыялоо client.publish ("OsoyooData", билдирүү); } else {msg = msg+ "Press not"; char билдирүүсү [58]; msg.toCharArray (билдирүү, 58); Serial.println (билдирүү); // сенсордук маалыматтарды MQTT брокерине жарыялоо client.publish ("OsoyooData", билдирүү); }}}
Төмөнкү операциялар катары WiFi жана MQTT жөндөөлөрүңүзгө ылайыктуу кодду түзөтүңүз: 1) Hotspot конфигурациясы: Төмөндөгү код линиясын табыңыз, өзүңүздүн SSID жана сырсөзүңүздү ошол жерге коюңуз.
const char* ssid = "your_hotspot_ssid"; const char* password = "your_hotspot_password";
2) MQTT Server Address Setting: Сиз mqtt_server баалуулугун жогору коюу үчүн өзүңүздүн MQTT брокер URL же IP дарегиңизди колдоно аласыз. Сиз ошондой эле проекти текшерүү үчүн белгилүү акысыз MQTT серверин колдоно аласыз, мисалы "broker.mqtt-dashboard.com", "iot.eclipse.org" ж.
const char* mqtt_server = "broker.mqtt-dashboard.com";
3) MQTT Кардар Орнотуулар Сиздин MQTT брокери clientID, колдонуучунун аты жана сырсөз аныктыгын текшерүүнү талап кылса, өзгөртүү керек
if (client.connect (clientId.c_str ()))
To
if (client.connect (clientId, userName, passWord)) // // clientId/userName/passWord бул жерге коюңуз
Эгерде андай болбосо, анда аларды демейки катары сактаңыз. Андан кийин, корреспонденттик тактанын түрүн жана порт түрүн төмөндөгүдөй тандап, эскизди NodeMCUге жүктөңүз.
- Такта: "NodeMCU 0.9 (ESP-12 модулу)"
- CPU Frequency: "80MHz" Flash Size:"
- 4M (3M SPIFFS)”
- Жүктөө ылдамдыгы:”115200 ″
- Порт: NodeMCU үчүн өзүңүздүн сериялык портуңузду тандаңыз
4 -кадам: MQTT Кардар Орнотуулары


Эгерде сиз MQTT кардарын кантип конфигурациялоону билбесеңиз, биздин акыркы макалага баш багыңыз:
Темалар Орнотуулар: Жарыялануучу тема: OsoyooCommand
Жазылуу темасы: OsoyooData
Иштөө жыйынтыгы
Жүктөө аяктагандан кийин, эгер wifi түйүнүнүн аталышы жана сырсөзүн жөндөө туура болсо жана MQTT брокери туташса, Сериялык Мониторду ачыңыз, сиз төмөнкү натыйжаны көрөсүз: Бул баскычты басып туруңуз, Сериялык Монитор "Баскычтын абалы: Басылган" чыгарууну ар бир 2 секундда чыгарат.; бул баскычты коё бергенден кийин, Сериялык Монитор ар 2 секундада "Баскычтын абалы: Басылбайт" чыгарат.
Сунушталууда:
Magic Button 4k: 20USD BMPCC 4k (же 6k) Wireless Remote Control: 4 Steps (Сүрөттөр менен)

Magic Button 4k: 20USD BMPCC 4k (же 6k) Wireless Remote Control: Көптөгөн адамдар BMPCC4k үчүн зымсыз башкаргычым жөнүндө кээ бир деталдар менен бөлүшүүнү суранышты. Көпчүлүк суроолор bluetooth көзөмөлү жөнүндө болгон, ошондуктан мен бул тууралуу бир нече деталдарды айтам. Сиз ESP32 Arduino чөйрөсү менен таанышсыз деп ойлойм
Totoro Project - IoT & MQTT & ESP01: 7 кадам (Сүрөттөр менен)

Totoro Project - IoT & MQTT & ESP01: Totoro Project - бул башка көптөгөн формада көчүрө турган жакшы IoT проектиси. case AdafruitIO) .MQTT жана Ad үчүн пайдалуу колдонмо
2-Button Quadratic Equation Solver: 5 Steps

2-Button Quadratic Equation Solver: Киришүү менин биринчи үйрөткүчүмө кош келиңиз! Мен бул долбоорду программалоо билимимди кеңейтүү үчүн баштадым. Көбүнчө, сиз керектүү программаны түзүү үчүн ар кандай баштапкы кодду бириктиресиз. Менин максатым инструмент менен иштөө үчүн өз программамдын кодун жазуу болчу
Туулган күнүң менен-Buzzer and Button: 10 Steps

Туулган күнүң менен-Buzzer and Button: Бул проект Arduino Uno, ызылдаткычты жана баскычты колдонуп, Happy Birthday ырын ойнотот! Кнопка басылганда, коңгуроо туулган күндүн ырын толугу менен ойнойт. Мен балдарым абдан жакшы көргөн музыкалык туулган күн карталарына байланышты көрөм
ESPHA - IOT PROJECT: 4 Steps (Сүрөттөр менен)

ESPHA - IOT PROJECT: Бул долбоордун аталышында " ESPHA " Arduino, esp8266 жана веб -сайтты (мен түзгөн) колдонуп, бир нече электрондук сенсорлордун маалыматтары жана гаджеттери башкарылып, башкарылууда. Бул жерде мен " RGB LED " анын астында сиз LED абалын көзөмөлдөйсүз (1