Kā es darbā regulēju radiatorus Jānis Rubļevskis (koko) / 18.02.2016. 16:51 / #Tehnoloģijas / 8 komentāri

Šis ir stāsts par to, ka, ja mētājas visādas tehniskās lietiņas un gribās arī nedaudz paeksperimentēt, tad jāizdomā tikai, ko tad īsti beigās gribi panākt. Tā nu divi radiatori birojā dzīvo savu dzīvi (ja vien apkopēja neizdomā, ka tā tam nav jābūt).

Šoreiz raksts būs ļoti tehnisks un diezi vai vienkāršais lasītājs visu uztvers, bet varbūt iedvesmo arī kaut ko pamācīies. Aprakstīju to, kādā veidā es esmu automatizējis noteiktas temperatūras uzturēšanu vienā no biroja telpām. Tas nav pareizais (optimālais būtu īstais vārds) veids kā to darīt, jo es esmu savācis visus sev pa rokai esošos līdzekļus, lai to panāktu. Un tomēr tas ir uzskatāms piemērs, kā var ar minimāliem (šoreiz gan tie ir maksimāli) līdzekļiem panākt tik pat minimālu rezultātu.

Manis izmantotās lietas:

Sākšu jau ar to, ka stāsts šoreiz ir par automātisku elektrības padeves ieslēgšanu un/vai izslēgšanu atkarībā no istabas temperatūras. Manā gadījumā sensors spēj mērīt arī mitrumu, tāpēc var mēģināt izmantot arī šo parametru. Šis nekādā gadījumā nav optimālais vai ieteicamais veids konkrēto darbību veikšanai... Un tomēr - kāpēc gan ne, ja jau es varu?

Bezvadu elektrības pārslēgšana

WIFI Plug

Ir viens verķis, kuru var pieslēgt istabas wifi tīklam. Šim verķim ir divi režīmi: ieslēgtās strāvas un izslēgtās strāvas režīms. Izstrādātājs ir paredzējis verķa darbināšanu no mobilajām aplikācijām. Sagadījās tā, ka apakšā ir ķīniešu detaļas un, ja ir motivācija un nedaudz smadzeņu, tad var pierunāt darboties arī no citām ierīcēm. To, kā es to izdarīju, esmu aprakstījis nedaudz senāk. Ja negribās lasīt, tad te ir GITHub repozitorijs ar gatavo JAVA kodu un pat nokompilētu aplikāciju. 

Elektrības pārslēgšana caur USB

Es kaut kā nejauši biju nopircis USB daiktu, kurš reāli satur divus relejslēdžus, kuri, savukārt, spēj panest katrs 10A jaudu (es pirku šeit). Lai varētu tikt galā ar šo slēdzi, uzrakstīju mazu programmiņu pitonā. Programmiņa izmanto pitona HID API, kas ar usb iekārtām strādā pat ļoti labi. Grūtākais, protams, bija izpīpēt signālus, bet, cik atceros, tad tos es palūrēju vienā C risinājumā. Reku ir pilnais kods (nedusmojat - pitonu es praktiski nemāku).

Lai nebūtu jābojā tie vadi, kas ir grūti aizstājami, sabojāju pagarinātāju, kura fāzes vadu palaidu caur šo slēdzi. Tas ir tieši tik vienkārši, jā.

Termosensors

Visbeidzot kārta ir pienākusi termosensoram. Es izmantoju DHT11, jo tas ir nepieklājīgi lēts. Labākais ir tas, ka šim sensoram ir pieejama smuka Python bibliotēka, kas paredzēta tieši Raspberry PI - Adafruit Python DHT Sensor Library. Tas atkal ir tieši tik vienkārši, ka vienkāršāk vairs nevar būt. Līdz ar to atliek visu saslēgt kopā un palaist darbībā.

Realizācija

Turpinājumā kods (ar komentāriem), kā es to visu panācu. Tas nav optimāls, jo konkrētajā gadījumā vieglāk bija kopēt nekā taisīt funkciju (es esmu slinks), taču savu darbu dara. Tu, protams, vari arī labāk.

 Programmu jāpalaiž ar root (administratora) tiesībām, respektīvi sudo termo-regulation.py. Tā kā raspberry pi sudo režīms neprasa paroli, tad arī par to nav jāuztraucas, bet, ko darīt, lai programma palaistos automātiski? Te nu nāk talkā linux iebūvētās iespējas. Es izmantoju screen, kuru palaižu datora startēšanās laikā. Šajā screen es palaižu arī vajadzīgo programmu. Tehnika ir ļoti vienkārša: pielabojam /etc/rc.local failu tā, lai pirms exit 0 būtu sekojoša komanda: sudo -u pi screen -dm -S pistartup bash /home/pi/teirproga/startup. Kur startup fails ir vienkāršs bash skripts. Bash skriptu izvēlējos tāpēc, ka mana programma strādā ar relatīviem linkiem. Ja visur linki būtu absolūti, tad var likt pa taisno komandu.

Pie attiecīgā skrīna var piekļūt ar screen -r metodi.

Saprotu, ka raksts ir nedaudz saraustīts un pamatā domāts datorentuziastiem un programmētājiem, taču tas arī parāda, cik viegli ir darīt stulbas lietas, ja pa rokai ir dažas lētas, bet interesantas mantiņas.


Komentāri:

Juris Sproģis @ 25.11.2020. 09:00

Es gan tur nelīstu )))

Karlis Janis @ 28.12.2017. 10:47

Izskatās, ka vienam ir bezgala daudz brīvā laika, un necik opciju, kur to likt :D
Bet forši- thumbs up! :)

klaidonis @ 07.06.2017. 16:59

Pats rakstiji kodu ?

hermmes @ 07.06.2017. 09:20

Man patīk risinājusm ar izoleni :)

koko @ 22.02.2016. 07:46

Zandi, par reliģiskiem jautājumiem strīdēties nebūtu labi, bet nu Java nav topa augšgalā un nevis tāpēc, ka tā būtu nesmuka valoda - valoda ir forša un komūna ir liela, bet joprojām ir novērojama tā javas bremze. Protams, mūsdienu jaudīgie datori daudz maz to risina, bet uz vājāka dzelža ir tas pats, kas griezt vēnas lēnītēm :D

Zandis @ 21.02.2016. 17:46

Bet ar ko salīdzinājumā tad java nav perfekta? :>

koko @ 21.02.2016. 15:06

Zandi, tas bija piespiedu gadījums, jo reāli visus interfeisus tam sūdam ķīnieši nebija aprakstījuši, bet iedeva jar librārijus līdzi, kurus atverot, spēju kaut ko arī sakodēt.

Un vēl viena lieta - uzkodēju pāris aplikācijas ar ObjectiveC priekš iOS, tad uzkodēju vienu priekš androīda Java... Zini, Java ir perfekta salīdzinājumā ar to ObjectiveC gemoroju :D

Zandis @ 20.02.2016. 23:45

nenu es pareizi sapratu, vai arī tu tagad programmē to pretīgo javu?

btw, baigi labi, ka ir nopircies tas usb daikts - katram mājās tādu vajag!


Nu pasāpini mani - tu jau gribi:

* Visi lauki (izņemot tavu lapu) aizpildāmi obligāti!
E-pasts publiski netiks parādīts.
Zinot vairākumu, komentāros tagi netiek atrādīti kā tagi. Linki automātiski pārveidosies par spiežamiem (cerams).
Bloga īpašnieks patur tiesības ļaunus komentārus dzēst vai pārveidot cilvēkiem patīkamākā formā, bet tajā pašā laikā neatbild par komentāru saturu.