Съдържание:

Raspberry Pi Говори с ESP8266 Използване на MQTT: 8 стъпки
Raspberry Pi Говори с ESP8266 Използване на MQTT: 8 стъпки

Видео: Raspberry Pi Говори с ESP8266 Използване на MQTT: 8 стъпки

Видео: Raspberry Pi Говори с ESP8266 Използване на MQTT: 8 стъпки
Видео: Home Assistant - подключаем адресную ленту WS2812B через ESP8266 с прошивкой WLED 2024, Юли
Anonim
Raspberry Pi разговаря с ESP8266 с помощта на MQTT
Raspberry Pi разговаря с ESP8266 с помощта на MQTT

В този проект ще обясня какво представлява протоколът MQTT и как се използва за комуникация между устройствата, а след това, като практическа демонстрация, ще демонстрирам как да настроя система клиент и брокер, където модул ESP8266, както и RPi говорят един на друг или изпратете съобщение при натискане на бутон.

Необходим материал

1. Малина Пи 3

2. NodeMCU

3. LED

4. Бутон

5. Резистори (10k, 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 инсталирайте комар

Ако получавате грешки при инсталирането на Mosquitto по този начин.

#################################################################

Следните пакети имат неудовлетворени зависимости: mosquitto: Зависи: libssl1.0.0 (> = 1.0.1), но не може да се инсталира Зависи: libwebsockets3 (> = 1.2), но не се инсталира E: Невъзможност за коригиране на проблеми. пакети.

#################################################################

След това използвайте тази команда за отстраняване на проблеми.

sudo apt-fix-broken install

5. След като инсталирате MQTT сървър, инсталирайте клиента, като използвате команда

sudo apt-get инсталирайте клиенти на комари

Можете да проверите услугите чрез команда.

systemctl статус mosquitto.service

Тъй като нашият MQTT сървър и клиент са инсталирани. Сега можем да го проверим с абониране и публикуване. За абониране и публикуване можете да проверите команди или да посетите уебсайта, както е дадено по -долу.

Mosquitto Sub

Кръчма Mosquitto

За да инсталирате библиотеката paho-mqtt използвайте командата по-долу.

sudo pip инсталирайте paho-mqtt

Пахо

Стъпка 3: Как да настроите статичен IP адрес

Как да настроите статичен IP адрес
Как да настроите статичен IP адрес

Отидете в директорията cd /etc и отворете файла dhcpcd.conf с помощта на всеки редактор. В края напишете тези четири реда.

интерфейс eth0 static ip_address = 192.168.1.100 // ip, който искате да използвате

интерфейс wlan0

статичен ip_address = 192.168.1.68

статични рутери = 192.168.1.1 // вашият шлюз по подразбиране

статични сървъри на име на домейн = 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 "ON"

mosquitto_pub -h raspberrypi -t "/leds/pi" -m "OFF"

mosquitto_pub -h raspberrypi -t "/leds/pi" -m "TOGGLE"

mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "ON"

mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "OFF"

mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "TOGGLE"

-h ==> име на хост-t ==> тема

-m ==> съобщение

След като проверите програмата Mqtt_check, качете цялата програма в NodeMCU

Стъпка 5: Python скрипт

Python скрипт
Python скрипт
Python скрипт
Python скрипт

Както споменах по -горе, имаме нужда от скрипт на python за управление на светодиоди с помощта на бутони. И така, ще създадем скрипт. Сценарият е даден по -горе.

Когато стартирате скрипта, вашият скрипт трябва да изглежда така, както е показано на изображението, ако кодът на резултата не е нула, това е грешка, която можете да проверите за грешка на уебсайта на paho.

Стъпка 6: Връзки и електрическа схема

Връзки и електрическа схема
Връзки и електрическа схема
Връзки и електрическа схема
Връзки и електрическа схема

Свързване на бутон, LED с NodeMCU

NodeMCU ===> ButtonGnd ===> Gnd

3.3V ===> PIN1

GPIO4 (D2) ===> ПИН2

NodeMCU ===> LED

Gnd ===> Катод (-ve)

GPIO5 (D1) ===> Анод (+ve)

Свързване на бутон, LED с RPi

RPi ===> ButtonGnd ===> PIN1

GPIO 23 ===> ПИН2

RPi ===> LED

Gnd ==> Катод (-ve)

GPIO 24 ===> Анод (+ve)

Стъпка 7: Резултат

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

Уверете се, че скриптът ви работи, в противен случай той няма да може да контролира светодиодите с помощта на бутони.

Препоръчано: