WiFi module ESP8266 ESP07 para sa home automation. Ang WiFi ESP8266 ay isang bagong hakbang sa disenyo ng mga home device na may wireless interface. Mga konklusyon sa ESP8266


Ang mga maliit na module ng WiFi na ESP8266 ay medyo kaakit-akit para sa mga system matalinong tahanan At automation ng bahay. Tinatawag din silang "NRF24L01 killers."
Inutusan ko ang aking sarili sa ibang pagkakataon ng mga pagbabago sa ESP07 at ESP12, na magkaiba mas maliliit na sukat At isang malaking bilang nagmula sa mga GPIO, na hindi nangangailangan ng "mga hack" upang gumamit ng mga karagdagang I/O port sa mga ito.

Ang mga modyul na ito ay binuo kumpanyang Tsino

Mga pagtutukoy:

  • WI-FI: 802.11 b/g/n na may WEP, WPA, WPA2.
  • Mga mode ng pagpapatakbo: Client (STA), Access Point (AP), Client+Access Point (STA+AP).
  • Supply boltahe 1.7..3.6 V.
  • Kasalukuyang pagkonsumo: hanggang 215mA depende sa operating mode.
  • Bilang ng mga GPIO: 16.
  • Laki ng flash memory 512kb.
  • Data ng RAM 80 kB
  • Mga tagubilin sa RAM - 32 kb.
Tungkol sa mga pagbabago ng ESP8266 modules

Nag-order ako ng mga module noong Enero.
Presyo - $3.78, - $4.24. Binili ko ito bilang gantimpala sa pagrepaso ng isang artikulo. Dumating sa loob ng 31 araw sa mga selyadong bag







ESP8266 ESP-07




ESP8266 ESP-12




Medyo matagal na panahon ang muling pagbuhay sa module
Upang gawin ito, kailangan mong ilapat ang 3.3V dito. Bukod dito, ang mga stabilizer sa mga USB/UART converter ay hindi kumukuha ng kasalukuyang mula sa module na ito, kaya kinakailangan ang panlabas na kapangyarihan.

Ang RXD, TXD at GND ay konektado sa pamamagitan ng computer.

Bilang resulta, binuo ko ang sumusunod na circuit sa isang breadboard:

Dito ko agad na naranasan ang sumusunod na kahirapan - ang pitch ng mga butas sa ESP07 ay 2 mm, at hindi 2.5 tulad ng mga pin connectors na ginagamit sa Arduino at iba pang mga lugar.
Kinailangan kong maghinang ng mga wire sa breadboard





Agad kong dinala ang RESET button at ang GPIO0 jumper sa ground, na inililipat ang module sa firmware download mode. At binuksan ko ang kapangyarihan sa module sa pamamagitan ng

Pagkatapos noon, inilunsad ko ang CollTerm program at nakatanggap ako ng isang module na imbitasyon sa bilis na 9600.
Ang utos ng AT+GMR na ibinigay 0020000904 (bersyon ng SDK - 0020, bersyon ng AT - 0904)


Para sa mga masyadong tamad, tulad ko, upang harapin ang mga utos ng AT, mayroong isang tool na nagpapahintulot sa iyo na i-configure ang lahat ng ito.

Ginawa ko ang firmware. kasi programang ito gumagana lamang sa COM1-COM6, kailangan kong baguhin ang aking COM33 mula sa USB/UART converter sa COM6 sa device manager.

Susunod, ang pag-install ng firmware ay hindi mahirap: buksan ang port at kumonekta. Awtomatikong pinipili ang bilis. Ang pangunahing bagay ay huwag kalimutang ikonekta ang GPIO0 sa lupa (mayroon akong espesyal na jumper para dito). Awtomatikong pinipili ang bilis. Minsan ang koneksyon ay hindi naitatag. Nakatulong ang pagpindot sa RESET button habang kumonekta.



Ngayon ay maaari ka nang kumonekta sa module
Sa program na ito, maaari mong i-load ang mga file para sa LUA interpreter sa ESP, isagawa ang parehong mga solong command at script ng interpreter na ito.


Nagawa kong patakbuhin ang BMP180 pressure/temperatura module na konektado sa GPIO2 at GPIO0

Upang gawin ito, na-download ko ang bmp180.lua file mula sa mga nakahandang module na kasama ng firmware mula sa GITHUB
At pagkatapos ay naisakatuparan ang init.lau file kapag nag-boot ang ESP8266
tmr.alarm(1, 5000, 1, function() print("ip: ",wifi.sta.getip()) bmp180 = require("bmp180") bmp180.init(4, 3) tmr.stop(1) -- pagtatapos ng alarm stop)

Ang pagpapatakbo ng program nang walang pagkaantala ng timer ay nagresulta sa isang hindi nagbabagong error.
Pagkatapos i-restart, code
bmp180.read(OSS) t = bmp180.getTemperature() p = bmp180.getPressure() -- temperatura sa degrees Celsius at Farenheit print("Temperature: "..(t/10).." C") -- pressure sa differents units print("Pressure: "..(p * 75 / 10000).." mmHg")

