ПредишенСледващото

Директно програмиране esp8266 WiFi, просто за забавление

ESP8266 е отговорът на въпроса: "Искам нещо с Wi-Fi». Въпреки това, съществуват редица инженери и ентусиасти, които не са чували за този чип или чували, но наистина не разбирам какво е то.

ESP8266 чип - процесор с вградена RAM, ROM, и Wi-Fi, външни тръбопроводи се състои от няколко евтини електронни компоненти. Това се отнася и за по-малко от $ 4! Или $ 5, ако искате да имате чип на борда носител, която включва всички необходими компоненти. Консумирана мощност 200 mA, възможно е разстоянието, на около 300м без допълнително оборудване, както и на антената и всички на 4 км.

Знайте желязо

Процесорът подразбиране тактова честота 80 MHz, което може да достигне до 160 MHz, чипът е 80 KB на RAM на DRAM и

35Kb високо Ирам.

По подразбиране, когато купувате тези карти, много от тях идват с «AT» фърмуера, което го прави лесен за използване ESP8266 като обикновен безжичен модем управлява чрез сериен порт. И често всичко това, както и за по-трудните неща, които по някаква причина, външен процесор, въпреки че 8266 също може да се направи.

Има няколко режима, в който ESP8266 чип може да се стартира в зависимост от конфигурацията на GPIO пина. Ще обсъдим старта на Flash и запълването на UART. Освен това, възможно е да се дистанционно изтегляне на фърмуера, но повече за това друг път.

ESP8266 за два режима на работа, които ще бъдат обсъдени, процесорът чака ниско ниво на GPIO15 и високо GPIO2. GPIO0 използва за избор на режим. При нормална експлоатация, трябва да се използва резистор да спра GPIO0. Това ще доведе до буутлоудъра вътре ESP8266 четене на данни от чип EEPROM в Ирам и изтегляне на вашата програма. Ако зададете GPIO0 ниско ниво, ROM за първоначално зареждане (ROM) в рамките на ESP8266 поема контрола и ще започне да комуникира чрез UART. С помощта на тази обувка ROM, ние можем да изпълним програмата на флаш памет.

ESP8266 поддържа различни скорости на трансфер, като скоростта на 454,800 възможно да се промени програмата и тества много бързо. Официален инструмент за зареждане на фърмуера в чип - XTCOM, но има и развитие на трети страни, например, esptool.py скрипт автоматизира програми за леене. В допълнение, когато скрипта приключи мига чипа, дори и ако GPIO0 свързан с ниско ниво, той ще започне да изпълнява пиърсинга. Това означава, че по време на развитието можете да поддържате GPIO0 привлечен от земята.

Директно програмиране esp8266 WiFi, просто за забавление

Така че, вашите инструменти за разработчици включва:

  1. GPIO0 ключ или бутон на земята, и издърпайте нагоре резистор към VCC
  2. GPIO2 и свързан към VCC CH_PD
  3. GPIO15 → GND
  4. преобразувател на напрежение с 5V USB-TTL UART адаптер до 3.3V за ESP8266

Инструменти за компилиране

След като вече имате набор от инструменти, можете да компилирате фърмуера.

Фирмата разпространява Espressif SDK свободно лицензиран под GPL Espressif. SDK предоставя примери и заглавията за ROM и Espressif библиотека. Важно е да се отбележи, че има библиотечната общност, но толкова дълго, колкото кода по-долу Espressif библиотеки. Може би това ще се промени в бъдеще.

Корпоративна Espressif съставител просто не звучи. Въпреки това, можете да zaguglit и официален съставител и развитие на околната среда въз основа на Eclipse.

програмиране

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

На първо място, има много функции, които са вградени в ROM и можете да използвате. Това означава, че не е нужно да се приведе отново в действие, например, MD5 или HMAC, SHA1, SPI, UART функции, функции с плаваща запетая, AES, команди за работа с паметта, на ФОРМАТ, входно-изходни инструменти от ниско ниво, а дори и в режим на събитие плановик в реално време, и най-важното, ... 802.11!

Пълният списък от функции, които са на ROM чип може да се намери в eagle.rom.addr.v6.ld файл.

Тези функции, че ROM, това не е всичко API. Можем да видим редица допълнителни инструменти. ESP8266 може да действа като точка за достъп или клиент (или и двете). По подразбиране ESP8266 има свой уникален IP AP и SSID. Това е, когато го включите "извън кутията" зареден родния API, чипът ще бъде пуснат в режим домакин със собствен DHCP сървър. Можете да го намерите с помощта на сканиращ Wi-Fi мрежа, в името на точката за достъп ще бъде линията «ESP8266».

Според някои мнения, фърмуера с AT команди бъги. Алтернативно има NodeMcu, - този фърмуер може да тълкува екипа език Lua. И не само в терминала, като команди AT, и създава файлове в ESP8266 на флаш памет и да ги изпълни.

ESP8266 връзка с точката за достъп до 8 реда код

След като вашият ESP8266 е заредена, и имате нужда от него, за да се свържете към съществуваща WIFI мрежа, пишете на следния прост код:

Изпращане на данни - espconn_sent. Близка връзка - espconn_disconnect. Всеки път, когато се вземат данните, те се предават на обратното повикване Получ.

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

Работа с GPIO

Последният Ключовият момент на тази статия - GPIO.

Leads (пинове) имат допълнителен вътрешен гостилница гостилница (GPIO0..15) и затягане падащи резистори (GPIO16). Източник. Всички те могат да бъдат конфигурирани като входове или изходи. Има софтуерни функции за работа с GPIO.

Вие ще трябва да се обадя gpio_init (...), някои макроси като PIN_PULLDWN_DIS (...), PIN_PULLUP_EN (...), а други, открити в SDK. Можете да конфигурирате I / O с gpio_output_set. Много от щифтове GPIO може да има няколко функции, някои от тези функции са активирани по подразбиране, така че, например, при изтегляне, не можете да направите всичко с GPIO12 и GPIO14, докато не бъдат избрани като GPIO.

Подкрепете проекта - споделете линка, благодаря!