Съдържание:

Сериен UDP/IP шлюз за Arduino на базата на ESP8266 Shield: 8 стъпки
Сериен UDP/IP шлюз за Arduino на базата на ESP8266 Shield: 8 стъпки

Видео: Сериен UDP/IP шлюз за Arduino на базата на ESP8266 Shield: 8 стъпки

Видео: Сериен UDP/IP шлюз за Arduino на базата на ESP8266 Shield: 8 стъпки
Видео: Все про WebSockets (веб-сокеты) простыми словами 2024, Ноември
Anonim
Сериен UDP/IP шлюз за Arduino на базата на ESP8266 Shield
Сериен UDP/IP шлюз за Arduino на базата на ESP8266 Shield

Вече публикувах през 2016 г. тази инструкция „Как да направите свой собствен Wifi шлюз за свързване на вашия Arduino към IP мрежа“. Тъй като направих някои подобрения на кода и все още използвам това решение.

Независимо от това, сега има някои щитове ESP8266, които позволяват да се направи същото без запояване, стига да не използвате Micro или Nano платки.

Тази инструкция ще обясни как да използвате тези щитове ESP82 като сериен UDP/IP шлюз.

Това е част от глобална инфраструктура за домашна автоматизация, която можете да разгледате тук

Повече информация за щита с тази инструкция

Консумативи

1 Arduino Mega (най -добре е да имате поне 1 Mega за развитие и 1 Uno за фаза на работа)

1 Rokoo ESP8266 ESP-12E UART WIFI Convertisseur

1 FTDI 3.3v

2 проводника за макет

Стъпка 1: Как работи?

Как работи ?
Как работи ?

Шлюзът е базиран на модул ESP8266

Този модул е свързан от едната страна със серийна връзка от другата страна към IP мрежа с Wifi.

Той действа като черна кутия. Пакетите данни, идващи от серийната връзка, се изпращат към IP/Udp порт и обратно.

Просто трябва да зададете своя собствена конфигурация (IP, WIFI …) веднъж при първото включване на шлюза.

Той може да прехвърля или необработени ASCII и двоични данни (без HTTP, JSON …)

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

Стъпка 2: Какви са основните функции?

Най -често това е черна кутия, която преобразува серийни данни в UDP пакет по двата начина.

Но шлюзът може да действа и сам, като изпраща вътрешна информация до сървъра и получава някои команди от сървъра.

Arduino може да изпраща и получава съобщения към / от сървър, свързан през Интернет, само чрез отпечатване / четене на серийна връзка. Няма нужда разработчикът на Arduino да се притеснява от IP протокола.

На всичкото отгоре той осигурява GPIO, който може да се използва от Arduino, за да провери дали шлюзът е правилно свързан към WIFI и шлюзът може автоматично да прехвърли между два различни SSID в случай на повреда

Gateway има 2 различни режима на работа, които се избират чрез задаване на GPIO

Задаване на GPIO на земята и шлюзът влиза в режим на конфигуриране.

Освобождавайки GPIO и Gateway влиза в режим на работа на шлюза.

На всичкото отгоре конфигурацията на UDP/IP на Gateway може да се променя дистанционно

Стъпка 3: Изграждане на материал

Конструкция от материал
Конструкция от материал

Изискват се много малко неща

1 ESP8266 щит - Намерих този модул за разширяване на платката UNO R3 ESP8266 за сериен WiFi щит на по -малко от 9 €

1 UNO, което е целта на Arduino

1 Мега, който е инструментът за разработка на arduino (можете и без, но е доста трудно да се отстранят грешки)

1 FTDI 3.3/5v за развитие

Някои проводници

Стъпка 4: Изтеглете кода на шлюза

Изтеглете кода на шлюза
Изтеглете кода на шлюза

По време на тази стъпка Arduino се използва само за захранване (с USB или друг източник на захранване) на щита ESP8266

Свържете ESP8266 GPIO4 към земята (за да влезете в режим на конфигуриране)

Внимавайте да настроите FTDI на 3.3v, както се изисква от щита

Свържете FTDI към щита (RX към TX)

Задайте превключвателя за щит на 1: изключен 2: изключен 3: включен 4: включен

Свържете USB страната на FTDI към компютъра

Нулирайте щита с бутон ESP-RST

Изтеглете кода на Gateway там на GitHub

