- Nepieciešamie materiāli:
- PIC mikrokontrollera programmēšana:
- ESP8266 bibliotēkas funkcijas:
- Programmas paraugs:
- Simulācijas izeja:
- Rezultāta pārbaude:
- Funkciju pievienošana ESP8266 bibliotēkai:
Šajā rakstā apspriedīsim, kā WIFI moduli ESP8266 sasaistīt ar PIC mikrokontrolleru. Līdz šim jūs, iespējams, izmantojāt moduli ESP8266 kā atsevišķu mikrokontrolleru vai arī izmantojāt to kopā ar Arduino bibliotēku. Bet, kad runa ir par hardcore iegulto sistēmu projektiem, mums vajadzētu zināt, kā to izmantot arī ar PIC mikrokontrolleriem. Tas palīdzēs jums pielāgot savus projektus dizaina perspektīvā un vienlaikus padarīt tos lētus.
ESP8266 moduļiem ir pievienota noklusējuma programmaparatūra, tāpēc mēs varam programmēt moduli, izmantojot AT komandas. Šīs komandas ir jānosūta, izmantojot seriālo sakaru kanālu. Šis kanāls tiek izveidots starp PIC un ESP8266 moduli, izmantojot USART moduli PIC mikrokontrollerī . Visu darbu uzraudzīs un par to ziņos lietotājam, izmantojot 16x2 LCD displeju. Tādējādi šajā apmācībā tiek pieņemts, ka jums ir dažas pamatzināšanas par USART moduli PIC, LCD saskarni ar PIC un AT komandu izmantošanu ESP8266. Ja tas nav izdarīts, varat atgriezties saistītajās apmācībās, lai tās iepriekš iemācītos.
Nepieciešamie materiāli:
Lai pabeigtu šo apmācību, jums būs nepieciešama šāda aparatūra
- PIC16F877A
- 20MHz kristāla oscilators
- 7805
- LM317
- ESP8266
- 16 * 2 LCD displejs
- PicKit3 programmētājs
- Rezistori (1K, 220ohm, 360ohm)
- Kondensatori (1uF, 0.1uF, 33pF)
- Džemperu vadi
- 12 V adapteris PIC un ESP moduļa darbināšanai
Aparatūra:
Pilna projekta shēma ir parādīta šeit
Shēma sastāv no divām sprieguma regulatora ķēdēm, viena ir + 5 V regulators, ko izmanto PIC mikrokontrollera darbināšanai, un otrs ir 3,3 V regulators, kas darbina moduli ESP8266. + 5 V regulē, izmantojot 7805 (lineārā sprieguma regulatora IC). 3.3V regulē, izmantojot LM317 (mainīgā sprieguma regulatoru). ESP8266 modulis patērē daudz strāvas (~ 800mA), tādēļ, ja jūs projektējat savu barošanas avotu, pārliecinieties, ka tas var piegādāt tik lielu strāvu. Pārliecinieties arī, vai PIC un ESP8266 moduļa zemējuma tapas ir savienotas kopā.
Tātad tagad mēs zinām, ka PIC darbojas ar + 5V un ESP8266 darbojas ar 3,3 V voltu. Lai izveidotu USART sakarus starp šiem diviem moduļiem, mums ir nepieciešama 5 V - 3,3 V loģiskā pārveidotāja ķēde, kā parādīts iepriekšējā attēlā. Šī shēma ir nekas cits kā potenciāls dalītājs, kas ienākošo + 5V vienkārši pārveido par 3.3V. Tas novērsīs ESP8266 3,3 V pieļaujamo RX tapu no + 5 V.
Esmu izveidojis PIC un ESP moduļus uz divām atsevišķām perf plāksnēm, kā parādīts šajās apmācībās. Tādā veidā es varu tos universāli izmantot līdzīgākiem projektiem
- LED aparatūra, izmantojot PIC
- Darba sākšana ar ESP8266
Jūs varat sekot tam pašam vai izveidot savu dēli savā stilā vai vienkārši savienot iepriekš minēto shēmu ar maizes dēli.
PIC mikrokontrollera programmēšana:
Lai ieprogrammētu PIC mikrokontrolleru uz ESP8266 moduli sērijveidā nosūtīt “AT komandas”, izmantojot USART, mums jāizmanto bibliotēka. Šī bibliotēka ietaupīs daudz problēmu, piemēram, izmantojot ESP8266 instrukciju moduļus, lai pārbaudītu katru AT komandu un pēc tam atrastu veidu, kā tos pārsūtīt uz ESP moduli. Šī bibliotēka ir bezmaksas programmatūra, kuru sākotnēji izstrādāja Camil Staps, un vēlāk to pilnveidoja un pārveidoja Circuit Digest, lai to varētu izmantot kopā ar mūsu PIC16F877A mikrokontrolleru. To var lejupielādēt šeit
Bibliotēka joprojām tiek izstrādāta, taču ESP8266 programmaparatūrā varat izmantot lielāko daļu svarīgo AT komandu. Ja atklājat, ka trūkst kādas no jums nepieciešamajām komandām, dariet man to zināmu komentāru sadaļā, un es mēģināšu to pievienot jums. Šajā apmācībā tiks paskaidrotas visas komandas (līdz šim), kuras var izmantot, izmantojot šo bibliotēku. Tālāk būs arī norādīts, kā pievienot savas funkcijas bibliotēkā.
ESP8266 bibliotēkas funkcijas:
- Initialize_ESP8266 (): Šī funkcija inicializēs PIC moduli USART, lai sazinātos ar moduli ESP8266. Tas nosaka pārraides ātrumu 115200 un sagatavo PIC Rx un Tx tapu USART saziņai.
- _esp8266_putch (): Šo funkciju izmanto, lai vienu rakstzīmi sērijveidā nosūtītu uz ESP8266 moduli. Piemēram, _esp8266_putch ('a') rakstzīmi sērijveidā nosūtīs ESPmodulim.
- _esp8266_getch (): Šī funkcija tiek izmantota, lai iegūtu vienu rakstzīmi no ESP moduļa. Piemēram, ja ESP drukā “OK” un mēs izmantojam char a = _esp8266_getch (). Tad rakstzīme o tiks saglabāta mainīgajā a.
- ESP8266_send_string (): Šī funkcija ir virknes _esp8266_putch () versija. Tas var nosūtīt vienu pilnīgu virkni uz ESP8266 moduli. Piemēram, ESP8266_send_string (“AT / r / n”) nosūtīs komandu “AT” uz ESP8266 moduli.
- esp8266_isStarted (): To izmanto, lai pārbaudītu, vai PIC var sazināties ar ESP moduli. Tā nosūta komandu “AT” un gaida “OK”, ja saņemta, tā atgriež patiesu, citādi atgriež melīgu.
- esp8266_restart (): atiestata moduli ESP8266 un atgriež vērtību true, ja atiestatīšana ir veiksmīga, un atgriež vērtību false, ja tā nav veiksmīga.
- esp8266_mode (): tiek izmantots, lai iestatītu ESP8266 moduļa darba režīmu. Kā mēs zinām, tas var darboties trīs dažādos režīmos.
Stacijas režīms |
|
Soft AP režīms |
|
Gan Station, gan AP režīmā |
- esp8266_connect (): ļauj izveidot savienojumu ar wifi signālu. Piemēram, esp8266_connect (“home”, ”12345678”) ļaus jūsu modulim izveidot savienojumu ar wifi signālu ar nosaukumu home, kura parole ir 12345678.
- esp8266_disconnect (): Šī funkcija atvieno moduli no jebkura iepriekš savienota wifi savienojuma
- esp8266_ip (): iegūst IP adresi un atdod to. Izmantojiet šo funkciju, ja vēlaties uzzināt ESP8266 moduļa IP adresi.
- esp8266_start (): šo funkciju izmanto, lai sāktu TCP vai UDP komunikāciju. Piemēram, esp8266_start ( "TCP", "192.168.101.110", 80) . Sāks TCP tīklu šajā IP un 80. portā.
- esp8266_send (): šo funkciju izmanto, lai nosūtītu informāciju uz TCP / UDP tīklu. HTML skripts tiks nosūtīts, izmantojot šo komandu. Tad šis skripts parādīsies tajā IP adresē, kurā saziņa tika izveidota iepriekš.
- esp8266_config_softAP (): šo funkciju izmanto, lai konfigurētu softAP. Piemēram, esp8266_config_softAP (“office”, ”12345678”); izveidos Wifi signālu ar nosaukumu office, un, lai tam piekļūtu, jāizmanto parole 12345678.
- esp8266_get_stationIP (): Šī funkcija atgriezīs to klientu IP / MAC adresi, kuri ir savienoti ar jūsu softAP.
Programmas paraugs:
Tagad, kad esam sapratuši katras komandas funkcijas bibliotēkā, ieskatīsimies nelielā programmas paraugā. Šajā programmā mēs pārbaudīsim, vai savienojums starp ESP8266 un PIC ir veiksmīgs, un pēc tam izveidosim WIFI tīklu (SoftAP) ar vēlamo vārdu un paroli. Jūsu izpratnei tiks izskaidrota visa programma un tās simulācija.
Atkal, ja vēl neesat lasījis mūsu PIC saskarni ar LCD un PIC USART apmācību, lūdzu, izlasiet, pirms turpināt, jo tikai tad jums tas būs jēga.
Tā kā mēs tikai sākam saskarni PIC ar ESP8266, es esmu izmantojis LCD, lai pārliecinātos, ka lietas darbojas pareizi.
do {Lcd_Set_Cursor (1,1); Lcd_Print_String ("ESP nav atrasts"); } while (! esp8266_isStarted ()); // pagaidiet, kamēr ESP nosūtīs atpakaļ "OK" Lcd_Set_Cursor (1,1); Lcd_Print_String ("ESP ir savienots"); __kavēšanās_ms (1500); Lcd_Clear ();
Kad mēs nosūtām “AT” uz ESP8266 moduli, tas atbild ar “OK”. Tas nodrošina, ka ESP8266 modulis ir veiksmīgi savienots. Tam pašam tiek izmantota funkcija esp8266_isStarted (). Mēs nosūtām signālu AT no PIC, un mēs gaidām, līdz ESP modulis atdzīvojas un nosūta mums OK. Ja mēs saņemam OK, LCD displejā tiek parādīts, ka “ESP ir pievienots”.
esp8266_mode (2); Lcd_Set_Cursor (1,1); Lcd_Print_String ("ESP iestatīts kā AP"); __kavēšanās_ms (1500); Lcd_Clear ();
Iepriekšējās koda rindas tiek izmantotas, lai iestatītu ESP moduli darbam “soft AP” režīmā. Funkcija esp8266_mode (2); nosūta modulim AT komandas “AT + CWMODE = 3” un gaida, kamēr modulis atbildēs ar “OK”
/ * Konfigurējiet AP nosaukumu un paroli * / esp8266_config_softAP ("CircuitDigest", "619007123"); Lcd_Set_Cursor (1,1); Lcd_Print_String ("AP konfigurēts"); __kavēšanās_ms (1500); Lcd_Clear (); / * AP konfigurēts * /
Šis koda segments tiek izmantots, lai konfigurētu softAP. Šeit mēs SSID esam nosaukuši kā “CircuitDigest” un paroli kā “619007123”. Lai norādītu, ka process ir pabeigts, mēs gaidīsim, kamēr modulis atbildēs ar “OK”, un pēc tam uz LCD ekrāna izdrukāsim konfigurēto AP.
Tas ir tas, ka tagad mēs esam sasaistījuši ESP8266 moduli ar PIC MCU un esam konfigurējuši softAP ar izvēlētu vārdu un paroli. Kā parasti ļauj simulēt šo kodu un redzēt, kā tas darbojas.
Simulācijas izeja:
Mēs izmantojam programmatūru Proteus, lai simulētu izvadi. Tā paša dizaina failu var atrast pielikumā.
Tā kā Proteus bibliotēkā nav ESP8266 moduļa, mēs izmantojam sērijas termināli un PIC modulim atbildam kā lietotājam. Kad simulācija būs pabeigta, ekrāns izskatīsies šādi
Mūsu koda izeja tiek parādīta virtuālajā terminālā. Simulācijas pilnīga darbība tiks paskaidrota zemāk esošajā video.
Rezultāta pārbaude:
Kad programma ir pārbaudīta, izmantojot simulāciju, ievietojiet to PIC mikrokontrollerī. Veiciet savienojumus, kā parādīts iepriekš shēmās (sadaļa Aparatūra). Jums vajadzētu būt iespējai izsekot jūsu progresu, izmantojot LCD displeju.
Kad LCD displejā ir teikts, ka AP ir konfigurēts, mēs to varam pārbaudīt, izmantojot WIFI iestatījumus tālrunī vai klēpjdatorā. Mans klēpjdators rāda šādu signālu atbilstoši mūsu programmai.
Tas ir, ka puiši, mēs esam veiksmīgi sasaistījuši ESP8266 moduli ar PIC mikrokontrolleru. Šī ir ļoti vienkārša saskarne, un, ja vēlaties veikt sarežģītus projektus, izmantojot ESP8266, iespējams, būs jāpievieno savas bibliotēkas vai vismaz jāpievieno savas funkcijas. Ticiet man, to izdarīt ir ļoti viegli, es sniegšu īsu ieskatu par to pašu.
Funkciju pievienošana ESP8266 bibliotēkai:
Savas funkcijas pievienošana palīdzēs nosūtīt jebkuru komandu “AT” uz ESP8266 moduli. Lai turpinātu to, jums jāizlasa ESP8266 moduļa instrukciju kopas dokumentācija. Jūs varat tieši nosūtīt jebkuru AT komandu, kas atrodama šajā instrukciju komplekta rokasgrāmatā. Bet vienmēr atcerieties katras AT komandas beigās pievienot “/ r / n”. Piemēram, ja vēlaties izveidot vairākus savienojumus ar savu ESP moduli. Pēc tam atveriet instrukciju kopas dokumentāciju un atrodiet mūsu AT komandu, kas veiks šo darbu jūsu vietā. Šeit komanda “AT + CIPMUX = 1” ļaus jums izveidot vairākus savienojumus ar savu ESP moduli.
Tagad jums atliek tikai nosūtīt šo “AP + CIPMUX = 1” uz ESP8266 moduli, izmantojot seriālo portu. Spēcīgākais veids, kā to izdarīt, ir vienkārši izmantot komandu
_esp8266_print ("AT + CIPMUX = 1 \ r \ n" ")
Tas darbosies, taču tas nav labākais veids, kā to izdarīt. Jums ir jāizlasa, ko jūsu ESP8266 reaģē uz jūsu komandu. Mūsu gadījumā tas atbildēs ar “OK”. Tāpēc jums ir jāizlasa ienākošie dati no ESP8266 moduļa un jāapstiprina, ka tas ir “OK”. Arī jūs varat izveidot šo funkciju, kur “1” vai “0” var nodot kā argumentus.
Mēģiniet izveidot savas bibliotēkas funkcijas. Bet, ja jums nepieciešama palīdzība, lūdzu, izmantojiet komentāru sadaļu, un es jums palīdzēsim.