Programmaparatūra 1m priekš esp 01. ESP8266 mikrokontrolleris: savienojums un konfigurācija. USB-TTL pārveidotājs, izmantojot DTR savienotāju

Apgūstot un veidojot arvien sarežģītākus projektus, pienāk brīdis, kad rodas nepieciešamība un vēlme iemācīties strādāt ar tik izplatītu komunikācijas veidu kā WiFi. Tā kā šāda veida saziņa var ļaut ērti izveidot vienotu tīklu jūsu viedajām mājas ierīcēm un pārvaldīt tās, piemēram, ar Mobilais telefons, planšetdators vai dators, tas ir, citiem vārdiem sakot, izveidot reālu gudra māja, kas tev izmaksās desmitiem reižu lētāk nekā pērkot gatavus risinājumus veikalā. WiFi izmantošana, protams, neaprobežojas ar to un šāda veida saziņas izmantošanas piemēru ir tik daudz, ka nav jēgas tos uzskaitīt, un, ja esat nokļuvis šajā lapā, tas nozīmē, ka jums jau ir nepieciešams kaut kādu iemeslu dēļ izmantojiet WiFi, jums vienkārši jāizdomā, kā ar to pareizi strādāt.

Mēs to sakārtosim, pamatojoties uz lētāko un populārāko WiFi modulis ESP8266-01. Jūs varat iegādāties ESP8266-01 WiFi moduli mūsu vietnē.

Viena no galvenajām šāda moduļa priekšrocībām ir atmiņas un sava mikrokontrollera klātbūtne uz plates, kas ļauj tam strādāt neatkarīgi, ielādējot skici tieši pašā modulī.

Patiesībā ESP8266 WiFi moduļa modifikāciju ir diezgan daudz, un mēs tās šeit neuzskaitīsim; kad iemācīsities strādāt ar vienu, varēsit viegli sākt strādāt ar citiem. Uzreiz gribu atzīmēt, ka darbs ar WiFi var šķist diezgan sarežģīts uzdevums, un, ja bagāžā ir maz pabeigtu projektu, labāk pagaidām atteikties no WiFi komunikācijas un savos projektos izmantot radiosakarus, ar kuriem strādājot. ir daudz vieglāk saprast. Darbam ar WiFi moduļiem tiek veidotas veselas kopienas un tematiski forumi, kas vēlreiz pierāda, cik grūti vairumam cilvēku ir uzreiz saprast šāda veida komunikāciju, un, pārlasot visu informāciju, lielākā daļa vienkārši padodas. Visticamāk, es to visu nevarēšu izdarīt svarīga informācija iekļauties šī raksta ietvaros vien, un tam nav jēgas, citādi izrādīsies kārtējais apjukums. Es centīšos iet pa stingru svarīgāko punktu secības ceļu, lai jūs varētu sākt izprast šāda veida komunikācijas darbības principu un pēc tam vienkārši attīstīt savas prasmes šajā virzienā.

Tātad, sāksim un vispirms apskatīsim WiFi moduļa tapas ESP8266-01.

VCC- moduļa barošana no 3V līdz 3,6V

GND- Zeme.

RST- Atiestatīt izvadi, kas ir atbildīga par moduļa pārstartēšanu.

CH_PD- "mikroshēmas izslēgšana", kad tam tiek piegādāta strāva, tiek aktivizēta moduļa darbība.

TX- datu pārsūtīšana (UART interfeiss)

RX- datu saņemšana (UART interfeiss)

GPIO0

GPIO2- vispārējas nozīmes I/O ports

GPIO0 un GPIO2 tapas ir tieši tās pašas digitālās tapas, ar kurām mēs strādājam uz Arduino plates, lai saskartos ar dažādi sensori, un tos izmanto neatkarīgas darbības gadījumā ESP8266-01 moduļa iekšējā WiFi mikrokontrollerī.

Lai droši barotu moduli ESP8266-01, izmantojiet ārējo stabilizētu 3,3 V barošanas avotu un labāk nemēģināt atņemt strāvu no Arduino plates, jo modulis patērē strāvu līdz 215 mA un tas var slikti beigties jūsu veselībai. attīstības padome. Es ceru, ka jums nav problēmu, kur iegūt stabilizētu 3,3 V barošanas avotu, pretējā gadījumā jums ir par agru nodarboties ar šo moduli. Piemēram, man patīk izmantot šo 3,3 V un 5,0 V YWRobot barošanas moduli, lai ātri saliktu shēmas uz maizes dēļiem, kas ļauj ātri iegūt stabilizētu spriegumu 3,3 V vai 5 V uz maizes dēļa atbilstošajiem barošanas ceļiem.

Plusa savienošana (+) no mūsu 3,3 V barošanas avota uz tapu VCC modulis ESP8266-01, un mīnus (-) pieslēdziet strāvas padevi izejai GND. Šajā stāvoklī moduļa sarkanā gaismas diode iedegsies, norādot, ka barošana ir pievienota pareizi. Lai modulis tiktu aktivizēts, ir nepieciešams arī savienot plus (+) barošanas avots ar izeju CH_PD modulis ESP8266-01, un ieteicams to darīt tieši caur 10 kOhm rezistoru. Tagad, kad mēs ieslēdzam strāvu, moduļa sarkanajai gaismas diodei vajadzētu iedegties un zilajai gaismas diodei pāris reizes ātri mirgot. Ja tas notiek ar jums, tad viss ir kārtībā, esat visu pareizi savienojis un modulis darbojas. Pretējā gadījumā vēlreiz pārbaudiet savienojumu vai nomainiet moduli, jo tas, visticamāk, nedarbojas.

Uz priekšu. Lai strādātu ar ESP8266 WiFi moduli, mums ir nepieciešams USB-UART adapteris. Ir dažādi adapteri, piemēram: FT232RL, CP2102, PL2303. Bet mēs pieņemsim, ka jums nav šādu adapteru, un mēs izmantosim Arduino plati kā USB-UART adapteri. Šim nolūkam es izmantošu Arduino NANO plati, bet jūs varat izmantot jebkuru citu jūsu rīcībā esošo. Savienojums uz jebkuras plates ir identisks. Mēs veicam savienojumu saskaņā ar sekojošo shēmu.