I-output ang kasalukuyang presyon at temperatura sa console.

Ngunit hindi ko nasimulang ibigay ang mga parameter na ito sa mode ng web server. Ito ay tungkol sa kakulangan ng memorya. Ang web server at BMP180 ay gumana nang hiwalay, ngunit magkasama silang nag-crash
PANIC: hindi protektadong error sa pagtawag sa Lua API (error sa paglo-load ng module "bmp180" mula sa file na "bmp180.lua": hindi sapat memorya)
O ang mga scrap ng LUA code ay nahulog lang sa console.

Hindi posibleng mag-modernize nang mabilisan.

Ang aking karagdagang landas ay ang pagbuo ng aking firmware sa isang proprietary SDK, tulad ng . Pero ibang kwento yun. Sabihin ko lang na ang firmware ay na-assemble nang walang problema, ngunit ang masamang BMP180 ay hindi nailunsad.

Mga konklusyon

  • Ang mga module ng ESP8266 ay napaka murang solusyon para sa pagbuo ng smart home network at iba pang home automation gamit ang WiFi
  • Ang mga module na ito ay lubos na angkop para sa pagpapalit ng NRF24L01+ kasabay ng Arduino at iba pang "sikat" na mga controller.
  • Upang gumana bilang isang independiyenteng controller, ang ESP8266 ay may kaunting mga mapagkukunan at medyo magaspang na firmware
  • Ang pagprograma ng mga module ng ESP ay isang medyo labor-intensive na proseso na maaaring nakakatakot para sa mga nagsisimula
  • Sa pangkalahatan, ang ESP8266 ay may magandang pangako. Maghihintay ako para sa pagbuo ng firmware at mga tool sa pag-unlad, ngunit sa ngayon, gagamitin ko ang mga ito kasabay ng iba pang mga controllers (maliban sa )))

Hanggang ngayon Gastos ng Wi-Fi modules strives para sa mga pennies salamat sa pagbuo ng . Nagbibigay-daan ito sa iyong bumuo ng mga device sa bahay sa antas Teknolohiya ng Wi-Fi. Ano ang ibinibigay nito sa atin? Sa katunayan, marami ang halos kapareho ng Internet mismo bilang karagdagan sa lahat ng iba pa. Kaya, kapag gumagawa ng anumang device, magkakaroon na ito ng access sa network at sa Internet (kung naroroon ito sa network), na nangangahulugang ang device ay theoretically accessible sa anumang device na matatagpuan sa network o konektado sa Internet. Limang taon pa lang ang nakalilipas, hindi man lang ako makapangarap ng ganoong antas ng mga kagamitan sa bahay.

Nagpasya akong gumawa ng device na magpapadala ng data ng sensor sa Internet, salamat sa kung saan posible na subaybayan ang mga pagbabasa mula sa kahit saan sa lungsod, bansa, o lupain sa pamamagitan ng Internet.

Kaya, kapag pumipili ng ESP8266 WiFi module, ang pagpipilian ay nakahilig sa ESP-07 na modelo na may koneksyon panlabas na antenna para tumanggap mas magandang signal binili sa Intsik na online na tindahan GearBest. Sa kasong ito, kakailanganin natin ang antena mismo (hindi ako nag-abala sa mga bagay na walang kabuluhan, ngunit ang anumang iba pang may RP-SMA connector sa mga frequency ng WiFi ay gagawin), isang konektor para sa pagkonekta ng antena sa module, at, kung kinakailangan, isang extension cord para sa antenna. Dagdag pa ang mga kinakailangang sensor.

Upang magtrabaho kasama module ESP-07 Ang isang naka-print na circuit board ay ginawa ayon sa sumusunod na diagram:

Ang circuit ay binubuo ng tatlong pangunahing bloke: isang 3.3 volt voltage regulator VR1 na may mga kinakailangang elemento(ang nababagay na bersyon ng stabilizer ay maaaring mapalitan ng ams1117 3v3 maliban sa mga resistors R1 at R3), ang bloke na kinakailangan para sa pagprograma ng module ng WiFi ay ginawa batay sa USB-UART interface converter CH340G na may kinakailangang mga kable ng chip (CH340G ay maaaring mapalitan ng anumang iba pang microcircuits ng kaukulang pag-andar sa pamamagitan ng pagpapalit ng mga kable para sa isang mapapalitang chip), ang WiFi module mismo, pati na rin ang mga kinakailangang elemento para sa pagpapatakbo at programming nito. Upang makapasok sa programming mode, dapat mong pindutin ang pindutan ng S2 Prog at i-reboot ang module o i-off at i-on ang power gamit ang pindutan ng S2 Prog na pinindot. Susunod, gamit ang software sa iyong PC, i-download ang firmware sa module ng WiFi. Matapos makumpleto ang firmware, i-reboot muli ang module, ngunit nang hindi pinindot ang pindutan ng S2 Prog - sa ganitong paraan gagana ang module sa pangunahing mode. Kapag gumagamit ng panlabas na antenna, ang board ay nagbibigay ng espasyo para sa pagkakabit ng antenna bracket. Ang bracket mismo ay maaaring sa pinakasimpleng pagsasaayos. Ang isang mini-USB connector ay ginagamit upang kumonekta sa isang computer.

