Съдържание:
- Стъпка 1: Подготовка
- Стъпка 2: Графика за свързване
- Стъпка 3: Код
- Стъпка 4: Настройки на клиента на MQTT
Видео: NodeMCU MQTT Iot Project - Бутон за превключване: 4 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Стартов комплект OSOYOO NodeMCU IOT
Моля, следвайте ни във facebook, намерете новия ни пуснат артикул и споделете вашата идея и видео за това как да използваме творчески нашите продукти. Можете да получите обратно пари или подарък от нас! 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 изпраща състоянието на бутона за превключване към MQTT клиент чрез WiFi * Урок URL: * CopyRight www.osoyoo.com */ #include #include
int BUTTON_PIN = D2; // бутонът е свързан към GPIO извод D1
// Актуализирайте ги със стойности, подходящи за вашата мрежа. 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];
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 ()); }
невалидно обратно повикване (char* тема, байт* полезен товар, беззначна дължина int)
{} // прекратяване на обратното повикване
void повторно свързване () {
// Цикъл, докато не се свържем отново докато (! Client.connected ()) {Serial.print ("Опит за MQTT връзка …"); // Създаване на случаен клиент ID String clientId = "ESP8266Client-"; clientId += Низ (произволен (0xffff), HEX); // Опит за свързване // ако вашият брокер на MQTT има clientID, потребителско име и парола // моля, променете следния ред на if (client.connect (clientId, userName, passWord)) 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); }}} // край на повторното свързване ()
void setup () {
Serial.begin (115200); setup_wifi (); client.setServer (mqtt_server, 1883); client.setCallback (обратно повикване); pinMode (BUTTON_PIN, INPUT); }
void loop () {
if (! client.connected ()) {повторно свързване (); } client.loop (); long now = millis (); int статус; // изпраща съобщение на всеки 2 секунди if (now - lastMsg> 2000) {lastMsg = now; status = digitalRead (BUTTON_PIN); String msg = "Статус на бутона:"; if (status == HIGH) {msg = msg+ "Натиснат"; char съобщение [58]; msg.toCharArray (съобщение, 58); Serial.println (съобщение); // публикуване на сензорни данни в брокер на MQTT client.publish ("OsoyooData", съобщение); } else {msg = msg+ "Not Press"; 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: Можете да използвате свой собствен URL адрес на MQTT брокер или IP адрес, за да зададете над стойността на mqtt_server. Можете също да използвате известен известен безплатен 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)“
- Честота на процесора:”80MHz” Размер на светкавицата:”
- 4M (3M SPIFFS)”
- Скорост на качване:”115200 ″
- Порт: Изберете свой собствен сериен порт за вашия NodeMCU
Стъпка 4: Настройки на клиента на MQTT
Ако не знаете как да конфигурирате MQTT клиент, моля, посетете последната ни статия:
Настройки на теми: Тема за публикуване: OsoyooCommand
Тема за абониране: OsoyooData
Текущ резултат
След като качването приключи, ако името и паролата за wifi точка са наред и MQTT брокерът е свързан, отворете серийния монитор, ще видите следния резултат: Продължете да натискате този бутон, серийният монитор ще извежда „Състояние на бутона: Натиснат“на всеки 2 секунди; след като освободите този бутон, серийният монитор ще извежда „Състояние на бутона: Не е натиснат“на всеки 2 секунди.
Препоръчано:
Играчки с адаптер за превключване: играчка за влак на пара, направена достъпна!: 7 стъпки (със снимки)
Играчки с адаптер за превключване: Играчка с влак на пара, направена достъпна !: Адаптацията на играчките отваря нови пътища и персонализирани решения, които позволяват на деца с ограничени двигателни способности или увреждания в развитието да взаимодействат независимо с играчките. В много случаи децата, които се нуждаят от адаптирани играчки, не могат да си представят
Играчки с адаптер за превключване: Дишащ вода ходищ дракон, достъпен !: 7 стъпки (със снимки)
Играчки с адаптер за превключване: Вододихащ ходещ дракон, достъпен !: Адаптацията на играчки отваря нови пътища и персонализирани решения, които позволяват на деца с ограничени двигателни способности или увреждания в развитието да взаимодействат независимо с играчките. В много случаи децата, които се нуждаят от адаптирани играчки, не могат да си представят
Играчки с адаптер за превключване: Играчка за катерене по стълби: 7 стъпки
Играчки с адаптер за превключване: Играчка за катерене по стълби: Адаптацията на играчки отваря нови пътища и персонализирани решения, които позволяват на деца с ограничени двигателни способности или увреждания в развитието да взаимодействат независимо с играчките. В много случаи децата, които се нуждаят от адаптирани играчки, не могат да си представят
Панел за превключване на самолетни самолетни самолети: 7 стъпки (със снимки)
Панел за превключване на самолетни полети „Направи си сам“: След като прекарах много години в общността на полетните сим и се включих във все по -сложни самолети, се озовах в копнеж за способността да държа ръцете си на физически превключватели, вместо да се опитвам да летя с дясната си ръка, докато използвам м
Играчки с адаптер за превключване: Luditek LED Party Light: 7 стъпки
Играчки с адаптер за превключване: Luditek LED Party Light: Адаптацията на играчки отваря нови възможности и персонализирани решения, които позволяват на деца с ограничени двигателни способности или увреждания в развитието да взаимодействат независимо с играчките. В много случаи децата, които се нуждаят от адаптирани играчки, не могат да си представят