2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:05
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, посетите нашу последнюю статью:
Настройки тем: Тема для публикации: OsoyooCommand
Тема для подписки: OsoyooData
Результат бега
После завершения загрузки, если настройки имени и пароля точки доступа Wi-Fi в порядке и брокер MQTT подключен, откройте Serial Monitor, вы увидите следующий результат: Продолжайте нажимать эту кнопку, Serial Monitor будет выводить сообщение «Состояние кнопки: нажата» каждые 2 секунды.; после отпускания этой кнопки последовательный монитор будет выводить сообщение «Состояние кнопки: не нажата» каждые 2 секунды.
Рекомендуемые:
Панель переключения симулятора полета своими руками: 7 шагов (с изображениями)
Панель переключателя симулятора полета DIY: Проведя много лет в сообществе симуляторов полета и участвуя в создании все более сложных самолетов, я обнаружил, что очень хочу иметь возможность держать руки на физических переключателях вместо того, чтобы пытаться летать правой рукой, используя м
Схема переключения аудио с двойным входом: 6 шагов (с изображениями)
Схема переключения звука с двумя входами: у вас когда-нибудь возникала проблема наличия одной акустической системы и нескольких входов, которые требовали, чтобы вы подключали и отключали аудио провода каждый раз, когда вы хотите слушать один источник? Что ж, у меня есть решение для вас! Это руководство посвящено созданию очень
Электрический переключатель переключения передач для горных велосипедов: 5 ступеней (с изображениями)
Электрический переключатель переключения передач для горного велосипеда: Это руководство было создано в соответствии с требованиями проекта Makecourse в Университете Южной Флориды (www.makecourse.com). Этот проект представляет собой настраиваемый переключатель с низким бюджетом на базе Arduino для электрического горного велосипеда. С этим вы
Горелка с питанием от USB! Этот проект может прожечь пластик / дерево / бумагу (веселый проект также должен быть очень качественным деревом): 3 шага
Горелка с питанием от USB! Этот проект может прожечь пластик / дерево / бумагу (забавный проект также должен быть из очень хорошего дерева): НЕ ДЕЛАЙТЕ ЭТО С ПОМОЩЬЮ USB !!!! я узнал, что это может повредить ваш компьютер из всех комментариев. мой компьютер в порядке. Используйте зарядное устройство для телефона на 600 мА, 5 В. Я использовал это, и он отлично работает, и ничего не может быть повреждено, если вы воспользуетесь предохранительной вилкой, чтобы отключить питание
Простой переключатель переключения полярности: 4 шага
ПРОСТОЙ переключатель переключения полярности: во-первых, я ЗНАЮ, что для этого есть и другие приспособления, я просто хотел показать свою версию. ПОЖАЛУЙСТА, не пламеньте, потому что это уже сделано! Во-вторых, это моя первая инструкция. Я написал другой, но у меня нет фотоаппарата, чтобы сделать снимок