Para ikonekta ang antenna sa ESP-07, gumamit ng IPX sa RP-SMA cable. Dahil pinili ko ang 18 dB GDI-8218 antenna para sa aking sarili, ang aparato na binuo na may mga sensor ay mukhang medyo nagbabanta. Siyempre, kapag gumagamit ng maraming mga sensor kailangan mong ikonekta ang lahat breadboard, kung gagamit ka lang ng isang sensor ng BMP280 upang subaybayan ang mga parameter ng panahon (nagsusukat ng temperatura, presyon at halumigmig), kung gayon ang circuit ay mukhang mas maganda. Bilang karagdagan, ang board para sa ESP8266 ay ginawa bilang unibersal na kasangkapan, kaya kung i-edit mo ito, na nagbibigay para sa pag-install ng mga sensor nang direkta sa board, ang circuit ay magkakaroon ng mas compact at aesthetic na hitsura.

Ang paggamit ng antenna sa form na ito ay hindi palaging maginhawa, kaya para sa kaginhawahan, maaari kang gumamit ng RP-SMA male to female extension cable para sa antenna upang ma-secure ito sa isang maginhawang lugar o ilipat lamang ito kaugnay sa buong circuit.

Ang isang kahalili sa naturang board ay maaaring mga factory nodemcu board o adapter board para sa mga contact sa PLS/PBS. Ang huli ay mayroon lamang isang pares ng mga resistors na kinakailangan upang i-on ang module at isang lugar para sa isang boltahe stabilizer (hindi kasama). Dahil sa kanilang napakaliit na kalikasan, hindi ito maginhawa para sa akin na gumamit ng mga naturang board (maliban kung bilang bahagi ng isa pang device na nilagyan ng connector para sa naturang board).

Para kumonekta sa sensor module, maaari mong gamitin ang lahat ng libreng GPIO ng module. Upang makakuha ng mga pagbabasa ng mga parameter na kailangan namin, ang anumang mga sensor ay maaaring gamitin sa anumang pagsasaayos, na tatalakayin sa ibaba. Gumamit ako ng mga sensor ng DS18B20 sa format ng meter probe (maginhawang subaybayan ang temperatura sa labas o anumang likido, dahil itinuturing itong hindi tinatablan ng tubig), BMP180 para sa pagsubaybay presyon ng atmospera at AM2302 para sa kontrol ng kahalumigmigan sa loob ng bahay. Huwag kalimutan ang tungkol sa kinakailangang mga kable ng mga sensor kung hindi mo ginagamit ang mga ito sa anyo ng mga module na may lahat ng kinakailangan: DS18B20 ay konektado sa isang pull-up na risistor sa power plus (10 kOhm risistor sa pagitan ng 1-wire pin at ang power plus), katulad din para sa AM2302 (DHT22), ang mga sensor na gumagana sa I 2 C bus ay dapat ding may mga pull-up na resistors sa mga contact ng SCL at SDA.

Gayunpaman, upang makamit ang resulta, kinakailangan na magsulat ng firmware upang ang aparato ay gumana nang eksakto tulad ng kailangan namin. Sa mga nakahandang ideya, kapag naghahanap ng SDK para sa ESP8266, isang online firmware designer (o online compiler) ang natagpuan, na hindi nangangailangan ng kaalaman sa programming (sa karamihan ng mga function nito)! Upang makakuha ng access sa pagpupulong ng firmware, kinakailangan ang pagpaparehistro, kung hindi man ay hindi magagamit ang menu na ito. Nang walang pagpaparehistro, maaari ka lamang mag-download ng "mabilis na pagsisimula" na firmware.

Ang kailangan lang natin ay suriin ang mga kahon na may mga kinakailangang pag-andar at i-compile ang firmware para sa ESP8266 module, i-download ito (dito dapat nating isaalang-alang na ang memorya ng module ay hindi walang limitasyon at piliin mga kinakailangang function, dahil hindi pa rin magkasya ang lahat ng functionality ng online compiler sa isang device).

Susunod, i-flash ang module gamit ang nodemcu-flasher program (mga setting ng program sa ibaba sa mga screenshot) (ikonekta ang device sa pamamagitan ng USB sa PC). Kapag nag-flash, walang dapat na konektado sa mga UART pin ng module (GPIO1, GPIO3), kung hindi, ang module ay maaaring hindi ma-flash. Kung plano mong ikonekta ang isang bagay sa mga pin na ito, dapat mong i-off ito sa tagal ng firmware. Pagkatapos mag-flash ng firmware, i-reboot namin ang module o i-off at i-on ang kapangyarihan - depende sa mga setting, ang module ay kumonekta sa network o lumikha ng sarili nitong access point. Handa na ang device para sa mga setting at paggamit!

