Pierw­sze spo­tka­nie z ESP8266

• tech • 2256 słów • 11 minut czy­ta­nia

Ta no­tat­ka zo­sta­ła ozna­czo­na jako wy­ma­ga­ją­ca do­pra­co­wa­nia: tranp img.
Za­war­tość wpisu może ulec zmia­nie, zatem za­pra­szam do po­now­nych od­wie­dzin w nie­da­le­kiej przy­szło­ści :)

Do za­ba­wy z ukła­da­mi ESP8266 skło­nił mnie po­mysł na jeden z ukła­dów w ra­mach roz­wią­za­nia za­da­nia w Szko­le Kon­struk­to­rów EdW, ale o tym in­dziej. Oczy­wi­ście, w swo­ich za­so­bach kilka ta­kich mo­du­łów już dawno po­sia­dłem (ponad rok temu), ale jak to bywa, róż­nych ele­men­tów i mo­du­łów pro­sto z chiń­skich fa­bryk u mnie dużo. Tylko z cza­sem, aby zre­ali­zo­wać po­my­sły lub prze­pro­wa­dzić in­te­re­su­ją­ce eks­pe­ry­men­ty, jakby wprost pro­por­cjo­nal­nie mniej, więc leżą w sza­fie (pu­dłach). Ale oto nad­szedł i czas…

Mo­du­ły WiFi opar­te na chip­se­cie ESP8266 firmy Espres­sif Sys­tems jest obec­nie jed­nym z naj­po­pu­lar­niej­szych spo­so­bów na do­stęp do sieci WiFi we wła­snych elek­tro­nicz­nych pro­jek­tach. I to wszyst­ko za na­praw­dę dobrą (małą) cenę i pro­sto­tę ob­słu­gi. Nic więc dziw­ne­go, że zy­skał on taką po­pu­lar­ność. Ale to nie je­dy­ny moduł/chip­set, firma go pro­du­ku­ją­ca już opra­co­wa­ła jego ulep­szo­ne­go brata - ESP8285, czy nieco moc­niej­szy dwu-​rdzeniowy ESP32. A i kon­ku­ren­cja po­wo­li wy­ra­sta, jak choć­by RTL8710.

Wstęp w modny obec­nie świat IoT (In­ter­net of Things) staje się coraz prost­szy…

Mo­du­ły i chip­set ESP8266

Moduł WiFi opar­te na chi­pie ESP8266 dzia­ła­ją w stan­dar­dzie 802.11 b/g/n na czę­sto­tli­wo­ści 2,4 GHz. Układ ESP8266, a obec­nie to ESP8266EX z wy­ma­ga­ny­mi cer­ty­fi­ka­ta­mi, jest w isto­cie ty­po­wym SoC-​em (System-​on-a-chip), wy­ko­na­nym w ar­chi­tek­tu­rze RISC, ba­zu­ją­cym na 32-​bitowym rdze­niu Xten­sa LX106 serii Dia­mond firmy Ten­si­li­ca. Po­sia­da tro­chę we­wnętrz­nej pa­mię­ci RAM (64KiB dla in­struk­cji i 96KiB dla da­nych), in­ter­fejs QSPI dla ze­wnętrz­nej pa­mię­ci Flash oraz to co naj­waż­niej­sze in­ter­fejs Wi-Fi IEE802.11 b/g/n z ob­słu­gą WEP, WPA/WPA2. Do tego stan­dar­do­wo kilka - 16 pinów ogól­ne­go prze­zna­cze­nia, sprzę­to­we in­ter­fej­sy SPI, I2C, I2S, UART, IRDA, PWM, a nawet jeden 10-​bitowy prze­twor­nik ADC. Wszyst­ko na­pę­dza­ne z czę­sto­tli­wo­ścią 80MHz i za­si­la­ne 3.3V. Wię­cej szcze­gó­łów można zna­leźć w do­ku­men­ta­cji.

esp8266ex-block

Twór­ca ukła­du ESP8266 udo­stęp­nia bo­daj­że tylko jeden go­to­wy moduł opar­ty na swym ukła­dzie - WROOM-​02, nie li­cząc pły­tek de­we­lo­per­skich i in­nych na­rzę­dzi. Więk­szość do­stęp­nych mo­du­łów, bar­dzo do sie­bie zresz­tą po­dob­nych opra­co­wa­ły ze­wnętrz­ne chiń­skie firmy. Naj­bar­dziej po­pu­lar­ne i do­stęp­ne są pro­duk­ty firmy AI-​Thinker (widzę, że firma ta pro­du­ku­je także kilka in­nych mo­du­łów z sze­ro­ko po­ję­tej te­le­ko­mu­ni­ka­cji, bo zdaje się że w kilku pu­dlach znaj­dę ich wy­ro­by). I to dzię­ki niej za spra­wą mo­du­łu ESP8266-01 w sierp­niu 2014 roz­po­czę­ła się wiel­ka ka­rie­ra ukła­du.

Mo­du­ły róż­nią się głów­nie wiel­ko­ścią płyt­ki oraz ilo­ścią wy­pro­wa­dzo­nych pinów, nie­ste­ty oprócz wer­sji ESP-01 wszyst­kie maja nieco mniej­szy niż 2.54 mm roz­staw. A także roz­mia­rem pa­mię­ci NOR FLASH, choć naj­czę­ściej jest to 4Mbit (512kB) lub 32Mbit (4MB), obec­nie wer­sja EX może ob­słu­zyć do 16MB. Wszyst­kie za­wie­ra­ją an­te­ną - PCB i/lub gniazd­ko an­te­no­we, a nie­któ­re do­dat­ko­we diody LED sy­gna­li­zu­ją­ce pracę ukła­du i trans­mi­sję.

Po­ni­żej pod­glą­do­wo kilka mo­du­łów z ro­dzi­ny ESP-XX na pod­sta­wie ob­raz­ków w sieci, obec­nie nie­któ­re już wy­co­fa­ne, a nie­któ­re w now­szych wer­sjach lub nowe pro­duk­ty, jak na przy­kład ESP-14.

esp-modules

Krót­ki prze­gląd wszyst­kich mo­du­łów z małą cha­rak­te­ry­sty­ką można zna­leźć na stro­nie wiki spo­łecz­no­ści ESP8266.

Ja po­sia­dam wer­sję ESP-01 (info), to na niej się wła­śnie bawię. Moduł ten chyba nie jest już pro­du­ko­wa­ny, ale jesz­cze jest do­stęp­ny u wielu chiń­skich do­staw­ców. Do tego bar­dziej roz­bu­do­wa­ny moduł ESP-07 (info) z an­te­ną ce­ra­micz­ną wraz z gniazd­kiem na ze­wnętrz­ną, a także wer­sję ESP-12 (info dla nieco now­szej wer­sji 12F) wraz płytkami-​adapterami na ra­ster 2,54 z gold­pi­na­mi.

Spo­łecz­ność wokół ESP8266

Wokół ukła­du ESP8266 i mo­du­łów wy­ro­sła bar­dzo wiel­ka spo­łecz­ność. Pro­du­cent ma swoje ESP8266 De­ve­lo­per Zone, ale więk­szość i tak sku­pia się wokół forum ESP8266 Com­mu­ni­ty Forum. Prze­glą­da­jąc choć­by twe­ety z ta­giem #ESP8266 czy konto @ESP8266 można się prze­ko­nać jak wiele róż­nych pro­jek­tów i pro­duk­tów po­wsta­je na tej plat­for­mie.

Ogrom in­for­ma­cje można zna­leźć w sieci, z tego co się orien­tu­ję za­so­by te są nie­zli­czo­ne. Ja mogę po­le­cić do­ku­men­ta­cję oraz jedną ze stron, o jaką za­ha­czy­łem - ESP8266 Quick Start. Do­brym wstę­pem, jeśli cho­dzi głow­nie o stycz­ność z AT w ESP8266, może być seria ar­ty­ku­łów o mo­du­łach WiFi na zna­nej stro­nie Mi­kro­kon­tro­le­ry - Jak za­cząć? Stan­dar­do­we uży­cie do­wol­nej wy­szu­ki­war­ki po­zwo­li zna­leżć w sieci to co po­trzeb­ne, w do­wol­nym ję­zy­ku ;)

Duża spo­łecz­ność kreci się rów­nież wokół nie­ofi­cjal­nych pro­jek­tach firmware-​u two­rzo­ne­go głow­nie przez otwar­tą spo­łecz­ność lub inne nie­za­leż­ne firmy. Naj­bar­dziej po­pu­lar­ny jest ten ko­rzy­sta­ją­cy z ję­zy­ka Lua, ist­nie­je rów­nież soft opar­ty na Py­tho­nie, Ba­si­cu, czy dla Ar­du­inow­ców w C/C++ z API zna­nym z tej plat­for­my. Nie­któ­rym z nich przyj­rzę się bli­żej, pew­nie w na­stęp­nym spo­tka­niu, przy pi­sa­niu te­sto­wej apli­ka­cji.

Pod­łą­cze­nie i ko­mu­ni­ka­cja (AT)

Do te­stów i pierw­szej za­ba­wy wy­ko­rzy­sta­łem moduł ESP-01, jego pi­no­lo­gia przed­sta­wiam po­ni­żej.

esp-01-pins

Sche­mat pod­łą­cze­nia ukła­du za po­mo­cą UART-​a z do­wol­nym ter­mi­na­lem sze­re­go­wym, na przy­kład z kom­pu­te­rem po­przez wy­ko­rzy­sta­nie przej­ściów­ki USB-​UART po­ni­żej.

esp-01-connections

Co ważne, na­le­ży pa­mię­tać, że układ pra­cu­je pod na­pię­ciem 3,3V i takie też po­zio­my lo­gicz­ne po­win­ny być po­da­wa­ne na wej­ścia mo­du­łu. Można tra­fić w sieci na in­for­ma­cje, ja­ko­by praca na 5V po­zio­mach lo­gicz­nych TTL nie spra­wia­ła pro­ble­mów i nic złego się nie wy­da­rzy­ło (Is ESP8266 I/O re­al­ly 5V to­le­rant?). To jed­nak warto prze­strze­gać po­da­nych wa­run­ków pracy, aby nie uświad­czyć jakiś nie­spo­dzia­nek. Mój kabelek-​adapter USB-​UART ba­zu­ją­cy na PL2303HX stan­dar­do­wo pra­cu­je na po­zio­mach lo­gicz­nych 3,3V. W osta­tecz­no­ści można wy­ko­rzy­stać jakiś moduł kon­wer­te­ra sta­nów lo­gicz­nych lub skle­cić coś na szyb­ko z wy­ko­rzy­sta­niem diody Ze­ne­ra lub pro­ste­go dziel­ni­ka na­pię­cio­we­go.

esp-01-talk

Do po­łą­cze­nia z mo­du­łem uży­wam ter­mi­na­la PuTTY, łą­cząc się na por­cie COM3 (tutaj wi­docz­ny jest mój kon­wer­ter) z pręd­ko­ścią 115200 baud (z taką mi się udało, star­sze wer­sje dzia­ła­ją na 9600), bez pa­rzy­sto­ści, 8 bitów da­nych, 1 stop. Za któ­rymś razem udało się po­myśl­nie na­wią­zać po­łą­cze­nie, moduł wy­pluł jakiś czy­tel­ny ciąg zna­ków. Super!

Pró­bu­ję wy­słać pro­ste AT, aby upew­nić się, że wszyst­ko dzia­ła po­praw­nie, a tu mały zonk. Po wpro­wa­dze­niu ko­men­dy i za­twier­dze­niu jej Enter-em nic się nie dzie­je, brak od­po­wie­dzi i ja­kiej­kol­wiek re­ak­cji ukła­du. Jak się póź­niej oka­za­ło, PuTTY przy wci­śnię­ciu Enter-a wy­sy­ła spe­cjal­ny tel­ne­to­wy znak końca linii ^M, a to za mało, bo bra­ku­je ty­po­we­go znaku końca linii CL RF, który można wpro­wa­dzić za po­mo­cą kom­bi­na­cji Ctrl+J, zaraz po wci­śnię­ciu Enter-a. Niby nic wiel­kie­go, a jed­nak, mały szcze­gół, może tro­chę po­psuć humor. Oczy­wi­ście w Faq 4.16.4 opi­sa­no takie za­cho­wa­nie ter­mi­na­la, ale kto by czy­tał helpy i inne faq…

