Avtor: Mag. Boštjan Šuhel
Klimat je delujoči šolski projekt. Zbira podatke iz lokalnih tipal. Podatki tipal se zapisujejo v SQL tabelo par.
Tabela par je v podatkovni bazi test. Klimat regulira temperaturo s pomočjo histereznega vklopa led3. Led3 je vezan na GPIO17. Led4 utripa stalno, dokler je program delujoč. Led4 je vezan na GPIO4. Imamo nastavite referenčne temperature s programom temperatura.php, ali nastavimo urnik s programom urnik.php. Podatke urnika se zapisuje v tabelo urnik, ki je del podatkovne baze test.
CJMCU-0401
Projekt klimat uporablja modul CJMCU-0401[2]. Pri modulu je odlično to, da ima na sebi 4 kapacitivne tipke in 4 signalne LED-ice. Ena LED-ica signalizira napajanje, ostale signalizirajo pritisk na tipko. Notranja vezava signalne LED-ice in izhoda za tipko omogoča uporabo 4 izhodov za tipko, ki so na True logičnem nivoju, če pritisnemo na tipko. Imamo pa še eno možnost, namreč če GPIO nastavimo kot izhod in na ta izhod priključimo izhod za LED-ice, bo prevladal GPIO. V tem primeru bo signalna LED-ica kazala na stanje izhodnega GPIO.
Ta vsebina je samo za naročnike
BME280
BME280 je tipalo tlaka, temperature in vlažnosti. Priklopi se ga na GPIO na I2C asinhrono serijsko komunikacijo. C->Osnove. Tu imamo tipko I2c, ki izpiše priklopljene naprave.
Programska oprema
SQL
Nameščen SQL[1] strežnik omogoča delo s SQL podatkovnimi bazami. Slovenska izdaja ima dodano podatkovno bazo test. Klik na Orodja->PhpMyAdmin in odpre se prijavno okno v SQL strežnik. pi:rasspberry sta uporabnik in geslo za vstop. Na levi strani izberemo podatkovno bazo test.
Na sliki vidimo pred-nastavljeno bazo test, tabele in vsebino tabel z zapisi. Imamo tabele kraji, par, ucenci, uporabnik in urnik. V projektu krmilnik uporabljamo tabelo urnik in za diagrame uporabimo tabelo par. Prikazana je vsebina, ki je na slovenski izdaji pred-nastavljena. Pri uporabi vaj, delujočih projektov ali nalog se le-ta seveda spreminja.
Ponovna nastavitev SQL tabele test
Terminal->cd Install->./
install testdatabase
S tem smo ponastavili podatke v podatkovni bazi test na začetne vrednosti. Vrednosti si lahko ogledate z orodjem PhpMyAdmin ali preko projektov. SQL podatkovne baze in SQL jezik so med starejšimi standardi. Nameščen SQL strežnik nam omogoča pogled na IT področje ali še bolje implementacijo v industrijske projekte. Gre za splošni trend združevanje in poenostavljanja orodij za obe področji.
Branje podatkov iz SQL tabele par
Par je namenjen izrisu diagramov iz tabele par. Sestavljen je iz Python programa par.py in ustreznega php programa odvisno od oblike diagrama.
Par.py je osnova za vse parxx.php programe. Iz SQL tabele par prebere podatke za diagram in jih vrne v javascript notaciji. Parxx.php s pomočjo php napiše spletno stran v html,css in javascrip jeziku. Kot podatke izpisa uvozi podatke v javascript notaciji in jih uporabi pri izrisu diagrama. Vidimo spremenljivko ključi, podatki, ključid in podatkim.
Ključi so vsi ključi slovarja, ki ga uvozimo iz par[int(diagram)] spremenljivke, ki je zapis SQL tabele par. V zapis par tabele spravimo celotno par polje, ki ima 10 elementov. Deklaracija je v knjižnici slovenska_izdaja.py. Element 0 uporabljamo za diagrame. Zato moramo opraviti ukaz python par.py 0. Dodatni parameter 0 določi iz katerega elementa se izrisuje diagram. Teoretično imamo lahko več diagramov.
Tabela podatki je tabela, kjer so vrednosti posameznega zapisa SQL tabele, torej vrednosti par, ki so časovno enakomerno dodajane v SQL tabelo. Spremenljivka Ključid je število ključev.
To število je za dva večje od števila meritev, ki jih zapisujemo v par tabelo. To je zato, ker ob vpisu dodamo izvor in čas zapisa. Spremenljivka podatkid je dolžina spremenljivke podatki. Če to dolžino delimo s številom ključev dobimo število zapisov v SQL tabelo.
Spremenljivka Podatkim je tabela dveh tabel. Podatkim[0] je tabela najmanjših vrednosti po ključih in podatkim[1] je tabela največjih vrednosti po ključih. Vse te podatke dobimo iz SQL tabele par. Notacija spremenljivk je javascript. Rabimo jih v par1.php in par2.php diagramih.
Branje in vpis Temperature in Frekvence v par[0]
Stanje krmilnega jedra nam izpiše napravo, IP naprave, ime programa, cikel krmilnega jedra in sistemsko spremenljivko par. Sistemska spremenljivka par je tabela, v katero lahko vpisujemo poljubne podatkovne strukture. Krmilno jedro poskrbi za časovni vpis v SQL bazo in delovni pomnilnik. Podatki zapisani v SQL bazo so kasneje uporabljeni v parxx.php diagramih. Podatki v delovnem pomnilniku so uporabljeni za izrise diagramov.
Vidimo, da je prvi element tabele par[0] slovar s ključi Temperatura, Frekvenca,ura in izvor. To so tudi podatki ki jih imamo v parxx.php diagramih. Diagrama par1.php in par2.php sta šolska, kjer se prebijemo skozi ključne postopke, da diagram dela. Na razvijalcu je, da prilagodi diagrame potrebam svojega projekta.
Izris diagrama iz spomina
Tipka Izris izriše diagram iz delovnega spomina na desno stran spletne strani. Imamo povezavo Izris, ki izriše diagram na svoj zavihek. Ti diagrami imajo resolucijo 300×402. Omogočajo izris treh številčnih diagramov ali do 6 digitalnih in dveh številčnih diagramov. Metoda izris mora biti v telesu krmilnega jedra in zagotavlja časovno enakomeren vpis v diagram in vpis par spremenljivke v SQL tabelo par. Periodo določita spremenljivki diagram[’T’], za Izpis in diagram[’T_SQL’] za Par.
Izris iz SQL tabele par
Stran PHP znotraj projekta Klimat nam izpiše diagram par1.php in par2.php. Par1.php je osnovni, ima nespremenljivo y os v mejah -100 do 400. Omogoča pa raziskovanje s kazalcem miške.
Ob premikanju kazalca miške po x osi se izpisujejo podatki kot so Temperatura, Frekvenca, ura vpisa, izvor zapisa, xy koordinate kazalca miške in izračunana perioda med podatki.
Diagram reši osnovne tehnike zapisa in je namenjen naknadnemu prilagajanju po potrebah projekta.
Izris iz SQL tabele par, s prilagajanjem y osi
Par2.php je naprednejši diagram. Zna prilagajati y os tako, da poišče najmanjšo in največjo vrednost med podatki. Krivulje imajo vidnejši trend in so verjetno boljše od ne spreminjajočih oznak. Diagram reši osnovne tehnike zapisa in je namenjen naknadnemu prilagajanju po potrebah projekta.
Viri:
https://mariadb.org/
https://www.banggood.com/CJMCU-0401-4-bit-Button-Capacitive-Touch-Proximity-Sensor-Module-With-Self-locking-Function-p-1118016.html?cur_warehouse=CN
https://www.banggood.com/5pcs-BME280-Digital-Sensor-Temperature-Humidity-Atmospheric-Pressure-Sensor-Module-p-1430737.html?cur_warehouse=CN