Взех ръцете си от модули ESP8266 - 12E от продажба. От самото начало знаех само, че е подходящ за IOT - интернет на нещата. Същността на IoT е, че можете да свържете всяко устройство към интернет. Защо? Ами за да можете да получите информация напр. относно температурата, влажността, дали се съхранява в кутията, дали хладилникът е отворен и колко често, за колко време, за управление на централното отопление и много други. Модулът е малък, за да се използва в действително всяко съществуващо устройство.
Това е модул, който има Wifi модул с микропроцесор и проста памет. Той се свързва чрез сериен интерфейс. Според това описание той доста напомня на друга добре позната дъска за изграждане на прототипи - arduino. И не случайно. Програмираната среда на Arduino IDE е модифицирана, така че програмите да могат да се зареждат в модули ESP. Самият ESP модул се различава от Arduino не само по това, че няма USB порт, а само серийна линия, но и по начина на зареждане на програмата. Модулът ESP има стандартен режим, в който се зарежда, когато захранването е свързано, и режим на програмиране, в който се зарежда след свързване на захранването. Захранващото напрежение за ESP е 3.3V! Също така, сигналите на IO щифтовете използват логическа стойност от 0-3.3V. Прилагането на 5V към захранването или към някои входове ще повреди самия ESP модул. За тези модули има специфична консумация, която те обикновено имат и може да достигне до 800mA. Следователно по време на програмирането и разполагането трябва да се осигури достатъчно оразмерен източник. Често обикновен USB порт от компютър/преносим компютър не е достатъчен за работа или програмиране. Тези USB портове са в състояние да доставят максимум 500mA (и това ще отнеме нещо с конвертора/arduino).

На снимката по-горе е показана връзката ESP12E, според която тя ще премине в стандартен режим след свързване на захранването. Ако свържем захранването, докато натискаме бутона S1, ESP ще се зареди в режим на програмиране и ние можем да заредим програмата чрез свързаните IDD щифтове TXD и RXD чрез arduino IDE.
В интернет има много инструкции как да качите програма в ESP с помощта на USB-TTL конвертори. Възможно е също да запишете програма с помощта на платка arduino. Няма значение кой ще изберете, дали е arduino uno, nano или mega.
Просто свържете RXD на ESP с RXD на платката arduino, както и TXD щифтовете. ВНИМАНИЕ! не обратното. Връзката между RX към TX и TX към RX не е правилна и записът с такава връзка няма да успее. Тогава всичко, което трябва да направите, е да инсталирате платката чрез мениджъра на дъската в IDE на arduino и програмата се зарежда по същия начин, както в платката arduino. Необходимо е обаче да се обърне внимание на правилния избор на платката и допълнителните параметри на модула. Използвах параметрите на снимката за моите модули ESP12 и те могат да бъдат използвани за първоначалната настройка.
Настройки на параметрите на модула ESP-12E
Ще добавя едно от знанията си от работата с тези модули. Ако използвате прекъсвания (външни или вътрешни), функциите за обработка на тези прекъсвания трябва да бъдат дефинирани като "void ICACHE_RAM_ATTR function ();". Това всъщност е оперативните функции да бъдат в частта на ICACHE RAM, а не във Flash частта. Без тази дефиниция прекъсването ще доведе до постоянно нулиране и модулът няма да зареди или стартира заредената програма.
Тествах arduino на прототипна платка заедно със сензор DHT22, който измерва влажността и температурата на въздуха. Заедно с библиотеката на thingspeak тези данни редовно се качват на отдалечен сървър на thingspeak, където мога да ги преглеждам или да ги обработвам допълнително чрез уебсайт или мобилно приложение. В Google Play има много приложения, които поддържат сървъра thingspeak. Сървърът Thingspeak е проектиран специално за тези IoT приложения. Разбира се, има и други подобни сървъри, изберете ги само за вас.
ESP12E на прототипна платка и DHT22 сензор.