Tra­fi­łem wie­lo­krot­nie w sieci na in­for­ma­cje, gdzie nie­któ­rzy za­le­ca­li ak­tu­ali­za­cję opro­gra­mo­wa­nia mo­du­łu, gdy ktoś na­po­tkał na taki pro­blem. Dziw­ne, może w któ­rejś now­szej wer­sji do­da­no ob­słu­gę spe­cjal­ne­go tel­ne­to­we­go znaku?

Osta­tecz­nie wszyst­ko za­czę­ło dzia­łać, więc można było się po­ba­wić z ko­mu­ni­ka­cją po AT. Wszyst­kie do­stęp­ne ko­men­dy AT z małym opi­sem można zna­leźć na wiki AT Com­mand set. Nie będę tutaj się zaj­mo­wał tą te­ma­ty­ką.

esp-putty

Test po­praw­no­ści ko­mu­ni­ka­cji mię­dzy mo­du­łem a ter­mi­na­lem można prze­pro­wa­dzić uży­wa­jąc pro­stej ko­men­dy AT, a za po­mo­cą AT+GMR można spraw­dzić wer­sję po­sia­da­ne­go opro­gra­mo­wa­nia. Z po­zio­mu sys­te­mu można rów­nież zre­star­to­wać układ za po­mo­cą ko­men­dy AT+RST, w od­po­wie­dzi do­sta­nie­my tro­chę in­for­ma­cji dia­gno­stycz­nych przy bo­oto­wa­niu:

 ets Jan  8 2013,rst cause:4, boot mode:(3,7)

wdt reset
load 0x40100000, len 816, room 16
tail 0
chksum 0x8d
load 0x3ffe8000, len 788, room 8
tail 12
chksum 0xcf
ho 0 tail 12 room 4
load 0x3ffe8314, len 288, room 12
tail 4
chksum 0xcf
csum 0xcf

2nd boot version : 1.2
  SPI Speed      : 40MHz
  SPI Mode       : QIO
  SPI Flash Size : 4Mbit
jump to run user1

rl-B-
Ai-Thinker Technology Co. Ltd.

invalid

W sumie po­dob­ne dane po­win­ny być wi­docz­ne po po­praw­nym pod­łą­cze­niu ukła­du i jego star­cie, ale u mnie są “krzacz­ki”, moż­li­we, że ta cześć nada­wa­na jest z inną pręd­ko­ścią niż 115200, ale nie udało mi się tego jed­no­znacz­nie usta­lić.

Układ ra­por­tu­je dosyć starą wer­sję, a do­dat­ko­wo ten in­va­lid korci mnie, aby prze­pro­wa­dzić ak­tu­ali­za­cję opro­gra­mo­wa­nia, ale nim to zro­bię spró­bu­ję uru­cho­mić/skon­fi­gu­ro­wać moduł Wi-Fi.

Na po­czą­tek na­le­ży usta­wić tryb pracy radia wifi w roli sta­cji (klien­ta) po­przez AT+CWMODE=1, a na­stęp­nie usta­wić kon­fi­gu­ra­cję sieci z jaką moduł ma się po­łą­czyć - po­le­ce­nie AT+CWJAP. Gdy moduł na­wią­że po­łą­cze­nie z AP, można po­dej­rzeć jego lo­kal­ne ad­re­sy (IP, MAC) uży­wa­jąc ko­men­dy AT+CIFSR.

OK
AT+CWMODE=1

OK
AT+CWJAP="MalTest","dupa123"

OK
AT+CIFSR
+CIFSR:STAIP,"192.168.1.21"
+CIFSR:STAMAC,"18:ff:55:a2:49:46"

OK

Zna­jąc adres mogę ping-​nać z kompa pod­łą­czo­ny moduł ;)

C:\Users\malcom>ping 192.168.1.21

Badanie 192.168.1.21 z 32 bajtami danych:
Odpowiedź z 192.168.1.21: bajtów=32 czas=592ms TTL=255
Odpowiedź z 192.168.1.21: bajtów=32 czas=601ms TTL=255
Odpowiedź z 192.168.1.21: bajtów=32 czas=579ms TTL=255
Odpowiedź z 192.168.1.21: bajtów=32 czas=503ms TTL=255

Statystyka badania ping dla 192.168.1.21:
    Pakiety: Wysłane = 4, Odebrane = 4, Utracone = 0
             (0% straty),
Szacunkowy czas błądzenia pakietów w millisekundach:
    Minimum = 503 ms, Maksimum = 601 ms, Czas średni = 568 ms

Można rów­nież po­dej­rzeć do ja­kiej sieci (AP) moduł się pod­łą­czył - AT+CWJAP?. Jak rów­nież za po­mo­cą AT+CWLAP wy­li­sto­wać bę­dą­ce w za­się­gu mo­du­łu do­stęp­ne sieci.

AT+CWJAP?
+CWJAP:"MalTest"

OK
AT+CWLAP
+CWLAP:(3,"MalTest",-35,"20:cf:30:d6:82:08",1)
+CWLAP:(3,"UPC244608630",-90,"54:e5:e1:4e:2a:1b",1)
[...]
+CWLAP:(0,"UPC Wi-Free",-89,"fe:94:e3:29:4b:eb",13)
+CWLAP:(3,"Paula",-91,"cc:22:88:cc:56:67",1)

OK

Skoro już mam dzia­ła­ją­cą sieć, mogę spró­bo­wać zak­tu­ali­zo­wać opro­gra­mo­wa­nie wprost spod sys­te­mu AT. Wy­star­czy sko­rzy­stać z po­le­ce­nia AT+CIUPDATE, które w 4 kro­kach prze­pro­wa­dzi cały pro­ces.

AT+CIUPDATE
+CIPUPDATE:1
+CIPUPDATE:2
+CIPUPDATE:3
+CIPUPDATE:4

OK

Po­szcze­gól­ne etapy to:

  1. Zna­le­zie­nie ser­we­ra ak­tu­ali­za­cji
  2. Po­łą­cze­nie z ser­we­rem
  3. Po­bra­nie wer­sji/softu
  4. Uru­cho­mie­nie ak­tu­ali­za­cji

Nie­ste­ty nie za­wsze to dzia­ła, sam się o tym prze­ko­na­łem. W moim przy­pad­ku wi­sia­ło na eta­pie 3. Moż­li­we, że tak długo się po­bie­rał nowy soft, ale po kilku(nastu) mi­nu­tach prze­ry­wa­łem pro­ces.

Inną opcją jest ty­po­we fla­sho­wa­nie mo­du­łu, a o tym dalej przy pod­mia­nie firmware-​u.

Fla­sho­wa­nie mo­du­łu

Fla­sho­wa­nie to po­tocz­na nazwa pro­gra­mo­wa­nia pa­mię­ci flash róż­nych urzą­dzeń, mo­du­łów czy chip­se­tów, zwy­kle ogra­ni­cza­ją­ca się do ska­so­wa­nia sta­rej zwar­to­ści i wgra­nia nowej. Po­dob­nie wy­glą­da spra­wa z mo­du­ła­mi ESP8266, gdzie mo­że­my bez pro­ble­mu „wgrać’ do pa­mię­ci flash do­wol­ne dane, w na­szym przy­pad­ku opro­gra­mo­wa­nie - firm­wa­re.

Do pro­ce­su fla­sho­wa­nia trze­ba od­po­wied­nio przy­go­to­wać har­dwa­re - na GPIO0 wy­mu­sić stan niski przed uru­cho­mie­niem ukła­du (ewen­tu­al­nie przed re­se­tem). Spo­wo­du­je to przej­ście ukła­du w tryb flah­so­wa­nia. Ist­nie­je kilka in­nych try­bów bo­oto­wa­nia, kie­dyś do nich wrócę.

Do pro­ce­su po­trzeb­ny jest tez ja­kieś od­po­wied­nie na­rzę­dzie, czyli so­ftwa­re. Temat rzeka, zna­leźć można wiele fla­she­rów, ale ja je­dy­nie za­przy­jaź­ni­łem się z py­tho­no­wym esp­to­ol.pyESP8266 Flash Do­wn­lo­ad Tools (pro­du­cen­ta ukła­du w wer­sji GUI).

No i oczy­wi­ście nowy firm­wa­re w wer­sji bi­nar­nej do za­ła­do­wa­nia rów­nież bę­dzie ko­niecz­ny. Tutaj nie mu­si­my ogra­ni­czać się do opro­gra­mo­wa­nia udo­stęp­nia­ne­go przez pro­du­cen­ta ukła­du lub mo­du­łu, ale także wy­ko­rzy­stać inne nie­ofi­cjal­ne pro­duk­cje, a tro­chę ich się po­ja­wi­ło. Kilku z nich przyj­rzę się póź­niej. Na razie fla­shu­ję!

Do te­stów chcę chciał za­ła­do­wać nowy ofi­cjal­ny firm­wa­re, który mżna zna­leźć na stro­nach pro­du­cen­ta wraz z SDK i innym przy­dat­ny­mi ma­te­ria­ła­mi, link do naj­now­szych wydań. Od ja­kie­goś czasu to wła­śnie na forum ESP8266 De­ve­lo­per Zone znaj­du­ją się wszel­kie in­for­ma­cje i re­le­asy. W sieci można jesz­cze tra­fić na in­for­ma­cje, czy ma­te­ria­ły, które ko­rzy­sta­ją ze sta­rej wer­sji, jaka cią­gle do­stęp­na jest na gi­thu­bie. Firma chyba za­rzu­ci­ła uży­wa­nie gi­thu­bo­wych re­po­zy­to­riów na, bo nic tam się za bar­dzo nie dzie­je…

Ist­nie­ją dwa ro­dza­je SDK: Non-​OS SDKRTOS SDK, w skró­cie róż­nią się tym, że wer­sja RTOS ba­zu­je na sys­te­mie ope­ra­cyj­nym Fre­eR­TOS, a stan­dar­do­we SDK używa ti­me­rów i cal­l­bac­ków. Bi­nar­ki z ob­słu­gą ko­mend AT znaj­du­ją się w wer­sji Non-​SDK i taką po­bie­ram z sieci. Ak­tu­al­na wer­sja to 2.0 z 19 lipca 2016 roku.

Mały zonk! W re­le­ase notes (w pacz­ce czy na stro­nach wy­da­nia) można zna­leźć cie­ka­wą in­for­ma­cję:

Since the re­le­ase of ESP8266_NONOS_SDK_V1.5.0, AT firm­wa­re is too large to use 4Mbit flash. Ple­ase cho­ose flash with at least 8Mbit ca­pa­ci­ty.

Mój moduł ma tylko 512KB, więc po­szu­ku­ję ostat­niej wer­sji miesz­czą­cej się w 4MBit Fla­shu, czyli ostat­nie­go wy­da­nia 1.4. Tutaj mała dy­gre­sja, tro­chę shi­to­we to forum, bo cięż­ko zna­leźć oraz prze­glą­dać stare wpisy. Ale po­sił­ku­jąc się go­ogla­mi, tra­fi­łem na stro­nę z wy­da­niem 1.4esp_iot_sdk_v1.4.0 z 18 wrze­śnia 2015 roku.

W ka­ta­lo­gu z bi­nar­ka­mi dla AT (bin\at) znaj­du­je się plik readme.txt z in­for­ma­cja­mi nie­zbęd­ny­mi do flah­so­wa­nia firmware-​u. Ko­rzy­stam z me­to­dy non-​boot, czyli bez­po­śred­nie pro­gra­mo­wa­nie pa­mię­ci Flash, zatem szu­kam in­for­ma­cji do­ty­czą­cych wła­śnie ta­kiej me­to­dy.

***********************NON-BOOT MODE***********************
download
eagle.flash.bin             0x00000
eagle.irom0text.bin         0x40000
blank.bin
	Flash size 4Mbit:       0x3e000 & 0x7e000
	Flash size 8Mbit:       0x7e000 & 0xfe000
	Flash size 16Mbit:      0x7e000 & 0x1fe000
	Flash size 16Mbit-C1:   0xfe000 & 0x1fe000
	Flash size 32Mbit:      0x7e000 & 0x3fe000
	Flash size 32Mbit-C1:   0xfe000 & 0x3fe000
esp_init_data_default.bin  (optional)
	Flash size 4Mbit:       0x7c000
	Flash size 8Mbit:       0xfc000
	Flash size 16Mbit:      0x1fc000
	Flash size 16Mbit-C1:   0x1fc000
	Flash size 32Mbit:      0x3fc000
	Flash size 32Mbit-C1:   0x3fc000

*NOTICE*:
UPDATE is not supported in non-boot mode

***********************************************************

Dane te za­wie­ra­ją in­for­ma­cje o ad­re­sach (of­f­se­tach) pod jakie na­le­ży za­pi­sać po­szcze­gól­ne czę­ści (ob­ra­zy bi­nar­ne) opro­gra­mo­wa­nia.

Przy fla­sho­wa­niu esptool-em wy­star­czy podać pliki i od­po­wia­da­ją­ce im of­f­se­ty zgod­nie z za­łą­czo­ny­mi in­for­ma­cja­mi w pliku:

esptool.py --port COM3 --baud 115200 write_flash \
	0x00000 esp_iot_sdk_v1.4.0\bin\at\noboot\eagle.flash.bin \
	0x40000 esp_iot_sdk_v1.4.0\bin\at\noboot\eagle.irom0text.bin \
	0x3e000 esp_iot_sdk_v1.4.0\bin\blank.bin \
	0x7e000 esp_iot_sdk_v1.4.0\bin\blank.bin \
	0x7c000 esp_iot_sdk_v1.4.0\bin\esp_init_data_default.bin

I po kil­ku­na­stu se­kun­dach mamy nowy soft:

esp-tool

Po­dob­nie wy­glą­da spra­wa przy wy­ko­rzy­sta­niu gra­ficz­ne­go ESP Flash Do­wn­lo­ad Tool, po­da­je­my dane i jazda!

esp-flash1

Bie­żą­ca prace i po­stęp pro­gra­mo­wa­nia można po­dej­rzeć w kon­so­li, która stra­tu­je wraz z pro­gra­mem

esp-flash2

Po ak­tu­ali­za­cji od razu le­piej, nowa wer­sja i jest ocze­ki­wa­ne “ready” po zbo­oto­wa­niu pro­gra­mu ;)

-lrl--r-
ready
AT

OK
AT+GMR
AT version:0.50.0.0(Sep 18 2015 20:55:38)
SDK version:1.4.0
compile time:Sep 18 2015 21:32:07
OK
AT+RST

OK

 ets Jan  8 2013,rst cause:1, boot mode:(3,7)

load 0x40100000, len 23200, room 16
tail 0
chksum 0x72
load 0x3ffe8000, len 948, room 8
tail 12
chksum 0x50
ho 0 tail 12 room 4
load 0x3ffe83b8, len 3888, room 12
tail 4
chksum 0x1d
csum 0x1d
rl--rl---b
l-
ready

Wszyst­ko po­szło gład­ko i po­myśl­nie, można się bawić dalej ;)

Moje pierw­sze spo­tka­nie z ESP8266 do­bie­ga końca. Za­ba­wa była przed­nia i tak na­praw­dę do­pie­ro się za­czę­ła. Cho­ciaż było to tylko spoj­rze­nie na te wspa­nia­łe małe, tanie mo­du­ły. Choć głow­nie były to pro­ste eks­pe­ry­men­ty i jesz­cze prost­sza ko­mu­ni­ka­cja po AT, bez drą­że­nia te­ma­tu. To trze­ba przy­znać, że jest to tylko wierz­cho­łek góry lo­do­wej.

Za po­mo­cą ko­mend AT można zro­bić na­praw­dę wiele - za­rzą­dzać masą in­nych usta­wień sie­cio­wych, two­rzyć i uru­cha­miać ser­we­ry oraz wy­sy­łać i od­bie­rać dane. Każdy kto chciał­by w pełni wy­ko­rzy­stać pod­sys­tem ko­mend AT znaj­dzie w sieci sto­sow­ne in­for­ma­cje.

Mnie bar­dziej in­te­re­su­je wy­ko­rzy­sta­nie we­wnętrz­ne­go mi­kro­kon­tro­le­ra mo­du­łu i jego pro­gra­mo­wa­nie, dla­te­go w naj­bliż­szym ko­lej­nym spo­tka­niu z tym mo­du­łem będę chciał spró­bo­wać po­ba­wić in­ny­mi firmware-​ami, które to umoż­li­wia­ją.

Ko­men­ta­rze (0)

Dodaj ko­men­tarz

/do­zwo­lo­ny mark­down/

/nie zo­sta­nie opu­bli­ko­wa­ny/