Apskatīsim, ko mēs šeit esam paveikuši. Lūdzu, nekavējoties ņemiet vērā, ka mēs esam savienojuši Arduino dēļa tapas ar džemperi RST Un GND. Šī manipulācija atspējo mikrokontrolleri un ļauj mums izveidot īstu USB-UART adapteri no mūsu Arduino plates.

Tā kā ESP8266-01 WiFi moduli barojam no atsevišķa ārējā barošanas avota, atcerieties, ka mūsu projektos mums vienmēr ir jāpievieno visu barošanas avotu zemējums. Tāpēc mēs savienojam izeju GND Arduino dēļi ar zemējumu (-) mūsu ārējais 3,3 V barošanas avots, kas paredzēts ESP8266-01 moduļa darbināšanai.

Secinājums TX savienojiet savu Arduino plati ar tapu TX ESP8266-01 modulis. Šī līnija pārsūtīs datus no WiFi moduļa uz Arduino plati. Ikviens, kurš pārzina UART saskarni, var brīnīties: "Bet kā tas var būt? Visur viņi mācīja, ka TX ir jāpievienojas RX. TX pārraida informāciju, bet RX saņem." Un tev būs taisnība. Tieši tā, TX vienmēr ir savienots ar RX, bet gadījumā, ja mēs izgatavojam UART adapteri no Arduino, ierīces ir jāpievieno tieši. Uzskatiet, ka šis ir noteikuma izņēmums.

Līnija RX Mēs arī savienojam jūsu Arduino plati tieši ar līniju RX ESP8266-01 modulis. Šī līnija pārsūtīs informāciju no Arduino dēļa uz WiFi karte modulis. Bet mēs izveidojam šo savienojumu, izmantojot tā saukto sprieguma dalītāju, kas sastāv no diviem rezistoriem ar nominālvērtībām 1 kOhm un 2 kOhm. Mums ir jāsamazina spriegums šajā līnijā, izmantojot divus rezistorus (sprieguma dalītāju), jo Arduino plate pārraida loģisku signālu ar spriegumu 5 V, un WiFi modulis darbojas ar spriegumu 3,3 V. Lai pārveidotu loģisko signālu, mēs varētu izmantot īpašu loģiskā līmeņa pārveidotāja plati, kas, protams, būtu pareizāk, bet atkal pieņemsim, ka jums tādas nav, un mums bija jāizvēlas vienkāršāks ceļš un tas jādara, izmantojot sprieguma dalītājs.

Tagad esam savienojuši visu nepieciešamo turpmākajam darbam, bet mums joprojām ir vēl 3 neizmantoti tapas ( GPIO0, GPIO2 Un RST) ieslēgts WiFi modulis ESP8266-01. Par stabilu WiFi darbs modulis mums ir jāvelk šie atlikušie neizmantotie termināļi uz pozitīviem (+) moduļu elektropārvades līnijas caur 10 kOhm rezistoriem.

Tas pasargās mūs no dažādiem traucējumiem (traucējumiem) un padarīs moduļa darbību stabilu. Labāk to darīt uzreiz. Pretējā gadījumā nebrīnieties, ka jūsu modulis ir pastāvīgi pārslogots, rada nesaprotamu informāciju vai vispār nevēlas darboties. Pievilkšanās rezistoru izmantošana uz neizmantotām mikrokontrollera tapām ir īkšķa noteikums, ja vēlaties savos projektos stabilu darbību.

Un atkal mēs pārbaudām ESP8266-01 WiFi moduļa funkcionalitāti. Ieslēdziet strāvu un pārbaudiet, vai iedegas sarkanā gaismas diode un zilā gaismas diode pāris reizes mirgo. Ja viss notiek šādi, tad lieliski, ejam tālāk. Pretējā gadījumā mēs pārbaudām savienojumu pareizību, kā arī visu kontaktu kvalitāti. Tā var būt tikai triviāla situācija, kad desmit reizes vēlreiz visu pārbaudījāt un pārliecinājāties, ka viss ir pareizi pievienots, bet, ieslēdzot moduli, redzat, ka zilā gaismas diode nedarbojas adekvāti, pastāvīgi deg, nepārtraukti mirgo, vai vispār ne uz ko nereaģē. Tas var būt saistīts ar sliktu kontaktu kādā līnijā. Piemēram, saliekot ķēdi uz maizes dēļa, viens no rezistoriem cieši nenostājas savā vietā un tas rada traucējumus. Pārbaudiet savienojumu kvalitāti. Modulis ir ļoti jutīgs. Nepalaidiet to novārtā. Tas ir izplatīts nestabilas darbības iemesls.

Kopumā ar savienojumu esam galā. Tagad mums ir jāsagatavo programma Arduino IDE darbam ar WiFi moduli ESP8266-01. Lai to izdarītu, mums Arduino IDE ir jālejupielādē un jāinstalē nepieciešamais arhīvs ar bibliotēkām, piemēriem un ESP platēm, kas vēlāk ļaus augšupielādēt skices tieši ESP8266-01 moduļa mikrokontrollerā, mainīt programmaparatūru utt. Šī raksta vajadzībām šie iestatījumi mums, visticamāk, nebūs vajadzīgi, taču man šķiet, ka pēc tam, kad būsim izdomājuši, kā pieslēgt moduli, procedūra būs pareiza, ja nekavējoties lejupielādēsim visu, kas nepieciešams darbam ar Arduino IDE. . Principā šeit viss ir vienkāršs.

Palaidiet programmu Arduino IDE un dodieties uz izvēlni "Fails" - "Iestatījumi"

Parādītajā logā augšējā laukā mēs ierakstām “esp8266”. Rezultātā mums logā būs tikai vajadzīgā programmaparatūra. Noklikšķinot uz programmaparatūras, tiks parādīta poga "Instalēšana". Noklikšķiniet uz pogas "Instalēšana" un gaidiet, līdz viss ir instalēts. Arhīvs ir diezgan liels, apmēram 150 megabaiti, tāpēc jums būs jāgaida.

Pēc instalēšanas pabeigšanas. Mēs pārstartējam Arduino IDE un redzam, kā izvēlnē “Rīki” - “Dēļi” ir parādījušās jaunas ESP plates. Tas ir viss. AR Arduino iestatīšana Mēs esam pabeiguši ar IDE. Pagaidām šie iestatījumi mums nav vajadzīgi, taču turpmākajā darbā mēs bez tiem nevarēsim iztikt.

Mums viss ir savienots un sagatavots, tagad mēs varam sākt saprast vadības ierīces. Patiesībā tagad mēs turpināsim pārbaudīt un konfigurēt moduli, izmantojot AT komandas, un bez tā nevar iztikt. WiFi moduļi ir ieviesti tā, ka visa saziņa ar tiem notiek, izmantojot tā sauktās AT komandas, kas ir aparatūras moduļa programmaparatūrā. Visas AT komandas šeit neuzskaitīsim, to ir diezgan daudz un, ja vēlies visu rūpīgi izpētīt, tās var viegli atrast internetā. Un tagad mēs izmantosim tikai visnepieciešamāko, lai sāktu.

Un tā mēs savienojam savu Arduino plati, izmantojot USB kabelis uz datoru. A ārējais avotsēdiens, kas baro WiFi modulis ESP8266-01 Vēl nav nepieciešams to ieslēgt. Sāksim palaist Arduino programma IDE, izvēlnē “Rīki” atlasiet mūsu Arduino plati, manā gadījumā tas ir Arduino NANO, un jūs izvēlaties savu. Tāpat neaizmirstiet izvēlēties portu, kuram ir pievienots mūsu Arduino. Es ceru, ka jūs to visu saprotat un zināt, kā to izdarīt.

Atvērtā ostas uzraudzība "Rīki" - "Portu monitors". Porta ātruma izvēle 74880 (ar šo ātrumu modulis sāk darboties) un kreisajā pusē esošajā sarakstā atlasiet “NL & CR”.

Tagad mēs pievienojam ārēju barošanas avotu, kas darbina mūsu WiFi moduli. Pēc tam ostas monitorā vajadzētu redzēt aptuveni šādu informāciju.

Šeit mēs redzam informāciju par mūsu WiFi moduli (ātrums, atmiņas apjoms uz kuģa utt.). Saņemtā informācija var atšķirties atkarībā no versijas WiFi programmaparatūra modulis. Nekoncentrēsimies uz to. Svarīgs ir kaut kas cits. Zemāk mēs redzam bezjēdzīgu rakstzīmju kopu, kas nozīmē, ka mūsu iestatītais porta ātrums (74880 bodi) ir piemērots tikai bootstrap moduli, lai normāli redzētu šo informāciju, taču šis ātrums nav piemērots normālai saziņai ar WiFi moduli.

Lai izvēlētos pareizo porta ātrumu, mēs vienkārši mainīsim porta ātrumu un nosūtīsim simbolus uz portu (lauks augšpusē un poga nosūtīt) AT līdz saņemsim atbildi labi. Ja mēģināt nosūtīt rakstzīmes tieši tagad AT uz portu ar ātrumu 74880, atbildē saņemsiet vēl vienu vai divas bezjēdzīgas rakstzīmes.

Mēģiniet nekavējoties iestatīt ātrumu uz 115 200 bodu un nosūtīt AT komandu. Visbiežāk moduļi tiek mirgoti ar šo ātrumu.

Šis ir attēls, kas jums jāredz porta monitorā. Ja atbildē joprojām saņemat nesaprotamu rakstzīmju kopu, samaziniet ātrumu un sūtiet atkārtoti AT komandas, līdz atgriežas atbilde labi. Ja izmēģinājāt visus ātrumus un nesaņēmāt pareizo atbildi, tad jums nav paveicies, un modulis tiek mirgots ar programmaparatūru ar nestandarta ātrumu. Tad atliek tikai atjaunināt moduli ar parasto programmaparatūru, taču šī ir atsevišķa raksta tēma.

Ceru, ka viss ir kārtībā un esat izvēlējies pareizo ātrumu. Starp citu, ja mēģināt izslēgt un atkal ieslēgt WiFi moduli pēc tam, kad esat izvēlējies pareizo ātrumu, tad tās pašas sākotnējās informācijas vietā, kas tika pareizi parādīta ar ātrumu 74880 bodi, jūs, gluži pretēji, redzēt jauktu rakstzīmju kopu, bet beigās jūs redzēsit vārdu “gatavs”. Bet mums ir iespēja skatīt šo sākotnējo informāciju normālā formā ar pareizo ātrumu; lai to izdarītu, mums ir programmatiski jāpārstartē modulis, izmantojot komandu AT AT+RST.

Lai uzzinātu sava ESP8266-01 WiFi moduļa programmaparatūras versiju, jums ir jānosūta komanda porta monitoram. AT+GMR un atbildot uz to, jūs saņemsiet aptuveni šādu informāciju:

ESP8266-01 WiFi modulis var darboties gan piekļuves punkta, gan klienta režīmā. Lai modulis darbotos visos režīmos vienlaikus, nosūtiet komandu porta monitoram AT+CWMODE=3 un atbildi jums vajadzētu saņemt labi.

Komanda AT+CWLAPļaus jums redzēt visus redzamos WiFi piekļuves punktus Šis brīdis jūsu modulis. Piemēram, mans modulis savā pārklājuma zonā šobrīd redz tikai trīs WiFi piekļuves punktus. Atbildei vajadzētu būt apmēram šādai:

Piemēram, mēs zinām trešā piekļuves punkta paroli un, lai ar to izveidotu savienojumu, mēs izpildām komandu AT+CWJAP="vārds","parole", manā gadījumā šī komanda izskatās šādi AT+CWJAP="dsl_unlim_512_home","11111111", uz ko saņemam veiksmīgu atbildi:

Komandas parametri tiek ierakstīti ESP8266-01 WiFi moduļa zibatmiņā, un, ja mēs izslēdzam moduli un atkal to ieslēdzam, tas automātiski izveidos savienojumu ar šo piekļuves punktu. Skatieties, nejauši neļaujiet komandā atstarpi, pretējā gadījumā jūs saņemsit atbildi KĻŪDA. Lūdzu, ņemiet vērā, ka jaunākajās programmaparatūras versijās ir ieteicams izmantot komandu AT+CWJAP_CUR, tas ir, komanda izskatīsies AT+CWJAP_CUR="vārds","parole". Ja pēkšņi mēs aizmirsām, ar kuru piekļuves punktu ir savienots mūsu modulis, mums ir jānosūta komanda AT+CWJAP? vai AT+CWJAP_CUR? un kā atbildi saņemsim piekļuves punktu, kuram pašlaik ir pievienots WiFi modulis.

Ar savienojumu un sākotnējā iestatīšana WiFi modulis ESP8266-01 mēs to izdomājām. Modulis darbojas un ir gatavs Jūsu turpmāko projektu īstenošanai. Vienkārši nav iespējams analizēt visus iespējamos piemērus darbam ar šo moduli viena raksta ietvaros, un mēs to aplūkosim turpmākajos rakstos. Un tiem, kas nav īpaši labi orientēti ar programmēšanu, bet ļoti vēlas ātri sākt pārvaldīt savus projektus, izmantojot WiFi, iesaku iepazīstināt tos ar RemoteXY WiFi projektu izstrādātāju. Šī vietne palīdzēs ērti izveidot vadības interfeisu mobilajam tālrunim vai planšetdatoram un izmantot to, lai vadītu ierīci, kurai pievienojat WiFi moduli.

Moule esp-01
Shēma pareizs savienojums esp-01 modulis programmēšanai un programmaparatūrai.

Modulis tiek mirgots, pārslēdzoties uz programmēšanas režīmu; lai to izdarītu, turiet nospiestu pogu FLASH, pēc tam, neatlaižot to, īsi nospiediet pogu RESET un atlaidiet FLASH.
Modulis tiek pārslēgts uz programmēšanas režīmu.
Terminālī šobrīd var redzēt

ets 2013. gada 8. janvāris, pirmais iemesls:2, sāknēšanas režīms: (1.6)
sāknēšanas režīms: (1,6) - pārstartējiet programmēšanas režīmā, izmantojot RESET
sāknēšanas režīms: (1,7) - barošanas atsāknēšana programmēšanas režīmā - kas nav pilnīgi pareizi.

Programmaparatūrai es izmantošu programmu NODEMCU PROGRAMMATŪRAS PROGRAMMĒTĀJS
(Tēmai tiks pievienots arhīvs ar programmu)
Izpakojiet arhīvu un manā gadījumā palaidiet programmas\Win32\Release\ESP8266Flasher.exe 32 bitu versiju.
Mēs to konfigurējam modulim, manā gadījumā tas ir 1 megabaits zibatmiņas vai 8 megabiti.




Pirmais solis ir dzēst atmiņu ar tukšu 1 MB failu.
Šis ir izvēles vienums. Varat izlaist dzēšanu un pāriet uz programmaparatūru.
Tiem, kam ir vairāk vai mazāk atmiņas, nepieciešams tukšs atbilstoša izmēra fails.
Tālāk mēs nosakām, kāda programmaparatūra ir nepieciešama!
Var izmantot kā gatava programmaparatūra uz NODEMCU un no dizainera, lai montētu ar nepieciešamajiem moduļiem.
Piemēram, viens no vecajiem pārbaudītajiem NODEMCU

Konstruktors wifi-iot.com/
Konstruktors nodemcu-build.com/
vai lejupielādējiet jaunāko

Problēmas ar programmaparatūru
Ja Esp8266 modulis nemirgo, pārbaudiet uzvilkšanas vietas un pareizo savienojumu ar GND GPIO0. Un arī vai RX TX ir sajaukti.
Terminālī varat pārbaudīt, vai tiek parādīts sāknēšanas režīms:(1,6) vai sāknēšanas režīms:(1,7).

Ja pēc neveiksmīga programmaparatūra modulis nedarbojas, mēģiniet izdzēst atmiņu ar tukšu veidlapas failu, kas ir jūsu atmiņas lielums.

Ja Modulis nedarbojas pēc veiksmīgas programmaparatūras un sūta uz portu bezgalīgi daudz atkritumu (datu pārraides gaismas diode var mirgot), tas notiek, mirgojot jaunākās Nodemcu versijas, tad jums papildus būs jāievieto fails atmiņas apgabalā, atkarībā no atmiņas mikroshēma.
Informācija par atmiņu tika ņemta no nodemcu vietnes.
0x7c000 512 kB, tādi moduļi kā ESP-01,03,07
0xfc000 1 MB, tādi moduļi kā ESP8285, PSF-A85, kā arī daži esp-01,01s veidi
0x1fc000 2 MB
0x3fc000 4 MB, moduļa tips ESP-12E, NodeMCU devkit 1.0, WeMos D1 mini utt.

Ja nekas cits neizdodas, rakstiet...

Pievienošu oficiālo iekārtu ražotāja grupu

Wi-Fi modulis ESP-01 ir vispopulārākais ESP8266 sērijas modulis. Saziņa ar datoru vai mikrokontrolleri tiek veikta, izmantojot UART, izmantojot AT komandu kopu. Turklāt moduli var izmantot kā neatkarīgu ierīci, lai to izdarītu, tajā jāielādē sava programmaparatūra. Varat programmēt un lejupielādēt programmaparatūru, izmantojot Arduino IDE versiju virs 1.6.5. Lai mirgotu moduļa programmaparatūru, jums būs nepieciešams UART-USB adapteris. ESP-01 moduli var plaši izmantot IoT (lietiskā interneta) ierīcēs.

Specifikācijasmodulis

  • Wi-Fi 802.11 b/g/n
  • WiFi režīmi: klients, piekļuves punkts
  • izejas jauda- 19,5 dB
  • Barošanas spriegums - 1,8 -3,6 V
  • Strāvas patēriņš - 220 mA
  • GPIO porti: 4
  • Pulksteņa frekvence procesors - 80 MHz
  • Kodu atmiņas ietilpība
  • RAM- 96 KB
  • Izmēri - 13×21 mm

Savienojums

Apskatīsim AT komandu režīmu. Lai to izdarītu, pievienojiet moduli datoram, izmantojot USB-UART adapteri. Moduļa tapu mērķis (sk. 1. attēlu):
  • VCC — +3,3 V
  • GND - zemējums
  • RX, TX - UART tapas
  • Izvade CH_PD — mikroshēmas iespējošana
  • GPIO0, GPIO2 - digitālie kontakti
Modulis prasa ārējais barošanas avots 3,3 V.

1. attēls. ESP-01 moduļa tapu piešķiršana

Savienojuma shēma saziņai ar moduli AT komandas režīmā (2. attēls):

2. attēls. Shēma ESP-01 moduļa savienošanai ar datoru, izmantojot seriālo portu

3. attēls. Montāžas shēma

Lai nosūtītu AT komandas operētājsistēmā Mac OS X, varat izmantot programmu CoolTerm operētājsistēma Windows programma Termīts. COM porta ātrumu, lai izveidotu savienojumu ar moduli, var uzzināt tikai eksperimentāli; dažādām programmaparatūrām tas var atšķirties. Manam modulim ātrums izrādījās 9600 bodi. Turklāt apmaiņu bija iespējams izveidot tikai pēc CH_PD tapas atvienošanas un atkārtotas pievienošanas barošanas avotam. Pēc savienojuma izveides terminālī ierakstiet AT un no moduļa jāsaņem OK atbilde. Komanda AT+GMR dod moduļa programmaparatūras versijas numuru, komanda AT+RST pārstartē moduli (skat. 4. att.). AT pamata komandu saraksts ir atrodams šajā dokumentā (ESP8266ATCommandsSet.pdf).

4. attēls. AT komandu nosūtīšana modulim no Termite

Ja AT komandu režīms jums nav ērts, plati var konfigurēt, izmantojot programmu AppStack ESP8266 Config, kuru var lejupielādēt no saites http://esp8266.ru/download/esp8266-utils/ESP8266_Config.zip. Izskats Programma ir parādīta 5. attēlā. Modulis ir konfigurēts, izmantojot GUI, savukārt komandu izpildi var redzēt programmas monitorā (skat. 6. att.). Monitors var arī nosūtīt AT komandas no komandrindas.

5. attēls. AppStack ESP8266 Config programma

6. attēls. Programmas AppStack ESP8266 Config sērijas monitors

Ir divas šī moduļa izmantošanas iespējas:

  • savienojumā ar mikrokontrolleri (piemēram, Arduino), kas vadīs moduli, izmantojot UART;
  • rakstiet savu programmaparatūru, lai izmantotu ESP8266 kā atsevišķu ierīci.

Lietošanas piemērs

Apskatīsim piemēru DHT11 mitruma un temperatūras sensora pievienošanai ESP-01 modulim un datu nosūtīšanai uz mākoņpakalpojums ThingSpeak (https://thingspeak.com/). Mums būs nepieciešamas šādas daļas:
  • modulis ESP-01
  • maizes dēlis
  • mitruma un temperatūras sensors DHT11
  • rezistors 10 kOhm
  • savienojošie vadi
  • barošana 3 - 3,6V
Vispirms savienosim DS18B20 sensoru ar ESP-01 moduli. DS18B20 ir digitālais temperatūras sensors, kas darbojas, izmantojot viena vada 1 vadu interfeisu. Sensora DS18B20 savienojuma shēma ar moduli ir parādīta attēlā. 7.

7. attēls. DHT11 sensora savienojuma shēma ar ESP-01 moduli.

Pēc tam jums ir jāizveido profils pakalpojumā ThingSpeak. Pakalpojumā ir norādījumi par datu nosūtīšanu uz pakalpojumu un datu saņemšanu no pakalpojuma.

8. attēls. Pilnīga ķēde.

Mēs ierakstīsim programmu Arduino vide IDE ESP8266. Mēs izmantosim ESP8266WiFi.h (iebūvēta) un OneWire.h bibliotēkas. Augšupielādēsim skici no 1. saraksta uz Arduino plati – datu saņemšana no temperatūras sensora un datu nosūtīšana uz ThingSpeak servisu. ESP-01 moduļa WiFi piekļuves punktam ir jāievada savi dati:

  • const char *ssid;
  • const char *parole;
kā arī jūsu lietojumprogrammas privateKey parametrs pakalpojumā ThingSpeak. 1. saraksts // vietne // Iekļaujiet bibliotēku darbam ar esp8266 #include // Iekļaujiet DHT bibliotēku darbam ar DHT11 #include // DATU kontakta savienojuma tapa #define DHTPIN 4 // DHT11 sensors #define DHTTYPE DHT11 // DHT objekta gadījuma izveide DHT dht(DHTPIN, DHTTYPE); //ssid WiFi tīkli savienojumi const char ssid = "********"; // WiFi parole savienojuma tīkli const char parole = "******"; // ThingSpeak Server const char* host = "184.106.153.149"; // Jūsu ThingSpeak lietojumprogrammas API ATSLĒGA const char* privateKey = "****************"; // mainīgie temperatūras un mitruma uzglabāšanai float temp; peldošais mitrums // mainīgais mērījumu intervālam neparakstīts garš millis_int1=0; void setup() ( // startēt seriālo portu Serial.begin(115200); delay(10); Serial.print("Savienot ar WiFi"); Serial.println(ssid); // Savienot, izmantojot WiFi WiFi.begin( ssid , parole); while (WiFi.status() != WL_CONNECTED) ( delay(500); ) Serial.println("WiFi savienots"); // start dht dht.begin(); ) void loop() ( / / pagaidiet 10 minūšu intervālu if(milis()-millis_int1>=10*60000) ( Serial.print("savienojums ar ThingSpeak"); Serial.println(host); // Izmantojiet WiFi klienta WiFiClient klientu; ja (!client.connect (host, 80)) ( Serial.println("savienojums neizdevās"); return; ) // iegūt temperatūras datus temp = get_data_temperature(); mitrums = get_data_humidity(); // Izveidot URL ar pieprasījumu serverim String url = "/ update?key="; url += privateKey; url += "&temp="; url += temp; url += "&humidity="; url += mitrums; // Sūtīt pieprasījumu uz serveri client.print(String(" GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Savienojums: aizvērt\r\n\r \n"); kavēšanās (10); // ThingSpeak servera atbilde while(client.available())( String req = client.readStringUntil("\r"); Serial.print(req); ) ) ) Tagad pakalpojumā ThingSpeak mēs varam apskatīt rādījumu grafiku mūsu DHT11 temperatūras sensora (9. attēls).

9. attēls. DS18B20 temperatūras sensora rādījumu grafiks pakalpojumā ThingSpeak.

Bieži uzdotie jautājumi FAQ

1. Modulis nereaģē uzAT komandas
  • Pārbaudiet, vai modulis ir pareizi pievienots;
  • Pārbaudiet, vai Rx, Tx kontakti ir pareizi savienoti ar UART-USB adapteri;
  • Pārbaudiet CH_PD tapas savienojumu ar 3,3 V;
  • Eksperimentāli izvēlieties sakaru ātrumu seriālajā portā.
2. ESP-01 modulis nesaņem temperatūras datus no sensoraDHT11
  • Pārbaudiet, vai DHT11 sensors ir pareizi pievienots modulim.
3. Dati netiek pārsūtīti uz pakalpojumu ThingSpeak
  • Pārbaudiet moduļa savienojumu ar WiFi piekļuves punktu;
  • Pārbaudiet WiFi piekļuves punkta savienojumu ar internetu;
  • Pārbaudiet, vai pieprasījums pakalpojumam ThingSpeak ir pareizs.

... Kopumā šis materiāls neaprobežojas tikai ar vienu Arduino tēmu.

ESP8266 tēma ir diezgan sarežģīta. Bet, ja strādājat ar šiem Wi-Fi moduļiem Arduino IDE izstrādes vidē, ieejas slieksnis samazinās līdz vidējam Arduino lietotājam pieņemamam līmenim. Un ne tikai Arduino puisis, bet arī jebkura persona, kurai ir vēlme kaut ko izdomāt par IoT (lietu internetu) tēmu, netērējot daudz laika, lasot mikroshēmas dokumentāciju un pētot šo moduļu API.

Šis video pilnībā dublē materiālu, kas sniegts zemāk esošajā rakstā.

Nu, mēs jau zinām, kā pieslēgt ESP8266 un ievietot to programmēšanas režīmā, tagad pāriesim pie kaut kā noderīgāka.

Es teikšu uzreiz, ka, ieprogrammējot moduli Arduino izstrādes vidē, mēs iznīcinām sākotnējo programmaparatūru un vairs nevarēsim strādāt ar moduli, izmantojot AT komandas. Man personīgi tas neliek auksts/karsts, taču, ja kādam tas ir nepieciešams, raksta beigās es jums parādīšu, kā modulī vai kaut kādā sāknēšanas ielādētājā, piemēram, NodeMcu, ievietot sākotnējo programmaparatūru.

Lai sāktu, lejupielādējiet no oficiālās vietnes jaunākā versija Arduino IDE, pašlaik 1.6.7. Vecākas versijas, piemēram, 1.0.5. nederēs, jo tiem vienkārši nav vajadzīgās funkcionalitātes, un dejot ar tamburīnu mūs neinteresē, vai ne?

Mēs palaižam izstrādes vidi un nekavējoties dodamies uz Fails/Iestatījumi:

Http://arduino.esp8266.com/stable/package_esp8266com_index.json

Pēc tam dodieties uz Tools/Board:/Board Manager...:

Mūsu priekšā parādīsies valdes pārvaldnieka logs, ritiniet to līdz pašai apakšai, un, ja viss ir izdarīts pareizi, mēs redzēsim kaut ko līdzīgu:

Noklikšķiniet uz kursora uz uzraksta " esp8266 autors ESP8266 kopiena"pēc tam mums ir poga "Instalēt", izvēlieties vajadzīgo versiju, paņemu jaunāko, šodien ir 2.1.0 un instalēju. Izstrādes vide lejupielādēs tai nepieciešamos failus (apmēram 150 megabaiti) un pretī uzraksts" esp8266 autors ESP8266 kopiena Tiks parādīts "INSTALLED", tas ir, instalēts:

Mēs ritinām uz leju dēļu sarakstu un redzam, ka sarakstā ir daudz dažādu ESP, ņemiet “Generic ESP8266 moduli”:

Dodieties uz "Rīki" un atlasiet vajadzīgo COM portu (man tas ir COM32) Arduino vai USB UART pārveidotāju, pēc tam iestatiet Augšupielādes ātrumu: "115200":

Mēs iestatījām ātrumu uz 74880 un “NL & CR” un atkal izslēdzam un pieslēdzam strāvu, un tas atbildēs ar atkļūdošanas informāciju:

Ņemiet vērā, ka 74880 nav ESP8266 galvenais ātrums, tas tikai nosūta atkļūdošanas informāciju. Ja modulis neko nesūta uz konsoli, iespējams, kaut kas ir pievienots nepareizi.

Pēc noklusējuma ātrumam vajadzētu būt 115200, bet dažos gadījumos tas var būt 9600 un citi... Tāpēc mēģiniet to atrast.

Pēc vajadzīgā ātruma izvēles mēs nosūtām “AT” moduli un tam vajadzētu atbildēt, ka viss ir “OK”. Komanda "AT+GMR" parāda informāciju par programmaparatūru.

Pirms sākat mirgot ESP8266 Arduino IDE, iesaku izlasīt rakstu līdz beigām.

Tagad mēģināsim uzzibināt ESP8266, izmantojot Arduino IDE. Mēs ievietojām moduli programmēšanas režīmā (es rakstīju, kā to izdarīt iepriekšējā rakstā).

Pievienosim zibspuldzei standarta LED:

// Autors: PodelkinTs kungs youtube.com/RazniePodelki // special to geektimes.ru/post/271754/ #define TXD 1 // GPIO1/TXD01 void setup() ( pinMode(TXD, OUTPUT); ) void loop() ( digitalWrite (TXD, HIGH); aizkave (1000); digitalWrite (TXD, LOW); aizkave (1000); )

Mirgoja? Tātad viss tika izdarīts pareizi. Kur es dabūju, ka gaismas diode ir savienota ar pirmo tapu? Iepriekšējā rakstā ir bilde ar dažādu moduļu spraudņiem, kā arī ir pieslēgvietu marķējums, lietojot Arduino bootloader (tapas ir atzīmētas rozā krāsā).

Gaismas diodes mirgošana, protams, ir laba, taču mums ir jāinstalē kaut kāds tīmekļa serveris vai jāsāk kontrolēt LED, izmantojot vismaz pārlūkprogrammas pogas, vai ne? Bet par to es jums pastāstīšu citreiz.

Un tagad kā atjaunot sākotnējo programmaparatūru, un kā pat flash moduli ar trešās puses bootloader. ESP8266 ir tāda programma kā NodeMCU Flasher, kas sākotnēji ir paredzēta NodeMCU sāknēšanas ielādētāja mirgošanai. Bet, kā izrādījās, tas lieliski mirgo citu programmaparatūru.

Ērtības labad rakstam pievienošu arhīvu ar šo programmu un programmaparatūru, taču jūs vienmēr varat lejupielādēt jauna versija NodeMCU Flasher.

Mapē “nodemcu-flasher-master” ir 2 mapes Win64 un Win32, un atkarībā no operētājsistēmas bitu dziļuma atlasiet vajadzīgo. Pēc tam mapē Release palaidiet “ESP8266Flasher.exe” un skatiet programmas saskarni:

Atlasiet vajadzīgo COM portu un dodieties uz cilni “Config”, noņemiet krustiņu blakus “INTERNAL://NODEMCU” un novietojiet to vienu punktu zemāk, kā parādīts ekrānuzņēmumā:

(Ja vēlaties mirgot NodeMCU sāknēšanas ielādētāju, noņemiet krustiņu vietā, kur tā nebija, un novietojiet to tur, kur tas bija, tas ir, blakus “INTERNAL://NODEMCU”).

Pēc tam noklikšķinām uz zobrata un atlasām, kur atrodas mūsu programmaparatūra, programmaparatūra parasti ir *.bin formātā (pievienotajā arhīvā tā ir “v0.9.5.2 AT Firmware.bin”, kas atrodas galvenajā mapē) un atlasiet arī “0x00000” vai augstāku.

Mēs atkal atgriežamies cilnē “Darbība”, pārslēdzam moduli programmēšanas režīmā un noklikšķiniet uz “Flash”:

Tas ir viss, modulis ir sācis mirgot, pēc mirgošanas neaizmirstiet pārstartēt moduli un voila, tas ir mirgots ar mums nepieciešamo programmaparatūru.

Mēs pārbaudām ar AT komandu “AT+GMR”, vai mēs visu izdarījām pareizi:

Kā redzat, viss noritēja gludi.

Kā izmantot ESP-01 moduli, lai vadītu LED, izmantojot internetu, moduli, kas ļauj kontrolēt jebkuru elektriskā ierīce.

Šajā ESP8266 apmācībā mēs izmantojam ESP-01 moduli, lai kontrolētu LED, izmantojot internetu. ESP8266 ir lēta, bet efektīva platforma saziņai internetā.

To ir arī viegli lietot ar Arduino. Pēc šīs nodarbības pabeigšanas iegūsi pamatzināšanas par jebkuras elektroierīces vadīšanu caur internetu no jebkuras vietas pasaulē!

Šeit mēs izmantosim USB-TTL pārveidotāju, lai programmētu ESP8266 ESP-01. Un mēs izmantosim, lai izstrādātu tīmekļa serveri tālvadība LED.

Kā tas strādā

ESP8266 var vadīt no vietējā Wi-Fi tīkla vai no interneta (pēc porta pārsūtīšanas). ESP-01 modulim ir GPIO tapas, kuras var ieprogrammēt, lai ieslēgtu vai izslēgtu LED vai releju, izmantojot internetu. Moduli var ieprogrammēt, izmantojot Arduino USB-TTL pārveidotāju, izmantojot seriālās tapas (RX, TX).

Aparatūras pievienošana ESP8266

Mēs varam izmantot USB-TTL pārveidotāju vai izmantot Arduino, lai programmētu ESP8266. Šeit ir trīs metodes, kuras varat izmantot, lai ielādētu kodu savā ESP8266 — izvēlieties sev piemērotāko. Skatiet katras opcijas diagrammas un atbilstoši konfigurējiet savu aprīkojumu.

1. USB-TTL pārveidotājs, izmantojot DTR savienotāju

Ja izmantojat USB-TTL pārveidotāju ar DTR izvadi, lejupielāde noritēs bez problēmām. Lūdzu, ņemiet vērā, ka, to darot, seriālais monitors nedarbosies.

USB TTL → ESP8266 ESP-01
GND → GND
TX → RX
RX → TX
RTS → RST
DTR → GPIO0

2. USB uz TTL pārveidotājs bez DTR izejas

Lai savienotu USB uz TTL pārveidotāju bez DTR tapas, mums jāizmanto manuālā pārnesumkārba. Šim nolūkam mēs izmantojam divas pogas - skatiet šo diagrammu:

USB TTL → ESP8266 ESP-01
GND → GND
TX → RX
RX → TX
Atiestatīšanas poga → RST
Zibspuldzes poga → GPIO0

Lejupielādējot kodu, noklikšķiniet uz pogas "Lejupielādes" (Flash). Turiet pogu nospiestu, kamēr vienreiz nospiežat pogu Reset. Tagad varat atlaist Flash pogu. ESP8266 tagad ir režīmā, kurā varat augšupielādēt skici.

3. Izmantojot Arduino Uno, lai augšupielādētu kodu ESP8266

Lai palaistu kodu, varat izmantot ESP8266 ESP-01. Lejupielādējot kodu, rīkojieties tāpat kā otrajā punktā – turiet nospiestu pogu "Lejupielādēt", kamēr vienreiz nospiežat reset, un pēc tam atlaidiet Flash pogu.

ARDUINO → ESP8266 ESP-01
GND → GND
TX → TX
RX → RX
Atiestatīšanas poga → RST
Zibspuldzes poga → GPIO0

ESP8266 koda lejupielāde

Izmantojiet kādu no iepriekš minētajām metodēm un atveriet, pēc tam izvēlnē atlasiet ESP8266 plati:

Rīki → Tāfele → Vispārējs ESP8266 modulis
(Rīki → Tāfele → ESP8266 modulis)

Piezīme. Ja neesat instalējis un konfigurējis ESP8266 Arduino plati, lūdzu, dariet to, veicot darbības, kas norādītas šajā apmācībā. Tad jūs varat doties tālāk.

Tagad kopējiet tālāk norādīto kodu Arduino IDE un noklikšķiniet uz lejupielādes pogas. Mainiet SSID uz punktu Wi-Fi piekļuve un nomainiet paroli uz savu Wi-Fi parole un apkopot.

#iekļauts const char* ssid = "YOUR_SSID";//ierakstiet savu ssid const char* password = "YOUR_PASSWORD";//ievadiet savu paroli int ledPin = 2; // ESP8266 WiFiServer servera(80) GPIO2;//Service Port void setup() ( Serial.begin(115200); delay(10); pinMode(ledPin, OUTPUT); digitalWrite(ledPin, LOW); // Savienojuma izveide ar WiFi tīkls Serial.println(); Serial.println(); Serial.print("Savienojuma izveide ar "); Serial.println(ssid); WiFi.begin(ssid, parole); while (WiFi.status() != WL_CONNECTED ) ( delay(500); Serial.print("."); ) Serial.println(""); Serial.println("WiFi savienojums"); // Startējiet serveri server.begin(); Serial.println( "Serveris palaists"); // Drukājiet IP adresi Serial.print("Izmantojiet šo URL, lai izveidotu savienojumu: "); Serial.print("http://"); Serial.print(WiFi.localIP()); Serial .println("/"); ) void loop() ( // Pārbaudiet, vai klients ir pieslēdzies WiFiClient client = server.available(); if (!client) ( return; ) // Pagaidiet, kamēr klients nosūtīs dažus datus Serial .println("jauns klients"); while(!client.available())( delay(1); ) // Lasiet pieprasījuma pirmo rindiņu String request = client.readStringUntil("\r"); Serial.println (pieprasījums); client.flush(); // Atbilst pieprasījumam int vērtībai = LOW; if (request.indexOf("/LED=ON") != -1) ( digitalWrite(ledPin, HIGH); vērtība = HIGH; ) if (request.indexOf("/LED=OFF") != -1)( digitalWrite(ledPin, LOW); vērtība = LOW; ) //Iestatiet ledPin atbilstoši pieprasījumam //digitalWrite(ledPin, value); // Atgriezt atbildi client.println("HTTP/1.1 200 OK"); client.println("Satura veids: teksts/html"); client.println(""); // neaizmirstiet šo vienu client.println(""); client.println(" "); client.print("Led tapa tagad: "); if(vērtība == AUGSTS) ( client.print("Ieslēgts"); ) else ( client.print("Izslēgts"); ) client.println( "

"); client.println ("Noklikšķiniet šeit ieslēdziet LED 2. tapu
"); client.println ("Noklikšķiniet šeit izslēdziet LED 2. tapu
"); client.println(""); aizkave(1); Serial.println ("Klients ir atvienots"); Serial.println(""); )

Atveriet seriālo monitoru un tīmekļa pārlūkprogrammā atveriet seriālajā monitorā redzamo URL. Savienojiet GPIO 2 no ESP8266 ar garāko LED tapu. Tagad jūs varat kontrolēt savu LED attālināti, izmantojot internetu!

Noņemiet visus vadus, kas bija nepieciešami, lai lejupielādētu kodu. Modulis LM1117 tiek izmantots, lai nodrošinātu regulētu 3,3 V izeju, kas ļaus ESP8266 vai ESP-01 moduli padarīt atsevišķu.

ESP8266 savienošana ar internetu

Pašlaik ESP8266 modulis ir pieejams tikai caur lokālais tīkls Bezvadu internets. Lai pārvaldītu ierīces no interneta, maršrutētājā ir jāveic portu pāradresācija.

Lai to izdarītu, atrodiet savas sistēmas IP adresi, izmantojot termināļa komandu "ifconfig", vai dodieties uz vietni whatsmyip.org. Kopējiet savu IP adresi. Tagad atveriet maršrutētāja iestatījumu un dodieties uz Pārsūtīšanas iestatījumi. Ievadiet informāciju par “Service Port” un “IP Address”. Pakalpojuma ports ir porta numurs no jūsu Arduino koda (servisa ports: 80):

WiFiServer serveris(80);//Pakalpojuma ports

IP adrese ir tā, kuru norādījāt iepriekš. Pārējos iestatījumus atstājiet kā noklusējuma iestatījumus. Tagad dodieties uz pārlūkprogrammu un ievadiet adresi: xxx.xxx.xx.xx: 80. Jāatveras lapai, lai vadītu LED.