Kung ang module ng WiFi ay nagamit na sa ibang firmware, inirerekomenda na bago isulat ang pangunahing firmware, isulat ang firmware na may blangkong form (file sa mga application).

Itakda ang mga setting para sa ESP-07 module (tulad ng ipinapakita ng kasanayan, ang pagtatakda ng laki ng flash memory ay hindi nakakaapekto sa sample na ginamit; tila, ang tamang halaga ay awtomatikong itinatakda):

Tukuyin ang path sa firmware file:

Tukuyin COM port naka-install sa panahon ng koneksyon para sa module na ito at pindutin ang pindutan ng Flash (kung ang lahat ay tapos na nang tama, ang firmware ay mai-load sa module):

Hintaying makumpleto ang firmware:

Bago i-compile ang firmware, maginhawang magtakda ng mga default na setting sa online compiler page, kung saan kailangan mong ipasok ang pangalan ng access point at password ng WiFi router (seksyon " Sistema" sa dulo ng listahan ng pagpili ng functionality bago i-assemble ang firmware). Bilang karagdagan, maaari kang magtakda ng isang static na IP address para sa device. Upang gawin ito, sa mga function ng system kailangan mong lagyan ng tsek ang kahon sa tabi ng “ Mga Default na Setting» at mag-click sa gear upang ilabas ang isang menu kung saan ang data na ito ay ipinasok kung kinakailangan. Sa kasong ito, pagkatapos i-on ang WiFi device, awtomatiko itong makakonekta sa router. Matapos itong i-on, buksan ang browser at ipasok ang IP address ng device kung saan ito nakarehistro sa network sa address bar. Natagpuan namin ang aming sarili Menu ng WiFi mga device kung saan hindi mo lamang masusubaybayan ang mga parameter ng mga sensor sa loob ng network, ngunit i-configure din ang iba pang mga function na iyong pinili bago i-assemble ang firmware.

Kung hindi mo ginawa ang mga default na setting bago i-assemble ang firmware, pagkatapos ay kapag binuksan mo ito sa unang pagkakataon (pagkatapos mag-flash ng firmware kailangan mong pindutin ang resrt button sa module ng 3 beses na may pagitan ng 1 segundo) isang access point ay malilikha hamessmart sa address 192.168.4.1 . Gamit ang isang telepono o laptop, kailangan mong kumonekta sa isang access point at pumunta sa address na ito sa pamamagitan ng isang browser, gumawa ng mga setting, muling i-configure kung kinakailangan Station mode sa mga setting Pangunahing(mag-login upang makapasok sa menu , password 0000 ), paglalagay din ng pangalan ng punto WiFi access router at password.

Una kailangan mong ipasok ang mga setting sa menu Pangunahing(patlang Config naglalaman ng mga link para sa mga setting at pagsasaayos ng mga napiling function).

Upang makapasok sa menu kakailanganin mong ipasok ang iyong username at password. 0000 . Dito maaari mong pamahalaan ang mga setting ng seguridad, oras, at koneksyon sa network. Upang i-save ang ipinasok na mga setting, pindutin ang pindutan Itakda.

Bumalik sa pangunahing menu at sundin ang link Hardware. Dito namin pinagana at kino-configure ang mga sensor na ikokonekta sa module (availability iba't ibang mga sensor sa menu na ito ay tinutukoy ng kanilang pinili kapag nag-assemble ng firmware - kung hindi ka pumili ng isang bagay bago i-compile, ang mga function na ito ay hindi magagamit sa firmware mismo). Para sa mga sensor na tumatakbo sa I2C bus, kailangan mong magtakda ng karaniwan para sa lahat ng device GPIO. Bakit karaniwan? Binibigyang-daan ka ng I2C bus na kumonekta ng maraming device nang magkatulad. Ang bawat naturang device ay may sariling address, at sa sandaling naipadala ng master device ang address na ito, malalaman ng slave device na may ganitong address na ang data ay ipapalit na dito, habang ang iba pang device sa bus ay hindi aktibo. Upang ikonekta ang DHT11/22 humidity sensors, isang hiwalay na module leg ang ginagamit, na nakatakda sa mga setting ng menu na ito. Upang paganahin ang sensor ng DS18B20, kailangan mo ring magtakda ng isang hiwalay na pin ng GPIO, pagkatapos, tandaan na i-save ang mga inilagay na setting, pumunta sa pangunahing menu at sundin ang link na 1-wire.

Sa menu na ito i-click I-clear at I-scan ang listahan, pagkatapos nito dapat itong lumitaw ID sensor DS18B20. At pagkatapos lamang nito gagana ang sensor ng temperatura.

Para ikonekta ang mga analog sensor, maaari kang gumamit ng ADC (ang tanging pin ADC module ng WiFi). Ito ang built-in na ADC ng module na may kaunting kapasidad 10 bits (1023 sample) na may reference na boltahe 1.024 V. Kung ang sensor ay may antas ng boltahe ng output na mas malaki kaysa sa halagang ito, kinakailangang gumamit ng boltahe divider gamit ang mga resistors na may kilalang division coefficient. Ang magreresultang halaga mula sa ADC ay mag-iiba mula sa aktwal na halaga ng salik na ito. Maraming mga analog sensor ang komersyal na magagamit bilang mga module batay sa LM393. Ang prinsipyo ng pagpapatakbo ng naturang mga module ay iyon risistor ng trimmer ang boltahe ng sanggunian para sa paghahambing (LM393) ay nakatakda, at sa sandaling ang epekto sa sensor ay tumaas ang boltahe sa input ng paghahambing, na ginagawa itong mas malaki kaysa sa sanggunian, isang lohikal na yunit ang bubuo sa output ng modyul na ito . Kaya, maaari mong ayusin ang threshold ng tugon ng sensor (o sa halip ang module ng sensor na ito) at i-record ang tagumpay ng threshold na ito gamit lamang GPIO Na-configure ang ESP8266 para sa input. Upang gawin ito, pumunta sa pangunahing menu at mag-click sa link ng GPIO. Sa menu na ito, itakda ang pin number at operating mode para dito, at i-save ito. Ang mga pagbabasa ay magiging tulad ng " 0 "o" 1 " - ang threshold ay naabot na o hindi, ang aksyon ay naganap o hindi.

Ngayon, upang ipakita ang mga pagbabasa ng sensor sa Internet, sundin ang link Mga server o DDNS depende sa napiling paraan ng koneksyon sa Internet. Sa una, pinlano kong gamitin ang serbisyo ng narodmon.ru para sa layuning ito, na nagpapakita ng mga pagbabasa ng sensor ng lahat ng mga gumagamit na gumagamit ng serbisyong ito nang direkta sa mapa. Bilang karagdagan, ang serbisyong ito ay may mga application at widget para sa mga mobile device at PC, na napaka-maginhawa. Magrehistro sa serbisyong ito (ito ay ganap na libre) gamit ID(tingnan ang screenshot sa ibaba - link Mga server mga patlang Config).

Serbisyo peopleodmon(popular na pagsubaybay) nag-iimbak ng mga pagbabasa ng sensor nang hanggang 1 taon at nagbibigay-daan sa iyong mag-compile ng mga sukatan ng sensor para sa isang panahon bilang karagdagan sa iba pang functionality.

Matapos ang lahat ng mga manipulasyon sa Mga setting ng WiFi Ang data ng module ay ipinapadala sa isang panlabas na serbisyo para sa pagsubaybay at pag-iimbak ng mga tagapagpahiwatig ng sensor, na maaaring tingnan mula sa kahit saan sa mundo na may access sa Internet. Ang pangunahing pahina ng modyul ay magagamit sa lokal na network at ipinapakita ang mga pagbabasa ng lahat ng konektadong sensor. Ang kinakailangang epekto ay nakamit.

Siyempre, ang online compiler ay nagbibigay ng maraming iba pang mga function: pagkonekta ng iba't ibang mga display, pagpapadala ng email o sms (kinakailangan gsm module Para sa pagpapadala ng sms walang mga serbisyo sa Internet), gumaganap ng customized lohikal na operasyon, kontrol ng iba't ibang peripheral gamit ang GPIO at PWM, pagre-record kinokontrol na mga parameter sa isang SD memory card at marami pang iba. Kung hindi sapat ang isang module, maaari kang gumawa ng ilan sa mga ito, gagana sila bilang isang buo sa loob nakabahaging network salamat sa mga pag-andar ng mga virtual na sensor at virtual na GPIO (ang isang aparato ay tumatanggap ng mga pagbabasa ng sensor mula sa isa pa GET kahilingan). Kung walang sapat na input/output port, may mga function para sa pagkonekta ng mga port expander. Available lang ang ilang functionality sa Pro mode firmware, na naka-activate sa home page sa pamamagitan ng link na GET PRO. Upang maisaaktibo, kailangan mong magpasok ng isang code, na hindi libre, ngunit nagkakahalaga lamang ito ng isang simbolikong halaga, na maaaring makuha sa personal na account website ng online compiler.

Para sa mga setting, mahalagang huwag malito ang GPIO ng module (kung ang ESP-07 ay ibinebenta sa board, ang mga pin designation ay hindi nakikita) para sa normal na operasyon:

Bilang karagdagan sa lahat, ang natitirang mga terminal ng module ay maaaring konektado sa isang display kung saan ipapakita namin ang mga halaga ng mga sensor ng panahon. Sinusuportahan ng taga-disenyo ang ILI9341 - TFT LCD 240x320 na mga display na tumatakbo sa pamamagitan ng interface ng SPI.

Kapag nag-assemble ng firmware, tinutukoy namin kung aling mga GPIO pin CS at DC ng display ang ikokonekta (tinatawag ang menu ng mga setting sa website ng designer kapag pumipili ng mga function sa pamamagitan ng pag-click sa gear sa tabi ng function na kailangan namin). Ang natitirang mga pin ay dapat na konektado tulad ng sumusunod: MOSI - GPIO13, SCK - GPIO14, reset at LED ay konektado sa plus ng vcc power supply, at, nang naaayon, vcc at gnd sa plus at minus ng power source (kumuha kami kapangyarihan mula sa 3.3 volt WiFi module).

Dito namin i-on ang TFT, kung kinakailangan, i-rotate ang display 90 degrees at itakda kung aling mga linya ( Linya 0, Linya2...) anong impormasyon ang aming ipapakita. Sa function na pinagana Oras at NTP sa system constructor function na may Mga server ng NTP kinukuha ang impormasyon sa oras sa pamamagitan ng Internet, na ginagawang tumpak na orasan ang aming device na hindi kailangang ayusin. Output namin kasalukuyang panahon sa display at ilan pang mga parameter ng panahon upang punan ang display. Upang gawin ito sa larangan Pumili ng linya pumili ng isang linya, sa tabi nito pipiliin namin ang parameter na ipapakita namin sa linyang ito, sa ibaba, kung kinakailangan, pipili kami ng data centering, laki ng font at kulay ng font. I-click Itakda at ang setting ay nai-save. Ang font ay simpleng uri ng font lamang. Ang pagpili ng mga inihandang parameter ay medyo maliit, ngunit sapat, ngunit gamit ang string constructor, maaari mong ipakita ang anumang mga parameter sa anumang pagsasaayos.

Ang artikulo ay sinamahan ng isang file naka-print na circuit board para sa ESP-07 module, firmware na may blangko na form, firmware na may iba't ibang pag-andar para sa ESP-07, ilang dokumentasyon, isang driver para sa USB programming para sa CH340G chip, isang programa para sa pag-flash ng ESP8266.

Listahan ng mga radioelement

Pagtatalaga Uri Denominasyon Dami TandaanMamiliNotepad ko
IC1 ESP8266 moduleESP-071 Sa notepad
IC2 USB interface ICCH340G1 Sa notepad
VR1 Linear na regulator

AMS1117-ADJ

1 Sa notepad
VD1 Schottky diode

1N5819

1 Sa notepad
R1 Resistor

3 kOhm

1 1206 Sa notepad
R2, R7-R9 Resistor

10 kOhm

4 0805 Sa notepad
R3 Resistor

1.8 kOhm

1 1206 Sa notepad
R4 Resistor

1 kOhm

1 0805 Sa notepad
R5, R6 Resistor

390 Ohm

2 0805 Sa notepad
C1 Kapasitor10 µF1 nakasakay sa ceramic 1206 Sa notepad
C7 Kapasitor22 µF1 tantalum + 2.2 µF ceramic 1206 Sa notepad
C6 Kapasitor100 µF1 tantalum

Ang iba't ibang mga opsyon sa pagpapatupad para sa ESP8266 module ay nasuri dito nang higit sa isang beses, at nararapat na gayon. Ang maliit at coin-sized na chip na ito na may nakasakay na WiF ay maaaring gumana bilang parehong access point at isang kliyente at maaaring i-program sa anumang paraan - at ibinebenta sa halagang ilang dolyar.

Bago kami magkaroon ng oras upang masanay sa ideya na ang lahat ng uri ng mga kagiliw-giliw na crafts ay maaaring gawin sa isang sentimos Arduino, Attiny o STM - tulad ng mga device na may WiFi at makapangyarihang mga processor sa 80 megahertz sila ay naging katunggali sa presyo. (Damn, ang aking processor ay nasa una sariling computer ay medyo mabilis, ilang taon na ako).

Isang problema - lahat ng mga device na may ESP8266 na dumaan sa aking mga kamay ay napaka-inconvenient, ang pagkonekta sa kanila ay masakit. Ngunit narinig kami ng industriya ng Tsino at halos magaling sila :)

Bakit tayo "mahal" iba't ibang mga pagpipilian ESP8266:

  • Ang mga ito ay pinapagana ng 3.3 volts, kaysa sa mas karaniwang lima
  • Sa rurok ay nangangailangan sila ng kasalukuyang hanggang 320mA, na lampas sa mga kakayahan ng mga maginoo na USB-TTL converter.
  • Ang pitch sa pagitan ng mga board output ay karaniwang hindi ang karaniwang 2.54 mm, ngunit eksaktong 2 mm - na ginagawang isang masalimuot na pakikipagsapalaran ang paghihinang.
  • Mayroon lamang isang bersyon ng board na may pin pitch na 2.54 mm ("ESP8266-01"), ngunit mayroon itong minimum na kapaki-pakinabang na mga pin
  • Ang chip ay inililipat sa programming mode sa pamamagitan ng pagsasara ng mga contact, na nangangailangan ng kasanayan. O paghihinang ng pindutan
  • Gamit ang I-reset ang parehong problema - i-off ang power o solder ang button
At pagkatapos ay naglabas ang industriya ng China ng "ESP8266-12E" sa ilalim ng pangalang "Witty Cloud":

Ang board ay isang "sandwich" ng dalawa. Sa tuktok na layer (sa kaliwa sa parehong mga larawan) ay ang ESP8266 chip mismo, sa ibaba nito ay ang connector microUSB power supply at isang boltahe regulator AMS1117-3.3, na ang gawain ay gawing 3.3 ang 5 volts. Ayon sa datasheet, ang regulator ay may mga alon hanggang sa 0.8A, kaya ito ay higit pa sa sapat upang paganahin ang chip. doon - I-reset ang pindutan upang i-reboot.
Upang magkaroon ng isang bagay na sakupin ang mga walang laman na sulok ng board, ang mga Chinese ay nagtulak ng RGB LED at isang photoresistor doon, higit pa sa mga ito mamaya.

Sa ilalim na layer ng "sandwich" (nakalarawan sa kanan) mayroong isang ganap na MicroUSB, isang CH340G chip at ang "Flash" (firmware mode) at "I-reset" na mga pindutan.

Ang "Sandwich" ay nagbibigay ng higit na kalayaan sa pagkilos. Maaari mong ikonekta ang "sandwich" sa computer sa ibaba (puno) USB connector, i-reprogram ito - at pagkatapos ay isama ito sa iyong craft lamang tuktok na bahagi, nagtitipid sa laki ng case.

Bukod dito, ang ilalim ng "sandwich" ay maaaring gamitin upang mag-program ng mga lutong bahay na module. Ako mismo ang nagbenta ng ESP8266-12 at ESP8266-07 na mga module na nakapalibot sa hindi masyadong matagumpay na mga adapter board sa halagang $0.22 at nag-attach ng AMS1117 regulators "sa snot" - parehong nagtrabaho nang walang anumang mga problema at naging isang daang porsyento na katugma sa mga tuntunin ng mga konektor at mga pindutan:

Okay, sapat na ang pagpupuri sa modyul, gumawa tayo ng kapaki-pakinabang. Ang page ng nagbebenta ay nag-a-advertise ng ilang uri ng SDK at kahit ilang uri ng Chinese na "cloud" para sa mga device na batay sa ESP8266 at Android, bagama't walang (halos) impormasyon tungkol sa mga ito sa English. Kung gayon, sumuko na tayo sa kanila, ilunsad natin Arduino IDE 1.6 at pumasok tayo sa mga setting.

Sa window ng “Mga Karagdagang URL,” ipasok ang linyang https://arduino.esp8266.com/package_esp8266com_index.json Pagkatapos ay buksan ang “Boards manager” at ilagay ang “ESP8266” sa search bar. I-click ang I-install at maghandang maghintay hanggang sa ma-download ang hanggang 130 megabytes ng mga pakete:

Ikonekta natin ang "sandwich" sa computer sa mas mababang (buong) MicroUSB connector. Dapat makita ng Windows ang USB-TTL converter na "CH340G" at italaga ito virtual port. Ang port na ito ang aming ipahiwatig Mga setting ng Arduino IDE. Ang natitirang mga setting ay:

Ilagay natin ang elementary code sa memorya

#isama const char* ssid = "??? pangalan ng iyong WiFi point???"; const char* password = "??? password???"; Server ng WiFiServer(80); void setup() ( Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) ( delay(500); Serial.print("."); ) server. begin(); Serial.print("IP address ng aming module: "); Serial.println(WiFi.localIP()); ; ) habang(!client.available())( delay(1); ) client.flush(); nhello mula sa esp8266!\n"; client.print(s); delay(1); )

Mangyaring tandaan na sa panahon ng proseso ng pag-flash ay hindi na kailangang pindutin ang pindutan ng Flash - ang board na ang bahala sa lahat ng bagay mismo.

Pagkatapos bagong programa ibinuhos sa ESP8266, maaari itong idiskonekta mula sa computer at paandarin kahit na mula sa isang power bank. Ang ibabang bahagi ng "sandwich" ay maaaring ihiwalay;

Alinman sa Tulong sa Arduino serial monitor (port speed - 115200), o sa web interface ng router tinitingnan namin ang IP address na natanggap namin sa home WiFi network ang aming ESP8266. Buksan ang address na ito sa browser ng iyong computer o telepono:

Nakakonekta ang aming device sa home network, inilabas ang web server at tumutugon sa amin.

Sigurado ka bang gumagana ang iyong device? Mag-move on na tayo. Upang magamit ito para sa isang bagay na kapaki-pakinabang sa pang-araw-araw na buhay, kagiliw-giliw na "makipagkaibigan" dito, halimbawa, na may isang relay. Totoo, ang mga klasikong 5-volt relay, sa pamamagitan ng kahulugan, ay hindi na kailangan - ang panganib ay masyadong malaki na ang boltahe ng 3.3 volts ay hindi magiging sapat para sa electromagnet upang hilahin ang armature. Samakatuwid, kumukuha kami ng Omron solid state relay sa halagang $1.90. Ayon sa datasheet, ang boltahe na mayroon kami ay sapat na para ito ay gumana nang malinaw:

