Мазмуну:

Raspberry Pi MQTT колдонуу менен ESP8266 менен сүйлөшүүдө: 8 кадам
Raspberry Pi MQTT колдонуу менен ESP8266 менен сүйлөшүүдө: 8 кадам

Video: Raspberry Pi MQTT колдонуу менен ESP8266 менен сүйлөшүүдө: 8 кадам

Video: Raspberry Pi MQTT колдонуу менен ESP8266 менен сүйлөшүүдө: 8 кадам
Video: Как сделать 2-канальное реле Wi-Fi ESP8266 ESP-01 | ESP-01 Домашняя автоматизация | УдаленныйXY 2024, Июль
Anonim
Raspberry Pi MQTT колдонуу менен ESP8266 менен сүйлөшүүдө
Raspberry Pi MQTT колдонуу менен ESP8266 менен сүйлөшүүдө

Бул долбоордо мен MQTT протоколу деген эмне экенин жана ал түзмөктөрдүн ортосунда кантип байланышуу үчүн колдонулаарын түшүндүрөм, андан кийин практикалык демонстрация катары мен ESP8266 модулу, ошондой эле RPi сүйлөшүүсү болгон кардар менен брокер системасын кантип орнотууну көрсөтөм. бири -бирине же баскыч басылганда билдирүү жөнөтүү.

Материал талап кылынат

1. Raspberry Pi 3

2. NodeMCU

3. LED

4. Баскыч

5. Резисторлор (10k, 475 ом)

1 -кадам: MQTT деген эмне жана ал кантип иштейт

MQTT

MQTT-бул машинадан машинага (M2M) маалыматтарды берүү протоколу. MQTT көптөгөн түзмөктөрдөн маалыматтарды чогултуу жана андан кийин ал инфраструктурага жеткирүү максатында түзүлгөн. Бул жеңил, ошондуктан алыскы мониторинг үчүн идеалдуу, айрыкча кичинекей коддун изин талап кылган же тармактын өткөрүү жөндөмдүүлүгү чектелген M2M туташууларында.

MQTT кантип иштейт

MQTT-бул тармактын четки түзмөктөрүнө брокерге жарыялоого мүмкүндүк берүүчү жарыялоо/жазылуу протоколу. Кардарлар бул брокерге туташат, ал эки түзмөктүн ортосундагы байланышты ортомчу кылат. Ар бир түзмөк белгилүү темаларга жазылып же каттала алат. Башка кардар жазылган тема боюнча билдирүү жарыялаганда, брокер ал катты каалаган кардарга жөнөтөт.

MQTT эки багыттуу болуп саналат жана мамлекеттик сессиянын маалымдуулугун сактайт. Эгерде тармактын четиндеги түзмөк туташуусун жоготсо, бардык жазылган кардарларга MQTT серверинин "Акыркы керээз жана керээз" өзгөчөлүгү кабарланат, ошондо системанын ыйгарым укуктуу кардары жаңы бааны кайра четине жарыялай алат. тармак түзмөгү, эки тараптуу байланышты сактоо.

Долбоор 3 бөлүккө бөлүнгөн

Биринчиден, биз RPiде MQTT серверин түзөбүз жана кээ бир китепканаларды орнотобуз.

Экинчиден, MQTT менен иштөө үчүн NodeMCU үчүн Arduino IDEдеги китепканаларды орнотобуз, кодду жүктөп, сервердин иштеп жаткандыгын текшеребиз.

Акыр -аягы, биз Rpiде сценарий түзөбүз, NodeMCUге керектүү кодду жүктөйбүз жана серверди да, кардарды да леддерди башкаруу үчүн питон скриптин иштетебиз. Бул жерде сервер 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 апт-ачкыч кошуу mosquitto-repo.gpg.key

2. Репозиторийди ылайыктуу кылуу.

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 орнотууда мындай каталар пайда болсо.

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

Төмөнкү пакеттерде канааттандырылбаган көз карандылыктар бар: чиркей: Көз каранды: libssl1.0.0 (> = 1.0.1), бирок аны орнотуу мүмкүн эмес Көз каранды: libwebsockets3 (> = 1.2), бирок аны орнотуу мүмкүн эмес E: Проблемаларды оңдоо мүмкүн эмес, сиз бузулдуңуз пакеттер.

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

Андан кийин көйгөйлөрдү чечүү үчүн бул буйрукту колдонуңуз.

sudo apt-оңдоо-бузулган орнотуу

5. MQTT серверин орноткондон кийин, буйрукту колдонуп кардарды орнотуңуз

sudo apt-get чиркей-кардарларды орнотуңуз

Сиз буйрукту колдонуу менен кызматтарды текшере аласыз.

systemctl абалы чиркей.кызмат

Биздин MQTT сервер жана кардар орнотулгандыктан. Эми биз аны жазылуу жана жарыялоо аркылуу текшере алабыз. Жазылуу жана жарыялоо үчүн сиз буйруктарды текшере аласыз же төмөндө көрсөтүлгөн вебсайтка кире аласыз.

Mosquitto Sub

Mosquitto Pub

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 // сиздин демейки шлюзуңуз

static domain_name_servers = 192.168.1.1

Андан кийин аны сактап, пиңизди кайра жүктөңүз.

4 -кадам: NodeMCU

NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU

NodeMCU үчүн Arduino IDEге керектүү китепканаларды орнотуңуз

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 Script

Python Script
Python Script
Python Script
Python Script

Мен жогоруда талкуулаганымдай, кнопкаларды колдонуу менен леддерди көзөмөлдөө үчүн питон скрипти керек. Ошентип, биз скрипт түзөбүз. Скрипт жогоруда берилген.

Сценарийди иштеткенде, сценарийиңиз сүрөттө көрсөтүлгөндөй болушу керек, эгерде натыйжа коду нөлгө барабар болбосо, анда алар ката болуп саналат, сиз paho вебсайтындагы катаны текшере аласыз.

6 -кадам: Байланыштар жана Райондук диаграмма

Байланыштар жана схема
Байланыштар жана схема
Байланыштар жана схема
Байланыштар жана схема

Баскычтын интерфейси, NodeMCU менен LED

NodeMCU ===> ButtonGnd ===> Gnd

3.3V ===> PIN1

GPIO4 (D2) ===> PIN2

NodeMCU ===> LED

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

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

Баскычтын интерфейси, RPi менен LED

RPi ===> ButtonGnd ===> PIN1

GPIO 23 ===> PIN2

RPi ===> LED

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

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

7 -кадам: Жыйынтык

Image
Image
Жыйынтык
Жыйынтык

Скрипт иштеп жатканын текшериңиз, антпесе ал кнопкаларды колдонуу менен жетектөөнү башкара албайт.

Сунушталууда: