Съдържание:

Как да направите свой собствен WIFI шлюз за свързване на вашия Arduino към IP мрежа?: 11 стъпки (със снимки)
Как да направите свой собствен WIFI шлюз за свързване на вашия Arduino към IP мрежа?: 11 стъпки (със снимки)

Видео: Как да направите свой собствен WIFI шлюз за свързване на вашия Arduino към IP мрежа?: 11 стъпки (със снимки)

Видео: Как да направите свой собствен WIFI шлюз за свързване на вашия Arduino към IP мрежа?: 11 стъпки (със снимки)
Видео: We control addressable LEDs on ESP32, WLED firmware, use in Home Assistant 2024, Юли
Anonim
Как да направите свой собствен WIFI шлюз за свързване на вашия Arduino към IP мрежа?
Как да направите свой собствен WIFI шлюз за свързване на вашия Arduino към IP мрежа?

Както много хора смятате, че Arduino е много добро решение за домашна автоматизация и роботизация

Но по отношение на комуникацията Arduinos идва само със серийни връзки.

Работя върху робот, който трябва да бъде постоянно свързан със сървър, който работи с код за изкуствен интелект. Опитах се да използвам RF мрежа, както съм свикнал да правя за domotic, но не е достатъчно ефективен. Докато роботът се движи, не мога да използвам Ethernet Arduino Shield. Arduino Wifi Shield са скъпи и ми се струва стар дизайн.

Имах нужда от нещо, което може да обменя данни по много прост и ефективен начин със сървър.

Ето защо реших да проектирам Gateway на базата на много евтиния и енергийно ефективен микроконтролер ESP8266

Тук можете да намерите как да изградите електронния компонент и да изтеглите софтуера.

Използвах този шлюз за домашна автоматизация и за роботизиран.

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

Направих друга инструкция, която използва щит ESP8266 и избягва запояване

Консумативи

Написах друга инструкция по тази тема

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

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

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

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

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

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

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

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

Най -лесно е да се използва с Arduino Mega, който има повече от един UART (Arduino Mega например), но може да работи и с UNO.

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

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

Той има 3 светодиода, които показват състоянието и трафика на шлюза.

Той осигурява GPIO, който може да се използва от Arduino, за да изчака Gateway да бъде свързан с WIFI и IP.

Той работи в 3 различни режима, които се настройват с превключватели:

  • Нормален режим на шлюз
  • Конфигурационен режим, използван за задаване на параметрите
  • Режим на отстраняване на грешки, който е за режим на отстраняване на грешки

Повечето от параметрите могат да бъдат модифицирани според вашите нужди.

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

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

Отгоре на вашия Arduino ще ви трябва

  • 1 x модул ESP8266-Избирам MOD-WIFI-ESP8266-DEV от Olimex, който струва около 5 евро и е доста лесен за използване.
  • 1 x 5v източник на захранване
  • 1 x 3.3v регулатор на мощността - използвам LM1086
  • 1 х 100 микрофарад кондензатор
  • 1 x ULN2803 APG модул (може да бъде заменен с 3 x транзистора)
  • 8 x резистора (3 x 1K, 1 x 2K, 1 x 2.7k, 1x 3.3K, 1x 27K, 1x 33k)
  • 3 x LED (червено, зелено, синьо)
  • 1 x платка за платка
  • някои проводници и конектори

Само по време на строителните стъпки ще ви трябва

  • 1 x FTDI 3.3v за конфигурацията
  • Поялник и калай

Преди запояване е важно да настроите всички компоненти на макета и да проверите дали всичко е наред.

Стъпка 4: Нека започнем с електронното на макета

Нека започнем с електрониката на макета!
Нека започнем с електрониката на макета!

Електронното оформление се предлага във формат Fritzing

Можете да го изтеглите тук стъпка 1:

github.com/cuillerj/Esp8266IPSerialGateway/blob/master/GatewayElectronicStep1.fzz

Просто направете схемата, като внимавате за напрежението.

Не забравяйте, че ESP8266 не поддържа напрежение по -високо от 3.3v. FTDI трябва да бъде настроен на 3.3v.

Стъпка 5: Да преминем към софтуера

Нека да преминем към софтуера!
Нека да преминем към софтуера!

Нека започнем от страната на Gateway

Написах кода с Arduino IDE. Така че имате нужда от ESP8266, за да бъдете известни като борда от IDE. Изберете подходящата дъска с меню Инструменти / дъски.

Ако не виждате никакъв ESP266 в списъка, това означава, че може да се наложи да инсталирате ESP8266 Arduino Addon (тук можете да намерите процедурата).

Целият код, от който се нуждаете, е достъпен на GitHub. Време е да го изтеглите!

Основният код на шлюза е там:

Освен стандартните Arduino и ESP8266 включва основния код, от който се нуждаят тези 2 включва: LookFoString, който се използва за манипулиране на низове и е там:

ManageParamEeprom, който се използва за четене и съхраняване на параметри в Eeprom ans е там:

След като получите целия код, е време да го качите в ESP8266. Първо свържете FTDI към USB порт на вашия компютър.

