Server web simplu pe NodeMCU ESP8266
În acest articol, voi programa un server web minimal pe ESP8266. Prin accesarea interfeței web, vei putea porni și opri un LED. Butonul care acționează LED-ul își modifică acțiunea în funcție de starea LED-ului. Dacă acesta este oprit, butonul „on” îl pornește. După pornire, butonul își modifică denumirea și funcția în „off”. Deci, în acest exemplu, trimitem date către NodeMcu, dar și primim.
Programare NodeMCU ESP8266 în Arduino IDE
Una dintre cele mai ieftine plăci de dezvoltare este Lolin NodeMcu. În acest articol am folosit versiunea 3 a acestei plăci. Portul USB al plăcii este folosit pentru programare, fiind doar un convertor USB serial. Integratul USB este diferit la NodeMcu 1.0 (Silabs CP2102) față de NodeMcu 3.0 (WCH CH340G). Acest lucru trebuie avut în vedere la instalarea driver-ului. Placa NodeMcu conține un modul cu ESP8266. Este vorba de modulul ESP-12E sau ESP-12F produs de Ai-Thinker. O memorie flash de 32 Mbit (4 megaocteți) este conectată prin interfața SPI la ESP8266.
Ceas Arduino fără modul RTC
Folosirea unui modul RTC (real time clock) este recomandată la realizarea unui proiect care se folosește de oră și dată. Modulele RTC sunt ieftine, au acuratețe bună, dar mai mult de atât continuă să funcționeze și când placa de dezvoltare nu este alimentată. Acestea folosesc o baterie tip celulă litiu pentru a ține evidența timpului utilizând curenți foarte mici. Există destul de multe biblioteci Arduino care implementează funcții pentru comunicarea cu diverse surse de timp (module RTC, servere NTP etc.). Un exemplu este biblioteca Time de Paul Stoffregen care utilizează timer-ul microcontroller-ului pentru a ține evidența timpului, dar permite și sincronizarea periodică cu o sursă de acuratețe mai mare.
Totuși, am decis să scriu o funcție ce ține evidența timpului incrementând variabile la fiecare apelare. Schița apelează această funcție în fiecare secundă, iar aceasta incrementează variabila secundelor și o afișează. Dacă s-a numărat până la 60, variabila secundelor trece la 0 și funcția avansează, incrementând minutele. Tot așa, sunt incrementate oricând este cazul variabilele pentru oră, zi, lună și an. Afișajul este actualizat doar pentru ce va fi modificat. Pentru a scrie programul am folosit o placă de dezvoltare compatibilă cu Arduino Uno căreia i-am atașat un shield cu afișaj LCD 16x2 și butoane analogice. Doar două butoane sunt necesare pentru modificarea datei și orei, așa că poți folosi butoane tactile conectate la pini de intrare digitali. În acest caz, vei modifica mai multe linii de cod, evaluând starea pinilor digitali.
KiCad: ajustări schemă și asociere amprente circuit (2)
Într-un articol anterior am desenat o schemă electrică pentru un alimentator cu LM317. Acum, vom finaliza schema și ne vom pregăti pentru proiectarea circuitului imprimat. Schema proiectată nu are simbolurile numerotate și nici valorile lor afișate. Deschide schema din proiectul creat în articolul precedent.
KiCad: primii pași în desenarea schemei (1)
Pachetul KiCad este format din mai multe aplicații: Eeschema este utilizat pentru desenarea de scheme electronice; în Pcbnew se proiectează circuitele imprimate; cu GerbView se pot vizualiza fișierele Gerber. Pe lângă acestea mai sunt disponibile câteva utilitare: editoarele de simboluri și amprente ale componentelor, editorul pentru chenarul care încadrează schemele, un calculator util în proiectarea circuitelor electronice dar și o aplicație ce poate transforma o imagine în amprentă PCB pentru o componentă.