Ingo Electronics
  HOME

Distancinis (nuotolinis) valdymas panaudojant ESP8266 modulį ir Android App

Tiems kas nuspręs pakartoti šį projektą arba jį modifikuoti : šiam projektui bus reikalinga :

1. Mobilus telefonas arba planšetė su Android operacine sistema.

2. ESP8266 modulis.

3. Wi-Fi namų tinklo stotelė.

 Kaip matome iš žemiau esančio paveikslėlio, Android App palaikys ryšį su ESP8266 moduliu ne tiesiogiai, o per Wi-Fi kompiuterinio tinklo stotelę. Kol kas tai yra paprasčiausias variantas.

Kaip padaryti, kad Android komunikuotu tiesiogiai su ESP moduliu, parašysiu vėliau. Dabar bus taip:

                                                                                               

 

Taigi, pirmiausia reikia pasigaminti schemą kurioje ESP8266 modulis būtų sujungiamas su mikrovaldikliu.

Mikrovaldiklis šiuo atveju galėtų būti bet koks su UART moduliu ir turintis nemažiau 4kb flash (ROM) programos kodo įrašymui. Pas mane šiuo metu buvo atliekamas PIC18F45K20 (TQF44 korpusas) tai jį ir pajungiau žemiau parodytoje schemoje.

Šviesos diodai LED1,2,3,4 reikalingi tik indikacijai, rodo kuris kanalas įjungtas, šiaip jų galima ir nejungti.

TR1,2,3 – trumpikliai, gali buti reikalingi kad nedarant didelės intervencijos PCB plokštei, prisijungti prie PC UART terminalo firmware perrašymui ar šiaip modulio testavimui. Vietoj trumpiklių galima panaudoti 0om smd rezistorius ar šiaip bet kokius trumpus vielos gabalėlius.

Kontaktai VPP,PGC,PGD – mikrovaldiklio programatoriaus pajungimui.

Ši schema buvo projektuota kaip atskiras modulis, iš kurio išeina keturi signalai relių, simistorių, arba tranzistorių valdymui, OUT_1,2,3,4.

 

 

Pilną šios schemos projektą, kuriame jau yra  suprojektuota PCB galima parsisiūsti iš čia : link.

Projektas darytas su Proteus 8 versija, todėl su senesnėmis Proteus versijomis jo atidaryti nebus galima.

 

ESP8266 modulis gali dirbti įvairiais režimais. Šiam projektui reikia nustatyti  DHCP (ESP moduliui  Wi-Fi routeris automatiškai priskiria IP adresą) ir darbo režmą BOTH (tai yra abi darbo rūšis- AP ir STA)

Tai galima padaryt iš anksto prieš montuojant ESP modulį į schemą pasinaudojant UART terminalu del kelių priežasčių :

1.Šie nustatymai išlieka flash atmintyje

2. Šiek tiek sutaupomas mikrovaldiklio kodas

3. Tolimesniam darbui vis vien reikia sužinoti koks ESP moduliui buvo priskirtas IP adresas.

Gali pasitaikyti retų atvejų kuomet ESP moduliui, po maitinimo perjungimo bus priskirtas vis naujas adresas, tačiau dauguma gudresnių routeriu atsimena objektui duotą IP adresą ir neperleidžia jo kitam, net jeigu šio objekto ir nėra tinkle, t.y IP adresas yra rezervuojamas.

 

 ESP modulį, pasinaudodami UART terminalu paruošiame darbui aukščiau nurodytu režimu :
Siunčiame komandas (pažymėta raudona spalva)

//IP adreso gavimas DHCP režime
AT+RST  // restart
AT+CWMODE=3   // pakeičiame darbo režimą – AP ir STA  kartu (BOTH)
AT+CWLAP           //prieeigoe taškų sąrašas
//prisijungiame prie Wi-Fi routerio:-kabutėse surašome savo duomenis
AT+CWJAP="D-Link-944","12345"  //Čia  Wi-Fi routerio SSID (vardas,pavadinimas),12345-slaptažodis
AT+CIFSR      // žiūrime kokį IP adresą gavo ESP8266 modulis
Pvz. gauname atsakymą: AT+CIFSR 192.168.1.104
AT+RST  / / užtvirtiname nustatymus
//Nustatymas baigtas, užsirašome IP(pvz. 192.168.1.104, jis bus reikalingas tolimesnėje eigoje

 Programa mikrokontroleriui buvo rašyta su MikroC PRO for PIC

Programos C kodas – link

Programos kodą nesunkiai galima perkelti kitos platformos mikrovaldikliui.

Programos C kodas greitai peržiūrai - link

Hex failas mikrovaldikliui  PIC18F45K20 – link

 Konkrečiai mano parašytam kodui, yra penkios komandos – out=11, out=12, out=13, out=14 ir out=19

Pirmos keturios komandos – valdomo įrenginio įjungimui/išjungimui, komanda out=19 – gaunama info apie visų irenginių būseną (ar yra išjungtas ar įjungtas).

 Android App programėlė turi siūsti tik šias komandas.

Tiems kas nori modifikuoti mano kodą, gali pakeisti šias komandas.

 Šio modulio valdymui aš panaudojau savo paties kurtą Android programėlę.

Aš nesu profesionalus Android programų kūrėjas, ši programėlė  buvo kurta tik Android programų kūrimo mokymuisi ir žinių praplėtimu, pasinaudojant įvairiais internete rastais pavyzdžiais.  Tačiau man ji gavosi pilnai veikianti ir kol kas tenkina mano pereikius. Esant reikalui, jeigu sugalvosiu patobulinti arba iškils koks “bugas”, bus atnaujinta.

Ją galima parsisiūsti iš čia – link.

 Žemiau esančiam programėlės screenshot matome tris eilutes :

 Pirmoje eilutėje galima užsirašyti koks įrenginys įjungiamas/išjungiamas.

Antroje – valdymo mygtukai.

Trečioje  - įrenginio būsena.

Taip pat yra mygtukas “STATUS”, jį paspaudus į trečią eilutę yra atsiunčiama dabartinė įrenginio būsena.

Kitas svarbus mygtukas “SETTINGS”, jį paspaudus atsidaro naujas langas, kuriame įrašome modulio IP adresą ir porto numerį. Laukeliuose “Edit labels” galime susirašyti valdomų įrenginių pavadinimus.

Laukeliuose “Command_” , jeigu nebuvo pakeistas ESP modulio valdymo kodas, nieko nekeičiame, paliekame išankstinius nustatymus, t.y  out=11,out=12,out=13,out=14.

Visi šie nustatymai išlieka programos atmintyje.

 

 

 

Modulio valdymui ir testavimui galima parsisiusti keleta programėlių iš “Google Play”
Programėlių pavadinimai paieškai:
UDP TCP Server Free

TCP/UDP Terminal
Simple Socket Tester
tcpsend
Packet Sender

Visos jos buvo išbandytos ir normaliai veikia su šioje temoje aprašomu valdymo moduliu.
Kai kurias, atitinkamai pagal save  susikofiguravus (UDP TCP Server Free ir TCP/UDP Terminal) pilnai galima naudoti modulio valdymui vietoje mano duotos programėlės.