Ikinonekta namin ang "plus" at "minus" sa mga contact ng VCC at GND ng tuktok na layer ng "sandwich", at ang pangatlo, signal, wire sa, halimbawa, ang contact ng GPIO 2, maaari mong kunin ang WiFiWebServer sketch, na naka-attach sa Arduino library, o gamitin ang programa ng kasamahan Sav13 mula sa samopal.pro/wifi-power-esp8266/

Para sa pagsubok, kumuha ako ng simpleng 20W halogen light bulb at na-click ito sa nilalaman ng puso ko:

Nagaganap ang operasyon sa isang split second pagkatapos maibigay ang command. Upang suriin ang pagiging maaasahan, nagpasok ako ng isang simpleng counter sa code at nag-sketch ng isang simpleng bat file na nagbukas at nagpatay ng bumbilya nang may pause bawat segundo. Binuksan ang isang grupo ng mga ito karagdagang mga bintana, kung saan nagsimulang bombahin ang IP address ng module ng walang katapusang ping command. Pagkalipas ng ilang oras, ang on-off na counter ay lumampas sa 19,000, ngunit ang lahat ay gumana - na nagbibigay ng ilang kumpiyansa sa pagiging maaasahan ng device.

Kung nabasa mo na ito, ngunit ang pag-iisip na "lahat ito ay kumplikado" ay umiikot sa iyong ulo, mayroon akong isang bagay na kaaya-aya para sa iyo.

Tandaan na nabanggit ko iyon Intsik na tagagawa"para sa pagbabago", naglagay ka ba ng RGB LED at photoresistor sa board? Maaari kang mag-eksperimento sa kanila, kahit na wala kang anumang iba pang mga sensor o iba pang mga peripheral.

Sa opsyong ito, kakailanganin mong magsikap at ilunsad ang Arduino IDE eksaktong isang beses.


Ang screen ng application ay isang walang laman na field kung saan maaari kang maglagay ng mga elemento, tulad ng sa isang dashboard. Subukan muna ang "zeRGBa" at "gauge":

Sa mga setting ng zebra, tukuyin na ang tatlong-kulay na LED sa board ay konektado sa mga pin 12 (berde), 13 (asul) at 15 (pula):

Sa mga setting ng "gauge", tukuyin na ang photoresistor sa board ay konektado sa analog input na "adc0":

I-activate ang iyong nililok sa pamamagitan ng pag-click sa pindutan sa kanan itaas na sulok. Makikita mo na ang dilaw na indicator ay nagbabago depende sa antas ng liwanag, at ang RGB LED sa "sandwich" ay nagbabago ng kulay kapag sinundot mo ang zebra crossing:

Ipinakita ng pagsasanay na talagang gusto ng mga bata ang bagay na ito. Isang bagay ang paglalaro ng mga laro ng ibang tao sa isang tablet, isa pang bagay na gumawa at magpinta ng "remote control" sa iyong sarili at kontrolin ang isang bagay na nakikita. Ito ay sapat na upang kunin ang bahagi ng paghahanda sa Arduino, at pagkatapos ay ipakita kung paano gamitin ito, magbigay ng ilang mga LED, mga pindutan o mga bahagi tulad ng isang LM35 analog temperature sensor - agad nilang aalisin ang iyong "laruan" at ang iyong anak ay magiging abala sa mahabang panahon. Hindi ka matatanggal sa tenga, nasuri na.

Para sa mabilis na paglikha Ang mga prototype ng blynk ay naging napaka-maginhawa rin - mas madaling mag-sketch ng mga button at switch doon kaysa bumuo ng sarili mong web interface. Ang oras na nai-save ay maaaring mas malaking benepisyo gastusin sa pag-assemble ng isa pang craft.

Ipagpatuloy

Para sa isang presyo na higit sa 200 rubles, makakakuha ka ng isang napakalakas at ganap na independiyenteng aparato kung saan maaari mong i-program ang lahat ng uri ng mga kapaki-pakinabang na bagay para sa iyong tahanan - at kontrolin ang mga ito sa pamamagitan ng WiFi.

Ang "sandwich" ay naging nakakagulat na matagumpay. Ito ay mas mababa sa isang dolyar na mas mahal kaysa sa walang laman na ESP8266-12, ngunit nakakatipid ka ng isang toneladang oras at abala. Ang isang bungkos ng mga wire at isang breadboard ay hindi kailangan.

Ang ideya ng pre-install ng isang LED at isang photosensor sa board ay napaka-matagumpay. Kahit na wala ka maliban sa isang module at isang MicroUSB cable, maaari mo pa ring subukan muna ang isang bagay at tamasahin ang pagbili. Kung hindi kailangan ang mga ito sa tapos na produkto, ihinang lamang ang mga ito o putulin ang mga ito.

Sa presyong ito, ang "sandwich" ay isang malinaw na katunggali Arduino Nano, at ginagawa itong hindi na kailangan Mga module ng Bluetooth(type HC-05) at higit pa - NRF24L01+ radio modules.

Nahuli ko ang aking sarili at halos sinira ang tradisyon: