Se afișează postările cu eticheta Raspberry Pi. Afișați toate postările
Se afișează postările cu eticheta Raspberry Pi. Afișați toate postările

marți, 26 septembrie 2023

Sistem/montaj de repornire Raspberry Pico W (Arduino) blocat (inghetat)

    In urma unor teste cu o placa Raspberry Pi Pico W pentru un ceas NTP, am observat ca uneori sistemul se blocheaza (ingheata), asa ca, dupa ce am cautat pe net, si nu am gasit solutie multumitoare, m-am gandit sa aplic o solutie extrema, un sistem care se reseteze placa Raspberry Pi (sau chiar Arduino) cand placa nu mai trimite impulsuri pe un anumit pin.

    De fapt, am folosit 2 pini, dupa cum se vede in schema si simularea, realizata cu programul Micro-Cap

prinul numit INIT (D7) are 5V imediat ce porneste placa Arduino (sau Raspberry Pi Pico), ulterior pe pinul D5 numit in schema PIVIEM se trimite semnal dreptunghiular cu frecventa de cca. 1000Hz (semnal PWM 50%), apoi pinul INIT se aduce in 0V, apoi dupa un timp si semnalul PIVIEM cade in zero. 
    Dupa cum se vede din filmulete si imagini, dupa circa 12ms de la pierderea semnalului, pinul RESET din 5V cade in 0V pentru circa 7ms.
    Primele 2 filmulete au fost multumitoare, urmarind semnalul cu un osciloscop didactic, sa-i zic asa. model DSO-TC3:
apoi am mai conectat in osciloscop-tableta, model ADS1013D, cu 2 canale, de la care avem pretentii cam mari, pentru timpii descrisi mai sus, reprezentarea este multumitoare
   Am modificat putin timpii de reactie, la cateva sute de ms dupa disparitia semnalului dreptunghiular si cateva sute de ms de reset,
   Am gasit, intai, in articolul How to Add a Raspberry Pi Pico Reset Button ca placilor Raspberry Pi Pico (fara sau cu W) li se poate adauga un buton de reset, conectant un buton fara retinere intre pinul 30 (RUN) si GND
asa ca am schimbat si placa, de data asta conectand Raspberry Pi Pico W, pinul INIT este GP21, iar pinul PIVIEM este GP20, semnalul RESET se duce in RUN, montajul se va alimenta din 3V3 (OUT), respectiv GND:
    Osciloscopul-tableta a fost greu de controlat pe modul de captarea a unei imagini statice, unde pot masura timpii, dar nu am insistat, deoarece rezultatele vizuale au fost multumitoare, dupa cum se vede in filmuletele:

02.10.2023 (actualizare 19.01.2024)
   Am realizat ca am o dioda in plus, asa ca am eliminat-o:

luni, 25 noiembrie 2019

Termostat MQTT cu ESP8266 (2)

    Acum un an si ceva, am publicat articolul Termostat MQTT cu ESP8266 pe care l-am testat in gol cca 3-4 luni. El nu a controlat o centrala termica sau un sistem de aer conditionat, ci doar a aprins un led rosu cand ar fi trebuit sa actioneze in gol.
   Zilele trecute am reluat testele, pornind o placa Raspberry Pi Zero W cu cardul SD de la o alta placa, ce avea instalat serverul broker Mosquitto dupa cum am prezentat in articolul Sonerie cu comandă locală sau prin protocol MQTT prin server Mosquitto (2)
    Am adaptat ultimul sketch prezentat in primul articol (MQTT_ESP8266_termostat_base.ino) sa aprinda afisajul doar cand apas butonul sau daca dau comenzi de pe telefon. La sketck-ul din link, afisajul OLED sta aprins mereu, dar nu se recomanda, deoarece textele raman imprimate... asa ca incarcati versiunea MQTT_ESP8266_termostat_ok.ino dupa ce finalizati testele.
   Deci, in mod normal, afisajul este stins, dar functioneaza termostatul:
- temperatura ambianta mai mare decat temperatura dorita
- temperatura ambianta mai scazuta decat temperatura dorita
   Daca se apasa butonul de pe cablaj sau se dau comenzi de pe telefon:
- temperatura ambianta mai mare decat temperatura dorita
- temperatura ambianta mai scazuta decat temperatura dorita
    Schema de conectare este eceeasi, bineinteles:
   Aplicatia folosita este aceeasi, IoT MQTT Panel.
unde am creat un un canal numit termostat
care e configurat astfel:
eu am completat doar numele, adresa IP a serverului (gasite de aplicatia Advanced IP scanner) si portul 1883 si conexiune TCP (ID-ul canalului este geberat automat de aplicatie).
   Dupa ce am creat butoane, indicatoarele si graficul, pe telefon apare asa:
   Pentru a creea un buton, grafic sau indicator, se apasa butonul + din partea de jos a ecranului

si se alege ce sa creez.

   Pentru cele 3 butoane, configuratiile sunt in stanga, iar in dreapta corespondenta din program (sketch):
- crestere temepratura

- scadere temperatura

- aprindere afisaj
unde "topic" este cel din linia 137

   Pentru cele indicatoare, configurarile sunt:
- temperatura reala
- umiditatea relativa a aerului
- temperatura dorita
- stare releu / led
unde in program, comenzile sunt:
   Pentru grafic, vom avea configurarile in aplicatie;
   De data aceasta nu am mai facut filmulete, dar pun 2 din ele, realizate anul trecut:


   Cred ca datele prezentate sunt suficiente sa realizati si voi un termostat de genul asta.
Eu mai am de implementat partea de conectare cu parola, dar nu am timp momentan de teste.





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)

25.11.2019
   Am adaugat un articol numit Termostat MQTT cu ESP8266 (2) cu mai multe detalii de configurare a aplicatiei Android numite IoT MQTT Panel: