Оглавление:

Проект NodeMCU MQTT Iot - кнопка переключения: 4 шага
Проект NodeMCU MQTT Iot - кнопка переключения: 4 шага

Видео: Проект NodeMCU MQTT Iot - кнопка переключения: 4 шага

Видео: Проект NodeMCU MQTT Iot - кнопка переключения: 4 шага
Видео: Настройка IOT MQTT Panel на смартфоне (Простой Умный Дом На ESP8266 - Часть 4) 2024, Июль
Anonim
Image
Image

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) для управления переключателем, пожалуйста, настройте оборудование в соответствии с графиком подключения.

Примечание: резистор 1 кОм используется в качестве понижающего резистора. В такой схеме, когда переключатель замкнут, вход NodeMCU имеет высокое логическое значение, но когда переключатель разомкнут, понижающий резистор вытягивает входное напряжение. на землю (значение логического нуля), предотвращая неопределенное состояние на входе.

Шаг 3: Код

Код
Код
Код
Код

Скопируйте приведенный ниже код в Arduino IDE:

/ * _ _ _ _ _ _ _ _ _ _ * / _ / / _) / _ / | | | | / _ / / _ / / _) _ / | / * | | _ | | _ | | _ | | | _ | | | _ | | | _ | ((_ | | _ | | | | | * / _ / (_ / / _ / / _ | / _ / / _ (_) _) _ / | _ | _ | _ | * (_ / * Используйте NodeMCU отправляет статус кнопки переключателя клиенту MQTT через Wi-Fi * URL-адрес руководства: * CopyRight www.osoyoo.com * / #include #include

int BUTTON_PIN = D2; // кнопка подключена к выводу GPIO D1

// Обновите их значениями, подходящими для вашей сети. const char * ssid = "********"; // введите сюда ssid вашего Wi-Fi const char * password = "********"; // введите здесь свой пароль Wi-Fi. 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); // Начнем с подключения к сети Wi-Fi Serial.print ("Подключение к"); Serial.println (ssid); WiFi.begin (ssid, пароль); в то время как (WiFi.status ()! = WL_CONNECTED) {задержка (500); Serial.print ("."); } randomSeed (micros ()); Serial.println (""); Serial.println («WiFi подключен»); Serial.println ("IP-адрес:"); Serial.println (WiFi.localIP ()); }

void callback (char * topic, byte * payload, unsigned int length)

{} // завершаем обратный вызов

void reconnect () {

// Цикл, пока мы не восстановим соединение while (! Client.connected ()) {Serial.print ("Попытка соединения MQTT…"); // Создание случайного идентификатора клиента String clientId = "ESP8266Client-"; clientId + = String (случайный (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 секунд перед повторной попыткой delay (5000); }}} // конец reconnect ()

void setup () {

Serial.begin (115200); setup_wifi (); client.setServer (mqtt_server, 1883); client.setCallback (обратный вызов); pinMode (BUTTON_PIN, INPUT); }

void loop () {

если (! client.connected ()) {reconnect (); } client.loop (); теперь долго = millis (); int status; // отправляем сообщение каждые 2 секунды if (now - lastMsg> 2000) {lastMsg = now; статус = digitalRead (BUTTON_PIN); String msg = "Статус кнопки:"; if (status == HIGH) {msg = msg + "Pressed"; символьное сообщение [58]; msg.toCharArray (сообщение, 58); Serial.println (сообщение); // публикуем данные датчиков в брокере MQTT client.publish ("OsoyooData", message); } else {msg = msg + "Не нажимать"; символьное сообщение [58]; msg.toCharArray (сообщение, 58); Serial.println (сообщение); // публикуем данные датчиков в брокере MQTT client.publish ("OsoyooData", message); }}}

Отредактируйте код, чтобы он соответствовал вашим собственным настройкам WiFi и MQTT, выполнив следующие операции: 1) Конфигурация точки доступа: найдите приведенную ниже строку кода, введите там свой собственный ssid и пароль.

const char * ssid = «your_hotspot_ssid»; const char * password = «your_hotspot_password»;

2) Настройка адреса сервера MQTT: вы можете использовать свой собственный URL-адрес или IP-адрес брокера MQTT, чтобы задать значение mqtt_server выше. Вы также можете использовать какой-нибудь известный бесплатный сервер MQTT для тестирования проекта, например «broker.mqtt-dashboard.com», «iot.eclipse.org» и т. Д.

const char * mqtt_server = «broker.mqtt-dashboard.com»;

3) Настройки клиента MQTT Если вашему брокеру MQTT требуется проверка подлинности clientID, имени пользователя и пароля, вам необходимо изменить

если (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 подключен, откройте Serial Monitor, вы увидите следующий результат: Продолжайте нажимать эту кнопку, Serial Monitor будет выводить сообщение «Состояние кнопки: нажата» каждые 2 секунды.; после отпускания этой кнопки последовательный монитор будет выводить сообщение «Состояние кнопки: не нажата» каждые 2 секунды.

Рекомендуемые: