Scopul temei consta in proiectarea controlului unei masini prin intermediul unei conexiuni client-server peste tcp. Comenzile de control vor fi accesibile printr-o aplicatie pe un dispozitiv mobil, fiind posibila deplasarea masinii si, eventual, aprinderea/stingerea unor leduri atasate.
Pe langa motivul evident pentru a implementa acesta idee (it's fun), se doreste depasirea limitelor legate de range-ul de actiune - impus de modalitatea de comunicare dispozitiv mobil - microController - prin conectarea la Internet; de asemenea, exista numeroase posibilitati de extindere a proiectului (ex: atasarea unei camere video).
Lista piese:
Exista 3 componente principale ale partii de software ce merita atentie:
- aplicatia mobila [2]→ s-a ales implementarea in AndroidStudio, ceea ce a presupus definirea designului aplicatiei si implementarea unui client TCP in Java , mesajele trimise serverului corespunzand event-urilor generate de apasarea butoanelor ce controleaza masina.
- serverul TCP [3]→ creat in cadrul modulului de WiFi ESP8266. Mare parte din efort a fost depus in programarea modulului - instalarea firmware-ului si a SDK-ului; ca si firmware s-a ales NodeMCU, implementarea serverului fiind realizata in limbajul Lua; aceasta a constat in configurarea comunicatiei cu ATMega prin USART, conectarea la o retea, ascultarea de mesaje pe un socket deschis si transmiterea acestora mai departe pe seriala.
- codul incarcat pe ATMega [1]→ a fost evitata folosirea apelurilor de tip delay, utilizandu-se intreruperi - la primirea datelor prin USART - si un timer pentru a realiza efectul de 'semnalizare' a ledurilor. De asemenea, tehnica PWM a fost necesara in controlarea vitezei motoarelor.
Proiectul a fost realizat cu succes, fiind complet functional. Unica problema intampinata, nerezolvata a fost legata de alimentare, descarcarea bateriilor realizandu-se rapid
https://developer.android.com/guide
https://nodemcu.readthedocs.io/en/master/
https://www.lua.org/manual/5.3/manual.html
https://tttapa.github.io/ESP8266/Chap01%20-%20ESP8266.html
https://github.com/espressif/esptool
https://github.com/espressif/ESP8266_NONOS_SDK
http://cs.curs.pub.ro/wiki/pm/lab/lab2