Lapā tiek izmantotas sīkdatnes 

Klases termometrs


Mērķis

Izveidot programmu MicroPython vidē, kas izmanto ESP32 mikrokontrolieri, lai: - pieslēgtos Wi-Fi tīklam; - iegūtu temperatūras un gaisa mitruma datus no tīmekļa API; - apstrādātu saņemtos JSON datus; - attēlotu temperatūru uz 4 ciparu 7 segmentu displeja TM1637; - attēlotu gaisa mitruma līmeni ar 5 LED diodēm.


Datu avots (API)

Izmanto šādu API adresi:

https://programmesana1.lv/api/iot/classroom/climate

API atgriež datus JSON formātā, kas satur:

  • temperature — temperatūra (°C)
  • humidity — gaisa mitrums (%)
  • timestamp — laika atzīme

Aparatūra

Jāizmanto: - ESP32 mikrokontrolieris; - TM1637 4 ciparu 7 segmentu displejs; - 5 LED diodes; - rezistori LED diodēm; - interneta pieslēgums (Wi-Fi).


Funkcionālās prasības

Programmai jānodrošina:

1. Wi-Fi savienojuma izveide
  • jāaktivizē bezvadu tīkla interfeiss;
  • jāpieslēdzas norādītam Wi-Fi tīklam;
  • seriālajā monitorā jāattēlo savienojuma statuss.

2. Datu iegūšana no API
  • jānosūta HTTP GET pieprasījums uz norādītu API adresi;
  • jāsaņem JSON formāta dati.

3. Datu apstrāde

No JSON datiem jāiegūst: - jaunākā temperatūras vērtība; - jaunākā gaisa mitruma vērtība.

Temperatūras vērtība: - jāpārveido par veselu skaitli.

Gaisa mitruma vērtība: - jāizmanto LED indikatoru vadībai.


4. Temperatūras attēlošana
  • temperatūra jāattēlo uz TM1637 displeja;
  • displejā jāparādās temperatūrai grādos pēc Celsija.

5. Gaisa mitruma attēlošana ar LED diodēm

Gaisa mitrums jāattēlo ar 5 LED diodēm pēc šādas loģikas:

Mitruma līmenis Iedegto LED skaits
0–20% 1 LED
21–40% 2 LED
41–60% 3 LED
61–80% 4 LED
81–100% 5 LED

Prasības: - LED diodes jāieslēdz pakāpeniski; - jo lielāks mitrums, jo vairāk LED diodes deg.


6. Resursu pārvaldība
  • pēc datu saņemšanas jāaizver HTTP savienojums.

Tehniskās prasības

Programmā obligāti jāizmanto:

  • bibliotēka network Wi-Fi savienojumam;
  • bibliotēka urequests HTTP pieprasījumiem;
  • bibliotēka tm1637 displeja vadībai;
  • klase Pin LED diožu vadībai;
  • funkcija response.json() JSON datu nolasīšanai.

Savienojuma prasības

TM1637 displejs
  • CLK → GPIO 22
  • DIO → GPIO 23
LED diodes

LED diodes jāpievieno pie: - LED1 → GPIO 12 - LED2 → GPIO 13 - LED3 → GPIO 14 - LED4 → GPIO 26 - LED5 → GPIO 27


Sagaidāmais rezultāts

Pēc programmas palaišanas: - ESP32 pieslēdzas Wi-Fi tīklam; - no servera tiek iegūti jaunākie dati; - temperatūra tiek attēlota uz 7 segmentu displeja; - gaisa mitruma līmenis tiek attēlots ar LED diodēm; - seriālajā monitorā redzams: - pieslēgšanās process; - HTTP atbildes kods; - temperatūras vērtība; - gaisa mitruma vērtība.


Papildu uzdevumi (pēc izvēles)

  1. Atjaunot datus ik pēc 30 sekundēm.
  2. Pievienot kļūdu apstrādi gadījumiem, ja:
  3. nav interneta savienojuma;
  4. API neatbild;
  5. dati nav pareizā formātā.
  6. Attēlot negatīvas temperatūras.
  7. Regulēt displeja spilgtumu.
  8. Pievienot skaņas signālu, ja temperatūra pārsniedz noteiktu robežu.