Server web simplu pe NodeMCU ESP8266

 Autor:   Publicat pe:    Niciun comentariu
ESP8266 este un microcontroller cu suport WiFi și TCP/IP produs de Espressif Systems (Shanghai). Prețul redus al dispozitivului l-a făcut foarte popular, fiind inclus în module, dar și în plăci de dezvoltare pentru aplicații IoT (Internet of Things). NodeMcu este o placă de dezvoltare ce folosește un modul cu ESP8266. Într-un articol anterior am configurat Arduino IDE pentru a putea programa această placă. Am început prin a aprinde intermitent un LED, fără a utiliza funcțiile WiFi ale modulului. E timpul să „conectăm” LED-ul la internet.

Î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.

Server simplu pe NodeMCU ESP8266

Programare NodeMCU ESP8266 în Arduino IDE

 Autor:   Publicat pe:    Un comentariu
ESP8266 este un microcontroller cu suport WiFi și TCP/IP produs de Espressif Systems (Shanghai).  Prețul redus al dispozitivului l-a făcut foarte popular, fiind inclus în module, dar și în plăci de dezvoltare pentru aplicații IoT (Internet of Things). ESP8266 conține un procesor pe 32 de biți tactat la 80 MHz, cu 32kB RAM pentru instrucțiuni, respectiv 80kB RAM pentru utilizator. Indicațiile din acest articol se aplică, cu mici modificări, tuturor plăcilor de dezvoltare cu module bazate pe ESP8266.

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.

Programare NodeMCU ESP8266 în Arduino IDE

Ceas Arduino fără modul RTC

 Autor:   Publicat pe:    Niciun comentariu

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.

Ceas Arduino fără modul RTC

KiCad: ajustări schemă și asociere amprente circuit (2)

 Autor:   Publicat pe:    Niciun comentariu
KiCad reprezintă o suită de aplicații gratuite și cu sursă deschisă pentru desenarea de scheme electronice și proiectarea de circuite imprimate. Este una din puținele suite de acest tip oferită gratuit și fără limitări. Mai mult de atât, rulează pe toate sistemele de operare (Windows, Linux, Mac). Deși considerat de unii greu de utilizat și instabil, versiunile recente vin cu îmbunătățiri și caracteristici noi. KiCad nu vine cu limitări în ceea ce privește dimensiunea circuitului imprimat. Numărul maxim de straturi este 32 pentru conexiunile electrice.

Î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.
Introducere în KiCad: asociere amprente circuit

KiCad: primii pași în desenarea schemei (1)

 Autor:   Publicat pe:    Niciun comentariu
KiCad reprezintă o suită de aplicații gratuite și cu sursă deschisă pentru desenarea de scheme electronice și proiectarea de circuite imprimate. Este una din puținele suite de acest tip oferită gratuit și fără limitări. Mai mult de atât, rulează pe toate sistemele de operare (Windows, Linux, Mac). Deși considerat de unii greu de utilizat și instabil, versiunile recente vin cu îmbunătățiri și caracteristici noi. KiCad nu vine cu limitări în ceea ce privește dimensiunea circuitului imprimat. Numărul maxim de straturi este 32 pentru conexiunile electrice.

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ă.
Introducere în KiCad: desenare scheme (1)