ArduShop.ro

ArduShop.ro
cod tehnic.go.ro_02 reducere 5%, pentru vizitatorii paginilor mele !

vineri, 20 iulie 2018

Ceas reglabil pe afisaj LCD12864 (ST7920)

   Avand de gand sa folosesc afisajul monocrom cu rezolutie de 128x64 cu driver ST7920 (l-am mai prezentat pe blog - http://nicuflorica.blogspot.com/search?q=st7920) la un sistem gen cronostat pe mai multe zone, am zis ca intai sa fac partea de ceas cu reglaj al datei si orei.
   M-am folosit de articolele cu afisajul, de articolul Arduino Astronomical Clock (or Arduino Pond Pump Controller!) si ale mele http://nicuflorica.blogspot.com/search?q=andydoz. Schema de conectare este
   iar configurarea in program (sketch) este
(se foloseste libraria u8glib)
   Am adaptat sketch-ul gasit in articolul Analog LCD clock - Arduino LCD combinandu-l cu cel al lui Andy, initial avand prezentarea asta
   Deoarece libraria RTClib nu are posibilitatea de a regla si ziua din luna (se poate face altfel, cum e prezentat in articolul Tronixstuff – Using DS1307 and DS3231 Real-time Clock Modules with Arduino, dar nu am timp prea mult de teste, asa ca am renuntat la aceasta facilitate momentan).
   Initial, am pus doar partea de afisare, dupa cum se vede in filmuletele:
programul utilizat fiind u8glib_RTC_clock1.ino, apoi am implementat si partea de reglaj,
     Daca se apasa scurt butonul de epe encoder apare un mesaj cu date despre program
iar daca se apasa lung intra in meniul de reglaj, la modificarea anului
prin rotirea encoderului se modifica valoarea (minimul fiind 2018, vorba lui Andy, asta nu e masina timpului sa trec in anii anteriori) apoi la paasare scurtaa  butonului se ajunge in meniul de reglaj al lunii
apoi se trece in reglajul zilei din luna
   Dupa apasarea butonului se intra in partea de reglaj a ceasului, la ore
si apoi la minute
Apasand din nou butonul se revine la modul de functionare normala, ca ceas
  In filmuletele de mai jos s evedem modul de functionare si reglare
ceas pe afisaj 128x64 cu ST7920 (3)
RTC clock on 128x64 display with ST7290 (3)
   Am constatat ca programul ocupa foarte mult spatiu (97%) si nu o sa imi incapa tot ce aveam de gand, asa ca voiam sa renunt si sa trec pe afisaj alfanumeric LCD2004 (20x4), dar dupa ce am discutat cu Vlad si mi-a zis ca fonturile folosite de mine consuma multa memorie, m-am mai jucat cu fonturile si am redus mult memoria ocupata (67%), dupa cum se vede in filmuletele
ceas pe afisaj 128x64 cu ST7920 (4)
RTC clock on 128x64 display with ST7290 (4)
   Sketch-ul optimizat este u8glib_RTC_clock2.ino.

joi, 5 iulie 2018

Termostat MQTT cu ESP8266

   Dupa ce m-am mai obisnuit cu modul de functionare al protocolului MQTT de comunicare intre o placa de dezvoltare cu ESP8266 (sau ESP32) si un server local Mosquitto, am zis sa fac si o aplicatie utila, cea de termostat controlat de la distanta de e un smartphone.
   In prima faza, am adaptat un sketch pentru a simula un termostat prin generarea unui numar aleator care a fost impartit la 10 pentru a avea un numar cu zecimala si compararea lui cu o temperatura de referinta, Temperatura de referinta a fost si ea reglata din 2 butoane virtuale de pe aplicatia de pe smartphone, care se numeste IoT MQTT Panel:
   Am facut 2 filmulete in care se vede modul de functionare
pseudotermostat cu comenzi MQTT
MQTT (pseudo)thermostat
    Configurarea aplicatiei se face cum am prezentat in articolul Sonerie cu comandă locală sau prin protocol MQTT prin server Mosquitto (3) iar sketch-ul folosit este MQTT_ESP8266_termostat_notreal.ino.
    Placa Nodemcu V3 nu avea pini, asa ca i-am lipit si am facut un montaj pe un breadboard, punand si un senzor cu DHT22 (AM2302), un afisaj OLED de 0,9" (cca 2cm) si un led care indica functionarea centralei.
    Schema de conectare este
iat pentru detalierea pinilor, studiati schema placii de dezvoltare cu mapp-area pinilor ca un Arduino
   Pentru partea de conectare a afisajului i2c OLED am folosit informatiile din articolele:
ESP8266 0.96 inch OLED Display with Arduino IDE
ESP8266: I2C PORT AND ADDRESS SCANNER
   Sketch-ul rescris si adaptat dupa primul este MQTT_ESP8266_termostat_base.ino si modul de comportare se vede din filmuletele realizate:
Termostat MQTT cu ESP8266
ESP8266 MQTT thermostat
Termostat MQTT cu ESp8266 (2)
MQTT thermostat with ESP8266 (2)
     Pe ecranul telefonului apare
si deruland in sus, apar si butoanele virtuale de reglaj
   Am mai introdus un buton fara retinere din care aprind afisajul pentru cca 10 secunde, dupa cum se vede in filmuletele
Termostat MQTT cu ESP8266 (3)
ESP8266 MQTT thermostat (3)
9.7.2018
   Am aranjat modul de scriere sa fie in linie (pe verticala):
termostat MQTT cu ESP8266 (4)
MQTT thermostat with ESP8266 (4)

marți, 3 iulie 2018

Afisaj grafic de 1,8" cu rezolutie 128x160 (ST7735) conectat la placa de dezvoltare cu ESP32

   Intrand in posesia unui afisaj grafic de 1,8" (1,77" apare pe unele site-uri), adica diagonala de 4,5cm, care are rezolutia 128x160 si driver ST7735, am zis sa il conectez la o placa de dezvoltare cu ESP32, ca tot era si ea in teste. Am avut surpriza sa gasesc foarte putine informatii utile.
   Informatii utile am gasit in articolul 128×128 Colour LCD to ESP32, in care se foloseste o librarie modificata - Xtronical ST7735, doar ca nu am reusit, cu toate modificarile prin librarie, sa afisez corect toate modurile (rotirea informatiei), dupa cum se vede si din filmuletele
afisaj de 1,8" cu ST7735 (rezolutie 128x160) controlat de ESP32
128x160 1.8" TFT display with ST7735 controlled by ESP32
   Schema de conectare este simpla
   Am mai cautat si am dat de o discutie pe forumul Arduino despre libraria TFT_eSPI a lui Bodmer si de articolul Cheap 1.77 Inch TFT-screen on ESP32 de pe site-ul www.hackster.io/ care prezenta libraria lui Bodmer.
    Am reusit sa fac modificari in fisierul de configurare (User_Setup.h) sa am informatii corecte pastrand schema de conectare de la Xtronical
   Am facut de data asta 2 filmulete
afisaj de 1,8" cu ST7735 (rezolutie 128x160) controlat de ESP32 (2)
128x160 1.8" TFT display with ST7735 controlled by ESP32 (2)

sâmbătă, 30 iunie 2018

Prezentare, stocare date si executare comenzi de pe pagina Cayenne cu Arduino Uno si placa de retea cu W5100

   Acum ceva timp, am pus pe blog articolul Prezentare, stocare date si executare comenzi de pe pagina Cayenne (2) si regasind modulul, am constatat ca nu mai functioneaza. Pe mail tot primeam anumite avertizari si chiar cand am intrat pe server sa vad, ca s-a schimbat modul de lucru cu comenzi cu protocol MQTT, dar am tot ignorat "avertismentele" 👽.
   Am reconectat placa Arduino Uno care e legata cu cea de retea cu chip-ul W5100 si am modiifcat sa mearga identic ca inainte.

   Sketch-ul nou este Cayenne_Uno_W5100_DHT22_button2.ino si acum pot vedea iar temperatura si umiditatea, dar sa aprins si sa sting led-ul
   Schema e simpla, dar am zis s-o postez totuşi
   Am facut 2 filmulete, in care s evede mai usor despre ce e vorba
