Оглавление:
- Шаг 1. Что такое MQTT и как он работает
- Шаг 2: Raspberry Pi
- Шаг 3: Как настроить статический IP-адрес
- Шаг 4: NodeMCU
- Шаг 5: скрипт Python
- Шаг 6: Подключения и принципиальная схема
- Шаг 7: Результат
Видео: Raspberry Pi разговаривает с ESP8266 с помощью MQTT: 8 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
В этом проекте я объясню, что такое протокол MQTT и как он используется для связи между устройствами. Затем, в качестве практической демонстрации, я продемонстрирую, как настроить систему клиента и брокера, где модуль ESP8266 и RPi говорят. друг другу или отправить сообщение при нажатии кнопки.
Требуемый материал
1. Raspberry Pi 3
2. NodeMCU
3. Светодиод
4. Кнопка
5. Резисторы (10к, 475 Ом)
Шаг 1. Что такое MQTT и как он работает
MQTT
MQTT - это межмашинный протокол передачи данных (M2M). MQTT был создан с целью сбора данных со многих устройств и последующей передачи этих данных в ИТ-инфраструктуру. Он легкий и поэтому идеально подходит для удаленного мониторинга, особенно в соединениях M2M, требующих небольшого размера кода или в которых ограничена пропускная способность сети.
Как работает MQTT
MQTT - это протокол публикации / подписки, который позволяет устройствам на границе сети публиковать информацию для брокера. Клиенты подключаются к этому брокеру, который затем обеспечивает связь между двумя устройствами. Каждое устройство может подписаться или зарегистрироваться на определенные темы. Когда другой клиент публикует сообщение по теме подписки, брокер пересылает сообщение любому подписавшемуся клиенту.
MQTT является двунаправленным и поддерживает информацию о сеансе с отслеживанием состояния. Если устройство на границе сети теряет связь, все подписанные клиенты будут уведомлены с помощью функции «Последняя воля и завещание» сервера MQTT, чтобы любой авторизованный клиент в системе мог опубликовать новое значение обратно на границу сети. сетевое устройство, поддерживающее двунаправленное соединение.
Проект разделен на 3 части.
Во-первых, мы создаем MQTT-сервер на RPi и устанавливаем некоторые библиотеки.
Во-вторых, мы установим библиотеки в Arduino IDE для NodeMCU для работы с MQTT, загрузим код и проверим, работает сервер или нет.
Наконец, мы создаем скрипт в Rpi, загружаем требуемый код в NodeMCU и запускаем скрипт python для управления светодиодами как со стороны сервера, так и со стороны клиента. Здесь сервер - это RPi, а клиент - это NodeMCU.
Шаг 2: Raspberry Pi
1. Чтобы установить последнюю версию MQTT-сервера и клиента в RPi, чтобы использовать новый репозиторий, вы должны сначала импортировать ключ подписи пакета репозитория.
wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key добавить mosquitto-repo.gpg.key
2. Сделайте репозиторий доступным для apt.
cd /etc/apt/sources.list.d/
3. В зависимости от того, какую версию Debian вы используете.
sudo wget https://repo.mosquitto.org/debian/mosquitto-wheezy.listsudo wget
sudo wget
sudo apt-get update
4. Установите сервер Mosquitto с помощью команды.
sudo apt-get install mosquitto
Если вы получаете такие ошибки при установке Mosquitto.
#################################################################
Следующие пакеты имеют неудовлетворенные зависимости: mosquitto: Зависит от: libssl1.0.0 (> = 1.0.1), но он не может быть установлен Зависит: libwebsockets3 (> = 1.2), но не может быть установлен E: Не удалось исправить проблемы, вы считали сломанным пакеты.
#################################################################
Затем используйте эту команду, чтобы исправить проблемы.
sudo apt --fix-broken install
5. После установки сервера MQTT установите клиент с помощью команды
sudo apt-get install mosquitto-clients
Вы можете проверить службы с помощью команды.
systemctl статус mosquitto.service
Как наш MQTT сервер и клиент установлен. Теперь мы можем проверить это с помощью подписки и публикации. Для подписки и публикации вы можете проверить команды или посетить веб-сайт, как указано ниже.
Mosquitto Sub
Москитто Паб
Чтобы установить библиотеку paho-mqtt, используйте команду ниже.
sudo pip установить paho-mqtt
Пахо
Шаг 3: Как настроить статический IP-адрес
Перейдите в каталог cd / etc и откройте файл dhcpcd.conf с помощью любого редактора. В конце напишите эти четыре строчки.
interface eth0 static ip_address = 192.168.1.100 // ip, который вы хотите использовать
интерфейс wlan0
статический ip_address = 192.168.1.68
static routers = 192.168.1.1 // ваш шлюз по умолчанию
статическое имя_домена_servers = 192.168.1.1
После этого сохраните его и перезагрузите свой пи.
Шаг 4: NodeMCU
Установите необходимые библиотеки в Arduino IDE для NodeMCU
1. Перейдите в Sketch ==> Включить библиотеку ==> Управление библиотеками.
2. Найдите mqtt и установите библиотеку от Adafruit, или вы можете установить любую библиотеку.
3. Это зависит от библиотеки sleepydog, поэтому нам тоже нужна эта библиотека.
Программа приведена выше, просто для проверки, работает она или нет. Здесь я не создавал ни одного скрипта в RPi. Мы просто используем команды для подписки и публикации. Мы создадим скрипт для управления позже.
mosquitto_pub -h raspberrypi -t "/ leds / pi" -m "ВКЛ"
mosquitto_pub -h raspberrypi -t "/ leds / pi" -m "ВЫКЛ"
mosquitto_pub -h raspberrypi -t "/ leds / pi" -m "ПЕРЕКЛЮЧИТЬ"
mosquitto_pub -h raspberrypi -t "/ leds / esp8266" -m "ВКЛ"
mosquitto_pub -h raspberrypi -t "/ leds / esp8266" -m "ВЫКЛ"
mosquitto_pub -h raspberrypi -t "/ leds / esp8266" -m "ПЕРЕКЛЮЧЕНИЕ"
-h ==> имя хоста-t ==> тема
-m ==> сообщение
После проверки программы Mqtt_check загрузите полную программу в NodeMCU
Шаг 5: скрипт Python
Как я уже говорил выше, нам нужен скрипт Python для управления светодиодами с помощью кнопок. Итак, мы собираемся создать скрипт. Скрипт приведен выше.
Когда вы запускаете скрипт, ваш скрипт должен выглядеть так, как показано на рисунке. Если код результата не равен нулю, это ошибка, вы можете проверить ошибку на веб-сайте paho.
Шаг 6: Подключения и принципиальная схема
Взаимодействие кнопки, светодиода с NodeMCU
NodeMCU ===> ButtonGnd ===> Земля
3,3 В ===> PIN1
GPIO4 (D2) ===> PIN2
NodeMCU ===> светодиод
Gnd ===> Катод (-ve)
GPIO5 (D1) ===> Анод (+ ve)
Взаимодействие кнопки, светодиода с RPi
RPi ===> ButtonGnd ===> PIN1
GPIO 23 ===> PIN2
RPi ===> светодиод
Gnd ==> Катод (-ve)
GPIO 24 ===> Анод (+ ve)
Шаг 7: Результат
Убедитесь, что ваш скрипт запущен, иначе он не сможет управлять светодиодом с помощью кнопок.
Рекомендуемые:
Сделай сам -- Как сделать робота-паука, которым можно управлять с помощью смартфона с помощью Arduino Uno: 6 шагов
Сделай сам || Как сделать робота-паука, которым можно управлять с помощью смартфона с помощью Arduino Uno: Создавая робота-паука, можно многое узнать о робототехнике. Например, создание роботов - это не только увлекательно, но и сложно. В этом видео мы покажем вам, как сделать робота-паука, которым мы можем управлять с помощью нашего смартфона (Androi
Управление домашним освещением с помощью Google Assistant с помощью Arduino: 7 шагов
Управляйте освещением дома с помощью Google Assistant с помощью Arduino: (Обновление от 22 августа 2020 г .: этому руководству 2 года, и он основан на некоторых сторонних приложениях. Любое изменение с их стороны может сделать этот проект неработающим. Это может или не может работать сейчас, но вы можете следовать ему как справочнику и изменять в соответствии с
Как сделать дрон с помощью Arduino UNO - Сделать квадрокоптер с помощью микроконтроллера: 8 шагов (с картинками)
Как сделать дрон с помощью Arduino UNO | Сделать квадрокоптер с помощью микроконтроллера: ВведениеПосетите мой канал на Youtube Дрон - очень дорогой гаджет (продукт) для покупки. В этом посте я собираюсь обсудить, как я могу сделать это дешево ?? И как вы можете сделать это своими руками по дешевой цене … Ну, в Индии все материалы (моторы, регуляторы
Управление сервоприводом с помощью MPU6050 между Arduino и ESP8266 с помощью HC-12: 6 шагов
Управление сервоприводом с помощью MPU6050 между Arduino и ESP8266 с помощью HC-12: в этом проекте мы контролируем положение серводвигателя с помощью mpu6050 и HC-12 для связи между Arduino UNO и ESP8266 NodeMCU
Обнаружение вторжений HiFive1 Arduino с помощью предупреждений MQTT с использованием ESP32 или ESP8266: 6 шагов
Обнаружение вторжений HiFive1 Arduino с помощью предупреждений MQTT с использованием ESP32 или ESP8266: HiFive1 - первая Arduino-совместимая плата на базе RISC-V, построенная с процессором FE310 от SiFive. Плата примерно в 20 раз быстрее, чем Arduino UNO, но, как и плата UNO, в ней отсутствует какое-либо беспроводное соединение. К счастью, есть несколько бесплатных