Съдържание:

По -евтин WiFi щит ESP8266 за Arduino и други микро: 6 стъпки (със снимки)
По -евтин WiFi щит ESP8266 за Arduino и други микро: 6 стъпки (със снимки)

Видео: По -евтин WiFi щит ESP8266 за Arduino и други микро: 6 стъпки (със снимки)

Видео: По -евтин WiFi щит ESP8266 за Arduino и други микро: 6 стъпки (със снимки)
Видео: Как использовать ESP32 WiFi и Bluetooth с Arduino IDE, полная информация с примерами и кодом. 2024, Юли
Anonim
По -евтин WiFi щит ESP8266 за Arduino и други микро
По -евтин WiFi щит ESP8266 за Arduino и други микро
По -евтин WiFi щит ESP8266 за Arduino и други микро
По -евтин WiFi щит ESP8266 за Arduino и други микро

Актуализация: 29 октомври 2020 г

Тествано с ESP8266 бордова библиотека V2.7.4 - работи

Актуализация: 23 септември 2016 г

Не използвайте дънната библиотека на Arduino ESP V2.3.0 за този проект. V2.2.0 работи

Актуализация: 19 май 2016 г

Ред. 14 от този проект преразглежда библиотеките и кода за работа с ESP8266.com IDE плъгин V2.2

Актуализация: 17 декември 2105 г

Ред. 11 от този проект изчиства други опитани връзки, ако вече е свързан. Използва и времето за изчакване, зададено от уеб конфигурацията. Ред. 10 игнорира настройката за изчакване.

Актуализация: 11 ноември 2015 г

Това е Rev 10 от този проект. Rev 10 използва неблокираща WiFi библиотека, pfodESP8266WiFi, която намалява до по-високо чрез пускане, особено за клиенти на Windows. Той също така позволява конфигуриране на уеб страница със серийната скорост на предаване.

Актуализация: 23 октомври 2015 г

Това е Rev 8 от този проект. Rev 8 е подобрил ESP8266 код, който е по -надежден. БЕЛЕЖКА: Всеки изпратен пакет спира този код, докато приемникът (клиентът) не потвърди пакета. Това може да отнеме между 10mS и 200mS. През това време входящите серийни данни от UART не се обработват. Входящият сериен буфер може да буферира 256 байта. При 9600 бода са необходими около 270 mS за запълване на буфера, така че докато поддържате серийната скорост на предаване на 9600 или по -малко, не трябва да губите изходящи данни, докато ESP8266 изпраща предишния пакет. Това ви осигурява добра WiFi връзка. Ако WiFi връзката е лоша, пакетът може да бъде загубен и трябва да бъде препратен отново от ESP826, тогава входящият буфер на серийния сигнал може да се запълни, ако се опитвате да изпратите много данни и някои от вашите данни да бъдат загубени.

Актуализация: 20 септември 2015 г

Това е Rev 3 от този проект. Rev 3 добавя настройка за изчакване на връзката към конфигурацията на уеб страницата. Ако няма изпращане или получаване на данни през това време, WiFi Shield затваря връзката и изчаква нова. Това гарантира, че WiFi Shield се възстановява от „наполовина затворени“връзки, които се случват, когато клиентът просто изчезне поради лоша wifi връзка, загуба на енергия в рутера или принудително изключване на клиента. Вижте Откриване на полуотворени (пуснати) TCP/IP гнездо на връзки за повече подробности.

Това време за изчакване на връзката по подразбиране е 15 сек. но може да се променя според нуждите. Задаването на 0 означава никога не изчакване. Когато използвате pfodDesigner, задайте опресняване на менюто, което е по -малко от изчакването на връзката.

Въведение

Това е Rev 11 на ESP8266-01 WiFi Shield и е алтернатива на Cheap/Simple Wifi Shield за Arduino и други микро. Ако правите само един Wifi щит, тогава евтиният/прост Wifi щит за Arduino и други микро е проектът за използване, тъй като е най -лесният за свързване. Ако обаче вече имате модул ESP8266-01, можете да използвате тези инструкции, за да направите WiFi щит, който го използва.