Arduino Uno cu Ethernet shield trimite date pe canal Cayenne si controleaza un led (2)
Arduino Uno & Ethernet shield send data to Cayenne channel and control external led (2)

duminică, 17 iunie 2018

Windows 10 pe 64 biti si Ubuntu 18.04 pe acelasi calculator

   Vrand sa pun pe laptopul ce avea instalat sistemul de operare Windows 10 pe 64 biti, sistemul de operare Ubuntu (o versiune prietenoasa de Linux) am avut neplacuta surpriza sa pierd informatiile de pe hard-uri, avand 2, un SSD pe care era Windows-ul  si un harddisk clasic.
   Dupa reinstalarea Windows-ului 10, la o distanta de 2-3 luni am avut parte de multe ecrane albastre, care m-au deranjat, asa ca am zis sa vad daca nu cumva sistemul de operare este vinovat, asa ca am instalat Windows 7 (cel cu care fusese vandut laptopul) pe SSD.
   Am vrut sa instalez si Ubuntu, dar sa nu mai am probleme de dual boot pe acelasi HDD (se cam strica la update-ul lui Win sau Linux, fiind relativ dificil de reparat), asa ca am discutat cu Vlad (de fapt l-am cam stresat cu solicitari de informatii despre o instalare ok, mai ales la Linux).
   Am instalat Windows 7 avand doar SSD-ul montat, apoi  am instalat Ubuntu 18.04 (ultima versiune, la acest moment) pe hardisk-ul clasic (SSD-ul fiind scos), dupa care le-am pus pe amandoua si ramane sa aleg la boot-are (pornire) ce sistem de operare  sa ruleze.
   Am avut parte, din nou, de o surpriza neplacuta, neputand alege hardisk-ul de pe care sa boot-eze, ci doar CD/DVD sau harddisk, oricat am caut in BIOS-ul laptopului HP pavilion DV7.
   Solutia mi-a fost indicata tot de Vlad, si anume utilitarul Grub2win care se instaleaza usor si se configureaza (relativ) usor.
  Eu am creat partea de selectie astfel
folosindu-ma de informatiile de le ofera programul
si mai ales
asa ca acum, la pornire, am 7 secunde sa aleg daca porneste in Windows 7 sau sa selectez Grub 2 for Windows (care e configurat pentru Ubuntu)
rezultand la alegerea Grub 2 for Windows, pornirea in Linux (Ubuntu)

miercuri, 13 iunie 2018

Sonerie cu comandă locală sau prin protocol MQTT prin server Mosquitto (3)

   Față de cele 2 articole anterioare (1 și 2), acum am noutăți, pot comanda soneria de oriunde am net (gsm sau wifi) și am o interfața prietenoasă, nu mai trebuie să dau comenzi scrise.

   Pentru a putea comanda de oriunde de pe net, am deschis portul 1883 de pe router-ul local unde este Raspberry Pi
și activez funcția DNS dinamic pentru contul de la RDS
și aloc un nume de domeniu
   Pentru a folosi ușor de pe telefon cu Android, am folosit aplicația IoT MQTT Panel (IoT Controler)
   Am un singur periferic numit clopot pe serverul de la tehniq.go.ro
care este configurat simplu
   Momentan, am configurat doar 2 butoane (comenzi)
astfel, Bell1 pe canalul DoorBell și comanda Bell1 (aprinde scurt primul led), iar butonul Chime5 pe canalul DoorBell și comanda Chime5 (aprinde cele 4 leduri într-o ordine anume).
   Am făcut 2 filmulețe edificatoare: