Stația meteo pe M5GO: senzori ENV și ecran
Aplicația de vreme din telefon îți arată datele unui senzor aflat la kilometri distanță. Azi tai intermediarii: senzorul e în mâna ta, ecranul e la doi centimetri de el, iar programul dintre ele îl scrii tu. La finalul laboratorului, echipa ta va avea o stație meteo funcțională pe M5GO — temperatură, umiditate și presiune afișate pe ecran, cu o interfață pe care ați proiectat-o voi înainte, pe hârtie.
Ce îți trebuie
- UIFlow, editorul de blocuri pentru M5GO, la flow.m5stack.com — merge în browser și fără dispozitiv: compui și verifici programul, iar la stație doar îl rulezi. Documentația: docs.m5stack.com.
- M5GO-ul școlii cu unitatea de senzori ENV conectată în portul lateral — unul singur pentru toată clasa, la catedră; el e „stația demonstrativă".
- Hârtie și creion pentru fiecare echipă — da, pe bune: interfața se proiectează întâi pe hârtie.
- Timp: 45 de minute în echipe de 3-4, cu rotație la stație.
Cum lucrează clasa: o stație, multe echipe
Un singur dispozitiv nu înseamnă că o singură persoană lucrează. Înseamnă orchestrare:
- Profesorul (sau un elev desemnat „tehnician de stație") pregătește M5GO-ul: pornit, conectat la Wi-Fi, cu unitatea ENV în port. Cheia de conectare afișată de dispozitiv leagă UIFlow de el — pașii exacți de împerechere sunt în documentația de la docs.m5stack.com, secțiunea UIFlow.
- Clasa se împarte în echipe de 3-4. Toate echipele lucrează simultan pașii din secțiunile următoare, în browser, la calculatoarele lor — UIFlow nu are nevoie de dispozitiv pentru nimic din faza de construcție.
- Când o echipă trece punctul de control al programului, se înscrie pe tablă pe lista de rulare.
- Rotația la stație: fiecare echipă primește 5-8 minute la M5GO ca să-și ruleze programul și să noteze valorile reale. Cronometrul e lege — echipa care depășește își pierde rândul următor.
- Cine nu e la stație lucrează extinderea sau misiunea. Nimeni nu așteaptă cu mâinile încrucișate — coada de așteptare e timp de lucru.
De la hârtie la UIFlow
Interfața se proiectează întâi pe hârtie — la calculator e prea ușor să tragi lucruri la întâmplare.
- Fiecare echipă desenează pe hârtie un dreptunghi în proporțiile ecranului M5GO (lat, nu înalt — aproximativ 3:2). Acesta e ecranul vostru.
- Decideți și desenați: unde stă titlul stației? Unde apare temperatura și cât de mare e scrisă? Umiditatea și presiunea au aceeași importanță ca temperatura, sau sunt mai mici? Ce culori pe fundal închis?
- Regula de aur din modulul 2 se aplică integral: interfața nu e pentru voi, e pentru utilizator — cineva care trece pe lângă stație trebuie să citească temperatura de la 2 metri, dintr-o privire. Testați desenul: țineți foaia la distanță de un braț întins. Se citește? Dacă nu, măriți.
Acum mutați schița pe ecran — tot fără dispozitiv:
- Deschideți flow.m5stack.com și alegeți ca dispozitiv M5GO (sau Core, dacă M5GO nu apare în lista versiunii voastre). În stânga vedeți simulatorul de ecran; adăugați unitatea ENV din zona de unități (clic pe mufa de sub dispozitivul desenat).
- Construiți interfața trăgând elemente Label pe ecranul simulat, exact după schița de pe hârtie: un label-titlu și câte o pereche etichetă + valoare pentru temperatură, umiditate, presiune. Redenumiți-le cu sens:
lblTemp,lblUmid,lblPres— peste 5 minute vă mulțumiți singuri. - Programul, în blocuri: într-o repetiție infinită (blocul de loop), setați textul fiecărui label la valoarea citită de la unitatea ENV — blocurile de citire (temperatură, umiditate, presiune) apar în paletă după ce ați adăugat unitatea. Adăugați o pauză de 2 secunde la fiecare tură: vremea nu se schimbă de 100 de ori pe secundă.
- Lipiți unități de măsură lângă valori cu blocul de îmbinare a textelor:
25 C,40 %,1013 hPa— un număr fără unitate nu înseamnă nimic (ați pățit-o la modulul 3 cu măsurătorile).
La stația demo: adevărul senzorului
- La rândul vostru: tehnicianul conectează UIFlow-ul echipei la dispozitiv (cheia stației), apăsați Run — programul pleacă spre M5GO și ecranul lui prinde viață cu valorile reale.
- Aveți 5-8 minute — folosiți-le ca oamenii de știință, cu un mini-protocol:
- notați valorile de repaus (temperatura, umiditatea, presiunea camerei);
- un membru ține degetul aproape de senzor (fără să-l atingă) 30 de secunde — ce urcă: temperatura, umiditatea sau amândouă?
- suflați ușor spre senzor — umiditatea răspunde aproape instant;
- notați cât de repede revin valorile la normal.
- Predați stația echipei următoare la timp și întoarceți-vă la calculator cu datele notate — misiunea le folosește.
Dacă nu merge
- UIFlow nu vede dispozitivul. Cheia de conectare introdusă greșit sau M5GO-ul a pierdut Wi-Fi-ul. E treaba tehnicianului de stație, nu a echipei — de asta există rolul: restul clasei nu pierde timp cu împerecherea.
- Blocurile ENV nu apar în paletă. Unitatea ENV nu a fost adăugată în proiect (pasul 9). Fiecare echipă trebuie s-o adauge în propriul proiect — nu se moștenește de la stație.
- Pe ecranul M5GO textele se suprapun. Label-urile sunt prea apropiate sau fontul prea mare pentru text lung. Întoarce-te la schiță: pe hârtie era loc? Simulatorul din UIFlow arată pozițiile fidel — corectați acolo, nu ocupați stația pentru ajustări de aspect.
- Valorile îngheață după câteva secunde. Citirile sunt în afara loop-ului: rulează o dată și gata. Tot ce trebuie reîmprospătat stă în repetiție.
- Temperatura arată cu câteva grade mai mult decât termometrul clasei. Nu e defect: senzorul stă lângă procesorul care se încălzește. Sistemele reale de măsură au și ele erori sistematice — notați diferența, e o observație de laborator, nu o rușine.
Misiunea ta
Nivel de bază: stația meteo a echipei a rulat pe M5GO, cu interfața construită după schiță și valori reale notate în protocol.
Extindere: adăugați un semafor de confort în interfață — fundal sau text care își schimbă culoarea după temperatură: sub 19 °C albastru („rece"), 19-26 °C verde („confort"), peste 26 °C roșu („cald"). Blocul de decizie din UIFlow funcționează exact ca if/elif din Python — laboratorul 4 se aplică direct. Testați logica în simulator; culoarea pe viu o vedeți la rotația următoare, dacă mai prindeți una.
Provocare: faceți raportul stației — o jumătate de pagină cu: schița inițială, o poză sau un desen al ecranului final, tabelul măsurătorilor (repaus / deget / suflat / revenire) și diferența față de termometrul clasei. Comparați raportul cu al altei echipe: senzorul e același — de unde diferențele dintre măsurători?
Ai terminat când:
- programul echipei a rulat pe dispozitivul real, în interval;
- ecranul final respectă schița de pe hârtie;
- protocolul de măsurători e completat cu toate cele patru rânduri;
- fiecare membru al echipei poate explica drumul unei valori: senzor ENV → bloc de citire → label pe ecran.