Съдържание:
- Консумативи
- Стъпка 1: Как работи?
- Стъпка 2: Какви са основните функции?
- Стъпка 3: Изграждане на материал
- Стъпка 4: Изтеглете кода на шлюза
- Стъпка 5: Нека направим конфигурацията на шлюза
- Стъпка 6: Изтеглете Примера за код на Arduino
- Стъпка 7: Да направим от страна на сървъра
- Стъпка 8: Да отидете по -нататък
Видео: Сериен UDP/IP шлюз за Arduino на базата на ESP8266 Shield: 8 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
Вече публикувах през 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 там на 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 връзката
Препоръчано:
Как да направите свой собствен WIFI шлюз за свързване на вашия Arduino към IP мрежа?: 11 стъпки (със снимки)
Как да направите свой собствен WIFI шлюз за свързване на вашия Arduino към IP мрежа?: Както много хора смятате, че Arduino е много добро решение за домашна автоматизация и роботизация! Но по отношение на комуникацията Arduinos идва само със серийни връзки. Работя върху робот, който трябва да бъде постоянно свързан със сървър, който работи
Превръщане на USB платки на базата на SAMD21 в хардуерен сериен порт!: 3 стъпки
Превръщането на USB платки на базата на SAMD21 в хардуерен сериен порт !: В днешно време е стандартно да се използва USB порт на Arduino (или всеки друг съвместим) борд като емулиран сериен порт. Това е много полезно за отстраняване на грешки, изпращане и получаване на данни от любимите ни дъски. Работих върху uChipкогато, преглеждайки данните
Промяна на Arduino ASCD 8x 18650 Smart Charger / Discharger за хардуерен хардуер ESP8266 Сериен: 4 стъпки
Променете Arduino ASCD 8x 18650 Smart Charger / Discharger за хардуерен сериен хардуер ESP8266: На печатна платка версия 2.0 и по -долу адаптерът ESP8266 Arduino има грешни щифтове, където не можете да използвате (комуникирате) с ESP8266 за безжична комуникация към портала Vortex It Battery. Тази модификация свързва адаптера ESP8266 Arduino към Har
Индукционен металдетектор на базата на Arduino на базата на DIY: 5 стъпки
DIY Ардуино базиран импулсен метален детектор: Това е сравнително прост металдетектор с отлични характеристики
15 $ LoRa шлюз/възел ESP8266 Изграждане на печатна платка 3cmX8cm Размер: 6 стъпки
15 $ LoRa Gateway/Node ESP8266 Build PCB 3cmX8cm Размер: Хей, какво има, момчета? Akarsh тук от CETech. Днес ще направим проект, който е прост възел LoRa и дори можете да го използвате като едноканален шлюз. Тук използваният от мен микроконтролер е ESP8266, който е свързан към платки LoRa