Ако имате един от другите голи модули ESP8266, при условие че модулът има налични GPIO0 и GPIO2, тогава можете да използвате тези инструкции. Ако модулът прави GPIO15 достъпен, ТРЯБВА да го свържете към GND чрез резистор със стойност между 3K3 и 10K

Rev 10 не се нуждае от допълнителни I/O на платката Arduino, освен TX/RX и 5V захранване и GND. Rev 10 използва GPIO0 и GPIO2 като ConfigLink, както е описано на тази страница, ESP8266-01 Pin Magic. Също така кодовите скици, използвани в Rev10, сега са абсолютно същите при тези, използвани в Cheap/Simple Wifi Shield за Arduino и други микро. Той също така замества дъщерната платка за захранване от 5V до 3V с 3 дискретни компонента и използва резисторна мрежа за петте 3K3 резистора. Първата версия Rev 1 е тук.

Тези инструкции също са достъпни на www.pfod.com.au.

Характеристика

  • Използва евтиния и лесно достъпен модул ESP8266-01:- Могат да се използват и други модули ESP8266
  • Лесен за използване:- 5V и 3.3V съвместим щит действа като UART към WiFi мост. Той настройва сървър на IP и порт, който конфигурирате, и след като се свърже, просто предава данни към и от серийната връзка. Не са необходими библиотеки във свързващия микрофон, а само серийна (UART) връзка, така че може да се използва за всеки микропроцесор, който има сериен порт. Той може също да бъде променен, за да бъде конфигуриран да прави клиентска връзка (с незадължително влизане) към отдалечен сървър.
  • Лесен за конфигуриране:- Съкращаване на връзка и захранване на щита, поставя го в режим на конфигуриране. В този режим той създава защитена точка за достъп, с която можете да се свържете чрез вашия мобилен телефон или компютър. След това отварянето на https://10.1.1.1 представя уеб страница, където можете да конфигурирате името и паролата на вашата мрежа и IP адреса и номера на порта, на който щитът трябва да слуша за връзки. Уеб страницата за конфигуриране използва HTML5 валидиране, за да провери настройките на потребителя.

Стъпка 1: Списък на частите

Този ESP8266-01 WiFi щит се нуждае от следните части или подобни. Показаните тук цени са към 30 август 2015 г. и не включват разходите за доставка:-

  • WiFi модул ESP8266-01-~ 2,50 щ.д. онлайн (рискувайте) ИЛИ за надежден продукт SparkFun или Adafruit ESP8266-01-6,95 щ.д.
  • Uno Protoshield - US $ 1.88 (или ProtoShield Basic за Arduino от Jaycar AU $ 4.95)
  • 36-пинов хедър Element14-0,95 щ.д. (или 4 отстъпки без запояване-10-пинов направо от SparkFun 1,50 щ.д.
  • LD1117V33 3.3V регулатор Element14 - 0,67 щ.д.
  • 1 от 1N5819 Диоден елемент на Шотки 14 - 0,16 щ.д. (или Jaycar 0 0,80 щ.д.) (всеки диод на Шотки е подходящ)
  • BOURNS 4606X-101-332LF РЕЗИСТОРНА МРЕЖА, 3K3-0,27 щ.д. (Тези издърпващи се резистори могат да бъдат с всякаква стойност в диапазона от 3K3 до 10K), вместо това можете просто да използвате 5 x дискретни 3K3 резистори, както в Rev 1, напр. 3K3 резистори - Digikey - US $ 0.52 (или 3K3ohm 1/2 Watt 1% метални филмови резистори - Pk.8 от Jaycar AU $ 0.55)
  • 1 off 330R резистор Element14 US $ 0.05 ИЛИ Sparkfun Resistor 330 Ohm 1/6 Watth PTH - 20 опаковка US $ 0.95 (или 330ohm 1/2 Watt 1% Metal Film Resistors - Pk.8 от Jaycar AU $ 0.55)

  • 1 от 0,1uF кондензатор Element14 - 0,21 щ.д. ИЛИ Sparkfun 0,25 щ.д.
  • 1 от 10uF кондензатор Element14 - 0,11 щ.д. ИЛИ Sparkfun 0,45 щ.д.

Обща цена ~ $ 6,80 + доставка (към август 2015 г.) ИЛИ ~ US $ 11,25 с помощта на модул Sparkfun или Adafruit ESP8266-01

За да програмирате щита с конфигурация с бутон и UART към WiFi мостова програма, имате нужда и от USB към сериен кабел. Тук се използва USB към TTL сериен кабел на SparkFun (9,95 щ.д.), защото има хубаво маркирани краища и има поддръжка на драйвери за широк спектър от операционни системи, но можете също да използвате USB към TTL сериен кабел на Adafruit - кабел за отстраняване на грешки / конзоли за Raspberry Pi, който е същата цена.

Включително кабела за програмиране, цената само за един WiFi щит е ~ 16,75 щ.д. Бързо търсене намира Arduino WiFi Shield на цена от минимум 30 щатски долара до над 70 щатски долара. Така че дори и включването на еднократната цена на кабела за програмиране, този щит е по -евтин от другите налични щитове, както и много по -лесен за конфигуриране и използване.

Стъпка 2: Строителство

Строителство
Строителство
Строителство
Строителство
Строителство
Строителство

Горната схема (ESP8266_01_WiFi_Shield_R2.pdf) показва подреждането на частите, необходими за този щит. В допълнение към модула ESP8266-01 има само шест компонента.

Диодът 1N5819 защитава входа ESP8266-01 RX от 5V изходите на микропроцесора. Резисторът 330ohm (R6) осигурява защита срещу късо съединение на ESP8266-01 TX изхода, ако D1 на микропроцесора е случайно изведен. Необходимо е някакво захранване 3V3. 3V3 щифтът на Arduino UNO не е достатъчно здрав, за да захрани модула ESP2866. Тук се използва три терминален 5V до 3.3V регулатор LD1117V33. Кондензаторът 10uF е необходим за стабилизиране на регулатора LD1117V33, така че да се монтира възможно най -близо до изхода на регулатора.

Ето горния и долния изглед на завършената дъска.

Горната част на дъската изглежда чиста. Дъното на дъската е малко гнездо на плъхове.

Уверете се, че внимателно проверявате окабеляването, когато приключите, особено окабеляването към щифтовете на ESP8266-01 и тристепенния регулатор LD1117V33. Лесно е да свържете към грешен щифт, когато обърнете и окабелите отдолу. Регулаторът е монтиран с главата надолу, за да държи металния щифт, който е електрически свързан към изходния щифт, далеч от щифтовете на платката.

Стъпка 3: Програмиране на WiFi щита

Програмиране на WiFi Shield
Програмиране на WiFi Shield
Програмиране на WiFi Shield
Програмиране на WiFi Shield
Програмиране на WiFi Shield
Програмиране на WiFi Shield

WiFi Shield трябва да бъде програмиран веднъж, само и никога повече, с конфигурацията на уеб страницата и кода за сериен към WiFi мост.

За да програмирате щита, следвайте стъпките, дадени на https://github.com/esp8266/arduino под Инсталиране с мениджър на платки. При отваряне на Boards Manager от меню Tools → Board и изберете Type Contributed и инсталирайте платформата esp8266. Този проект е компилиран с помощта на ESP8266 версия 1.6.4-673-g8cd3697. По -късните версии биха били по -добри, но може да имат свои собствени грешки, тъй като платформата се развива бързо.

Затворете и отворете отново Arduino IDE и вече можете да изберете „Общ модул ESP8266“от Инструменти → Меню на борда.

Трябва също да инсталирате най-новата версия на pfodESP2866BufferedClient.zip Тази библиотека работи с ESP8266.com IDE плъгин V2.2. Ако преди това сте инсталирали библиотеката pfodESP2866WiFi, изтрийте тази директория на библиотеката напълно.

  1. Изтеглете този pfodESP2866BufferedClient.zip файл на вашия компютър, преместете го на работния плот или друга папка, която лесно можете да намерите
  2. След това използвайте опцията от менюто Arduino 1.6.5 IDE Sketch → Import Library → Add Library, за да я инсталирате. (Ако Arduino не ви позволява да го инсталирате, защото библиотеката вече съществува, намерете и изтрийте по -старата папка pfodESP8266BufferedClient и след това импортирайте тази)
  3. Спрете и рестартирайте Arduino IDE и под Файл-> Примери сега трябва да видите pfodESP8266BufferedClient.

Задаване на парола за точка за достъп за конфигуриране

След като инсталирате библиотеката pfodESP8266BufferedClient, отворете Arduino IDE и копирайте тази скица, ESP8266_WifiShield.ino, в IDE. Преди да програмирате щита, трябва да зададете своя собствена парола за точката за достъп за конфигуриране.

В режим на конфигуриране WiFi Shield настройва защитена точка за достъп, наречена pfodWifiWebConfig, с парола, съдържаща се в QR код, прикрепен към щита. Тази защитена връзка не позволява на никого да слуша вашата връзка, докато задавате ssid и парола на реалната си мрежа. Трябва да генерирате своя собствена парола за вашите щитове. Тук се предлага java програма SecretKeyGenerator, която генерира произволни 128 -битови ключове и изписва QR-p.webp

И в двата случая трябва да актуализирате #define в горната част на скицата със собствена парола.

// ================ начало на настройките на pfodWifiWebConfig ==============

// актуализирайте тази дефиниция с паролата от вашия QR код //https://www.forward.com.au/pfod/secureChallengeResponse/keyGenerator/index.html #define pfodWifiWebConfigPASSWORD "b0Ux9akSiwKkwCtcnjTnpWp"

Можете също да зададете свое собствено име на точка за достъп, ако желаете.

Програмиране на щита

За да програмирате щита, премахнете го от дъската на Arduino, изкъснете FLASH_LINK (показан тук със синя къса връзка в средата на платката) и свържете USB към сериен кабел, както е показано на снимката. Проверете снимката и кабелите си.

RX кабелът се свързва към D0, а TX кабелът се свързва към D1. VCC (+5V) се свързва към 5V щифта, а GND се свързва към щифта GND на щита. Изключете FLASH_LINK, както е показано по -горе. Снимката по -горе е за SparkFun USB към сериен кабел. Ако използвате кабела Adafruit, той няма маркирани терминали, но е с цветен код, червеното е захранване, черното е заземено, зеленото е TX и бялото е RX.

Внимателно проверете връзките VCC и GND, тъй като е лесно да изключите USB захранването, ако сте с един щифт

След това включете USB кабела към компютъра, за да включите ESP8266-01 в режим на програмиране. Изберете неговия COM порт в меню Инструменти → Порт. Оставете честотата на процесора, размера на светкавицата и скоростта на качване при настройките им по подразбиране

След това изберете Файл → Качване или използвайте бутона Стрелка надясно, за да компилирате и качите програмата. Качват се два файла. Ако получите съобщение за грешка при качването, проверете дали кабелните ви връзки са включени в правилните щифтове и опитайте отново. След като програмирането приключи, премахнете късата връзка от FLASH_LINK.

Прикачване на QR кода за конфигурация

Ще ви е необходима вашата уникална парола за точка за достъп за конфигуриране всеки път, когато трябва да конфигурирате щита, така че е удобно да го прикачите като QR код към щита (или кутията му). Ето файла за представяне на Open Office, използван за отпечатване на QR кода и подробности за връзката за този проект. Заменете QR кода и текста на паролата със своя уникална, за да завършите щита.

Стъпка 4: Конфигуриране на WiFi щита

Конфигуриране на WiFi Shield
Конфигуриране на WiFi Shield
Конфигуриране на WiFi Shield
Конфигуриране на WiFi Shield
Конфигуриране на WiFi Shield
Конфигуриране на WiFi Shield

Всеки WiFi щит трябва да бъде конфигуриран с името на мрежата и паролата на локалната мрежа. Също така трябва да му се даде IP и номер на порт, за да се слушат за връзки. Всички други WiFi щитове имат IP и порт, които не са кодирани твърдо в скицата и или кодирайте твърдо името и паролата на мрежата или използвайте патентован метод със собствени приложения за свързване към локалната мрежа. Това е много ограничително, когато имате няколко устройства в развиваща се среда. Този WiFi Shield използва метод с уеб страница с отворен код, за да конфигурира както мрежовото име и парола, така и IP адреса и номера на порта.

ESP8266-01 има много ограничен брой налични изходи, само GPIO0 и GPIO2. В този дизайн, след включване, кодът в ESP2866-01 проверява дали GPIO2 е заземен и ако е така, настройва ESP8266-01 в режим на конфигуриране. Заземяването на GPIO2 входа обаче трябва да се забави, докато ESP8266-01 не приключи захранването. Ако GPIO2 е заземен по време на захранване, модулът ESP8266-01 не се стартира нормално. Това забавяне при заземяване GPIO2 се постига чрез използване на GPIO0 като заземяване. След стартиране на ESP8266-01, кодът за настройка () прави GPIO0 изход и го задава LOW. Това ще заземи GPIO2, ако CONFIG_LINK е бил късо свързан.

Първата версия на този проект (Rev 1) използва допълнителен Arduino цифров вход/изход за това заземяване, което изисква допълнителен код в скицата на Arduino. Rev 2+, премахва необходимостта от допълнителен код в скицата на Arduino, освен кратко закъснение в горната част на setup (), за да се игнорира изходът за отстраняване на грешки на ESP8266.

За да изпробвате конфигурирането на ESP8266-01 WiFi Shield, просто го включете в платка Arduino, изкъснете CONFIG_LINK (синя връзка за късо съединение вляво на картината) и включете захранването към платката Arduino.

В този режим на конфигуриране модулът ESP8266 настройва защитена точка за достъп с името pfodWifiWebConfig. Тази точка за достъп ще се появи на вашия мобилен телефон и на вашия компютър. За да се свържете с тази точка за достъп, ще трябва да въведете уникалната парола за вашия щит. Можете да въведете паролата на ръка, но е по -лесно и по -надеждно да сканирате QR кода, който преди това сте прикрепили към щита си, като използвате приложение за скенер за QR, като QR Droid Private

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

След това отворете уеб браузър и въведете URL адреса https://10.1.1.1 Това ще върне конфигурационната уеб страница.

WiFi Shield автоматично попълва мрежовия SSID с локалната мрежа с най -добра сила на сигнала. Който обикновено ще бъде този, който искате. Ако не просто презапишете този запис. Трябва да въведете мрежов SSID и парола и портNo. Полето за IP адрес не е задължително. Ако оставите полето празно, WiFi Shield ще използва DHCP, за да получи своя IP адрес във вашата локална мрежа. Често е по -лесно да посочите конкретен IP адрес, за да можете лесно да се свържете с този щит.

Rev 10 също ви позволява да конфигурирате серийната скорост на предаване за този щит. По подразбиране е 19200, но примерите тук използват 9600, така че променете скоростта на предаване на 9600

Ако вашият браузър е съвместим с HTML5, уеб страницата ще потвърди въведените данни, преди да ги изпрати.

Когато щракнете върху бутона Конфигуриране, WiFi Shield ще обработи резултатите и ще ги съхрани в EEPROM и след това ще покаже страница за отговор, като тази по -горе, която ви казва да включите цикъла на захранване, за да се свържете с вашата мрежа.

Стъпка 5: Използване на WiFi Shield

Използване на WiFi Shield
Използване на WiFi Shield
Използване на WiFi Shield
Използване на WiFi Shield
Използване на WiFi Shield
Използване на WiFi Shield

В цялостен проект ще монтирате моментен бутон от външната страна на кутията на вашия проект, свързан към CONFIG_LINK, и инструктирате потребителя да натисне бутона и след това да включи устройството, за да влезе в режим на конфигуриране. Кодът, който сте заредили в ESP8266-01, също задвижва GPIO0 пина на ESP8266 НИСКО, когато модулът е в режим на конфигуриране, така че можете да свържете 270ohm резистор и LED между 3.3V шината и GPIO0 и да монтирате светодиода от външната страна на кутията, за да посочите на потребителя, че са в режим на конфигуриране.

Rev 10 също ви позволява да конфигурирате серийната скорост на предаване за този щит. По подразбиране е 19200, но примерите тук използват 9600, така че променете скоростта на предаване на 9600 на уеб страницата за конфигуриране по -горе

Както бе споменато по-горе, всяка скица, която зареждате във вашия Arduino или друг микропроцесор, се нуждае от кратко закъснение, за да пропусне изхода за отстраняване на грешки от модула ESP8266. Освен това, за да получавате и изпращате данни чрез WiFi, от вашата скица, просто четете и пишете на вашия сериен порт (свързан с D0, D1) на 9600 бода. Така че, за да игнорирате изхода за отстраняване на грешки на ESP8266, добавете към кратко забавяне в горната част на метода setup ()

void setup () {

забавяне (1000); // изчакайте тук за секунда, нека ESP8266 завърши включването // това също прескача изходния сигнал за отстраняване на грешки на WiFi Shield при включване // преди стартиране на серийната връзка. …. друг код за настройка тук

Примерът тук използва Arduino UNO, но можете да използвате всеки микропроцесор, базиран на 5V или 3.3V, който има UART. Ако използвате 3.3V микропроцесор, ще трябва да подадете 5V към захранването на WiFi Shield. Този 5V също ще бъде свързан към 5V щита на щита, така че трябва да проверите дали това е приемливо за микрото, към което включвате щита.

Като тест на този щит, pfodApp беше използван за включване и изключване на светодиода на Uno чрез WiFi. Първо pfodDesigner беше използван за проектиране на просто меню.

ЗАБЕЛЕЖКА: Най -новата версия на pfodApp изпраща съобщения keepAlive, така че wifi щитът да не изтече

След това кодът беше генериран за серийна връзка на 9600 бода и прехвърли файла на компютъра, като използва трансфер на wifi файлове.

Настройката на скицата () не трябваше да добавя забавянето (1000), тъй като pfod анализаторът игнорира всички знаци извън {}, но беше включен, защото се препоръчва за тази WiFi платка.

Пълната скица, ESP8266_UnoLedControl.ino е тук. Обърнете внимание, че няма специален WiFi код, скицата просто чете и записва на серийния изход.

Премахнете WiFi Shield, изберете Tools → Board → Uno в IDE на Arduino и програмирайте тази скица в UNO. ЗАБЕЛЕЖКА: трябва да премахнете WiFi щита, за да програмирате UNO, тъй като USB е свързан към TX/RX щифтовете на UNO.

Включете отново WiFi Shield, той автоматично ще се свърже с вашата локална мрежа и ще стартира сървър на порта, който сте конфигурирали. В pfodApp можете да настроите връзка за това устройство. Вижте pfodAppForAndroidGettingStarted.pdf за подробности.

След това се свържете, за да включите и изключите светодиода на Uno от вашия мобилен телефон с Android чрез wifi.

Това е свършено !!

Стъпка 6: Разширения за WiFi щита и заключения

Добавяне на поддръжка на клиенти

Както е представено тук, WiFi щитът може да бъде конфигуриран да работи като сървър, който слуша на определен IP и номер на порт. Въпреки това pfodWifiConfig също така осигурява поддръжка за съхраняване и извличане на клиентски настройки, както и настройки на сървъра. Така че, като добавите тези полета към уеб страницата за конфигуриране и запазите/заредите стойностите на клиента, можете също да използвате този WiFi Shield, за да се свържете с отдалечен сървър, с потребителско име и парола, и да качите данни там.

Добавяне на външен бутон за конфигуриране и светодиод

Както бе споменато по -горе, в реално приложение бихте монтирали моментен бутон от външната страна на кутията на вашия проект, свързан към CONFIG_LINK, и инструктирате потребителя да натисне бутона и след това да включи устройството, за да влезе в режим на конфигуриране. Кодът, който сте заредили в ESP8266-01, задвижва GPIO0 пина НИСКО, когато модулът е в режим на конфигуриране, така че можете да свържете 270ohm резистор и светодиод между 3.3V шината и GPIO0 и да монтирате светодиода от външната страна на кутията, за да посочете на потребителя, че са в режим на конфигуриране.

Заключение

Този Rev 2 на ESP8266-01 WiFi Shield използва евтиния и лесно достъпен модул ESP8266-01. Могат да се използват и други модули ESP8266.

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

Лесно е да се свързвате с всеки микро, който има UART и работи както с 5V, така и с 3.3V микропроцесори.

Не се изискват библиотеки за свързване към този щит. Той работи като прост сериен към WiFi мост.

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