Оглавление:

Raspberry Pi разговаривает с ESP8266 с помощью MQTT: 8 шагов
Raspberry Pi разговаривает с ESP8266 с помощью MQTT: 8 шагов

Видео: Raspberry Pi разговаривает с ESP8266 с помощью MQTT: 8 шагов

Видео: Raspberry Pi разговаривает с ESP8266 с помощью MQTT: 8 шагов
Видео: Esp8266 MQTT: управляемое с сервера устройство за 5 минут 2024, Ноябрь
Anonim
Raspberry Pi разговаривает с ESP8266 с помощью MQTT
Raspberry Pi разговаривает с ESP8266 с помощью MQTT

В этом проекте я объясню, что такое протокол 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

Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
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-адрес

Как настроить статический IP-адрес
Как настроить статический 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

NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
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
Скрипт Python
Скрипт Python
Скрипт 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: Результат

Image
Image
Результат
Результат

Убедитесь, что ваш скрипт запущен, иначе он не сможет управлять светодиодом с помощью кнопок.

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