Отворете Arduino IDE

  • Изберете порта за монитор на FTDI
  • Отворете IDE Serial Monitor - Задайте скорост на 38400
  • Изберете Обща модулна платка ES8266
  • Надстройте фърмуера на щита с кода на шлюза

Задайте превключвател 3: изключен 4: изключен

Отворете IDE Serial Monitor

Нулирайте щита с бутон ESP-RST

Трябва да видите съобщения на монитора, започващи с „Инициализация на EEPROM“„Инициализация завършена“….

Време е да направите конфигурацията

Стъпка 5: Нека направим конфигурацията на шлюза

Когато изтегляте кода на шлюза за първи път, ESP8266 Eeprom ще бъде инициализиран със стойностите по подразбиране. Ще видите този вид съобщения "set parameter: x size: yy"

Можете да намерите тези стойности в дефиницията на кода на paramValue. Разбира се, можете да промените тези стойности по подразбиране, преди да изтеглите кода, но можете също да зададете вашата конфигурация чрез команда по -късно. Това е по -добре, ако планирате да имате многостранен шлюз и да запазите само една версия на кода.

Използвайте серийния порт на монитора, за да изпратите команда (зададена на NL и CR).

Тъй като SSID в момента не е дефиниран, изчакайте „Не може да се свърже с вашия втори повторен опит: 5“

След това автоматично ще започне сканиране на WIFI

Време е да зададете вашите SSID със следните команди:

  • SSID1 = вашият избор1
  • PSW1 = yourpsw1
  • SSID2 = вашият избор2
  • PSW2 = yourpsw2
  • SSID = 1 (за да изберете с кой SSID да започнете)
  • Рестартирайте Wifi

След няколко секунди можете да проверите връзката с командата "ShowWifi". Трябва да видите IP адреса, който шлюзът е получил от вашия DNS сървър. Ако случаят е такъв, е време да отидете по -нататък

Време е да определите адреса на вашия IP сървър, като въведете 4 -те подадреса (сървър, който ще изпълнява тестовия код на Java). Например:

  • "IP1 = 192"
  • "IP2 = 168"
  • "IP3 = 1"
  • "IP4 = 10"

Като изпратите празна команда, ще видите всички поддържани команди, които можете да използвате по -късно, за да отговарят на вашите изисквания. Всички стойности на параметрите се съхраняват в Eeprom и се нуждаят от рестартиране, за да бъдат взети под внимание.

Премахнете конфигурационния проводник

Щитът сега работи като портал

Стъпка 6: Изтеглете Примера за код на Arduino

Изтеглете Примера за код на Arduino
Изтеглете Примера за код на Arduino

Първо изтеглете основния код на Arduino там на GitHub

След това изтеглете кода на Arduino, дефинирането на тези команди и този код на серийна връзка във вашите библиотеки

След това отворете основния код с нова Arduino IDE

Изключете щитовите превключватели 1 и 2, за да освободите серийната връзка Arduino 0 за USB връзка

Нулирайте щита

Свържете проводниците FTDI към Mega Serial 2 (TX FTDI към RX Mega и така нататък)

Стартирайте нова Arduino IDE (или TTY инструмент), свържете FTDI Usb и започнете да наблюдавате серийната връзка

Качете кода на Arduino вътре в Mega

Включете щитовите превключватели 1 и 2, за да свържете серийната връзка на Arduino 0

Нулирайте щита

Трябва да видите това съобщение „стартиране на USB печат“на монитора

Стъпка 7: Да направим от страна на сървъра

Примерът за сървър е Java програма, която можете да изтеглите тук на GitHub

Просто го стартирайте и погледнете конзолата Java и погледнете FTDI монитора

Ще видите обмен на данни между сървър и Arduino

Стъпка 8: Да отидете по -нататък

Да отидете по -нататък
Да отидете по -нататък
Да отидете по -нататък
Да отидете по -нататък

Този пример за код на Arduino се основава на рамкова част от моята инфраструктура за домашна автоматизация.

Ако се интересувате от тази инфраструктура, уведомете ме. Ще публикувам източници.

Ако просто искате да използвате шлюза, можете да опростите кода на Arduino.

След като сте разработили и тествали кода си на Arduino Mega, можете лесно да го замените с Uno!

На всичкото отгоре можете да свържете проводник между Arduino GPIO 7 и ESP8266 GPIO 5, ако искате вашият Arduino да проверява Wifi връзката

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