Предлагам ви да проверите връзката, преди да опитате да качите.

  • Настройте серийния монитор на Arduino към новия USB порт.
  • Задайте скоростта на 115200 и двете cr nl (скорост по подразбиране за Olimex)
  • Включете чертежа (ESP8266 се предлага със софтуер, който се занимава с AT команди)
  • Изпратете „AT“със серийния инструмент.
  • В замяна трябва да получите „OK“.

Ако не проверите връзката си и вижте спецификациите на ESP8266.

Ако получите „OK“, вие сте готови да качите кода

  • Изключете чертежа, изчакайте няколко секунди,
  • натиснете черния микро-суич на ESP8266. Нормално е да получите малко боклук на серийния монитор.
  • Натиснете върху IDE за качване като за Arduino.
  • След приключване на качването задайте серийна скорост на 38400.

Ще видите нещо както е на снимката.

Поздравления, че успешно качихте кода!

Стъпка 6: Нека направим конфигурацията

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

ConfigGPIO трябва да бъде зададен на 1 за влизане в режим на конфигуриране

Първо сканирайте WIFI, като въведете командата: ScanWifi. Ще видите списък с откритата мрежа.

  • След това задайте своя SSID, като въведете „SSID1 = вашата мрежа“
  • След това задайте паролата си, като въведете „PSW1 = вашата парола“
  • След това въведете „SSID = 1“, за да определите текущата мрежа
  • Въведете „Рестартиране“, за да свържете Gateway към вашия WIFI.
  • Можете да потвърдите, че имате IP, като въведете „ShowWifi“.
  • Синият светодиод ще свети, а червеният ще мига.

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

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

Последната необходима стъпка е да настроите порта за слушане на UDP сървъра, като въведете „listenPort = xxxx“.

Въведете „ShowEeprom“, за да проверите какво току -що сте съхранили в Eeprom

Сега включете GPIO2 към земята, за да напуснете конфигурационния режим

Вашият шлюз е готов за работа

Има някои други команди, които можете да намерите в документацията.

Стъпка 7: Нека направим Arduino Side

Нека направим Arduino Side!
Нека направим Arduino Side!
Нека направим Arduino Side!
Нека направим Arduino Side!

Първо свържете Arduino

Ако имате Mega, ще бъде най -лесно да започнете. Въпреки това можете да използвате Uno.

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

Можете да го изтеглите от тук:

Той включва кода на SerialNetwork, който е тук:

Просто качете кода във вашия Arduino.

Зеленият светодиод мига всеки път, когато Arduino изпраща данни.

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

Да направим от страна на сървъра!
Да направим от страна на сървъра!
Да направим от страна на сървъра!
Да направим от страна на сървъра!

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

Просто го стартирайте

Погледнете конзолата на Java.

Погледнете монитора Arduino.

Arduino изпраща 2 различни пакета.

  • Първият съдържа състоянието на цифровите щифтове от 2 до 6.
  • Втората съдържа 2 случайни стойности, нивото на напрежение A0 в mV и инкрементален брой.

Програмата Java

  • отпечатайте получените данни в шестнадесетичен формат
  • отговорете на първия вид данни със случайна стойност за включване/изключване, за да включите/изключите светодиода Arduino
  • отговор на втория вид данни с полученото броене и случайна стойност.

Стъпка 9: Време е за запояване

Време е за запояване!
Време е за запояване!
Време е за запояване!
Време е за запояване!
Време е за запояване!
Време е за запояване!

Работи на макет!

Време е да го направите по -здрав чрез запояване на части върху печатна платка

Освен всичко, което сте направили с макета, трябва да добавите 3 конектора.

  • C1 1 x пин, който ще се използва за влизане в режим на проследяване на мрежата.
  • C2 3 x пина, който ще се използва за превключване между работещ и конфигурационен режим.
  • C3 6 x пина, който ще се използва за свързване на Gateway към Arduino или FTDI.

С1, свързан към GPIO2, трябва да бъде заземен ръчно, ако искате да активирате мрежовите следи.

C2, свързан към GPIO 4, може да бъде настроен в 2 различни позиции. Този, който е настроен на земята за нормален режим на работа и един, зададен на 3.3v за влизане в режим на конфигуриране.

Поставете всички компоненти на печатната платка според схемата и след това започнете да запоявате, за да получите крайния продукт!

Стъпка 10: Нека направим последния тест

Image
Image

Стартирайте тестовата програма на Java.

Свържете Arduino.

Захранване на шлюза.

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

Стъпка 11: Можете да адаптирате този дизайн към вашите собствени изисквания

Относно хардуера

  • Ако изберете друг ESP8266, ще трябва да се приспособите към спецификациите.
  • Ако изберете друг 3.3V регулатор, той трябва да достави над 500mA и ще трябва да адаптирате кондензатора.
  • Можете да промените LED резисторите, за да регулирате яркостта.
  • Можете да потиснете целия светодиод, но препоръчвам да запазите поне червеното включено.
  • Можете да замените ULN2803 с 3 транзистора (или по -малко аз избирате да не запазвате 3 светодиода).
  • Направих тест, но там трябва да работи с 3.3v Arduino платки. Просто свържете Tx Rx към конектора 3.3v.

Относно конфигурацията

  • Можете да съхранявате 2 различни SSID и да превключвате
  • Можете да промените използвания GPIO

Относно софтуера

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