Sida 1 av 1
Script till LCD
Postat: 15 nov 2015, 21:03
av chris
Hej har en RPI med owfs och 5 tempgivare och en lcd. Allt fungerar kan tända LCDn men har ingen aning hur jag ska göra ett script som visar temperaturerna och tid i displayen. Antar att det är ett script som behövs vet dock inte hur det ska göras och var det ska läggas i RPI:n. Tacksam om någon kan hjälpa mig
Re: Script till LCD
Postat: 20 nov 2015, 18:34
av flyvert
Hej.
Den allra enklaste varianten är nog att lägga in ett permanent körande script som du anropar från /etc/rc.local (ett script som körs en gång vid boot)
Det här skulle ta inne och utetemp från mina två EDS0068 och lägga ut dem på displayen tillsammans gradtecken och klockslag och upprepas c:a 1 ggr per minut.
#!/bin/bash
while [ true ];do
# Indoor temp, corridor
sens1temp=$(cat /mnt/1wire/7E.C42600001000/EDS0068/temperature)
sens1humi=$(cat /mnt/1wire/7E.C42600001000/EDS0068/humidity)
sens1lite=$(cat /mnt/1wire/7E.C42600001000/EDS0068/light)
sens1pres=$(cat /mnt/1wire/7E.C42600001000/EDS0068/pressure)
# Outside temp, north wall
sens8temp=$(cat /mnt/1wire/7E.DE2600001000/EDS0068/temperature)
sens8humi=$(cat /mnt/1wire/7E.DE2600001000/EDS0068/humidity)
sens8lite=$(cat /mnt/1wire/7E.DE2600001000/EDS0068/light)
sens8pres=$(cat /mnt/1wire/7E.DE2600001000/EDS0068/pressure)
printf "$(date +%H:%M)" > /mnt/1wire/bus.1/FF.CA0800000100/line20.0
printf "In%5.1f\xDF %3.0f%%" $sens1temp $sens1humi > /mnt/1wire/bus.1/FF.CA0800000100/line20.1
printf "Ut%5.1f\xDF %3.0f%% %4dmb" $sens8temp $sens8humi $sens8pres > /mnt/1wire/bus.1/FF.CA0800000100/line20.2
sleep 55
done
Om du sparar ovanstående som med t.ex. filnamnet "
/usr/local/bin/uppdatelcd" (givetvis måste du ändra 1-wire filnamnen att matcha dina givare).
Sen gör du skriptet körbart med "
chmod 755 /usr/local/bin/uppdatelcd" kan du anropa det från
/etc/rc.local genom att lägga till dessa två rader innan "exit 0"
# Start temperature updater
/usr/local/bin/uppdatelcd &
exit 0
Jag håller dock på att övergå från Bash-script till Python med vilket man kan göra så mycket mer (och för en som kan lite programmering, enklare).
Vidare kan man använda "cron" för att få saker utförda på exakt tid (det är faktiskt det jag gör idag; min LCD uppdateras någon sekund efter äkta tid, skriptexemplet ovan kommer att ligga 0-60 sekunder efter RPins klocka)

- Min LCD infälld i väggen i köket
/f
Re: Script till LCD
Postat: 24 nov 2015, 22:16
av chris
Tack ska testa när jag kommer till den nästa gång. Tack för hjälpen

Re: Script till LCD
Postat: 28 jul 2016, 10:54
av P-G
Skulle vilja få lite hjälp med initieringen av LCD
Använder mig av OWFS och raspberry
Det löste sig
Re: Script till LCD
Postat: 30 jul 2016, 09:11
av flyvert
Antagligen lite för sent, men så här har jag moddat (i rött) i start1wire.sh skriptet för att min LCD skall initieras och få bakgrundsbelysningen påslagen varje gång jag startar owserver och owfs (jag har delat upp min 1-wirebus över två Raspberrys och "speglar" dessa mellan båda enheterna så att "alla ser alla givare"):
# Start local owserver hosting own I2C 1-wire bus master
/opt/owfs/bin/owserver --i2c=ALL:ALL
# Connect to local and remote owserver at RPI2
/opt/owfs/bin/owfs -s 127.0.0.1 -s RPI2:4304 --allow_other /mnt/1wire
# Wait 5 seconds, then turn on LCD
sleep 5
echo "1" > /mnt/1wire/FF.CA0800000100/LCDon
echo "1" > /mnt/1wire/FF.CA0800000100/backlight
Re: Script till LCD
Postat: 30 jul 2016, 16:04
av P-G
Tack för ditt svar ändå.
Det jag skulle behöva hjälp med är hur man skriver ut elförbrukningen på displayern från databasen
elförbrukning nu och månaden.
Re: Script till LCD
Postat: 31 jul 2016, 07:55
av flyvert
P-G skrev:Tack för ditt svar ändå.
Det jag skulle behöva hjälp med är hur man skriver ut elförbrukningen på displayern från databasen
elförbrukning nu och månaden.
Jag kör en hemmasnickrad lösning baserad på MySQL o diverse skriptspråk, antar att du kör RRD...
I det stora så går det ju ut på att omvandla räknaren (som i mitt fall räknar 1/1000 kWh).
Jag har ett skript som går en gång per minut, läser av räknaren och lägger ut värdet "X Watt" där X är antalet uppmätta elräknarpulser senaste minuten multiplicerat med 60. 1/1000 kWh förbrukat under en minut = 60 watt i snittförbrukning. Skulle det komma 10 pulser i minuten under en hel timme motsvarar det 10 pulser x 60 minuter = 600/1000 kWh = 0.6 kWh (eller i klarspråk en snittförbrukning om 600 watt per minut).
Jag lägger inte upp någon historisk data på displayen, den publicerar jag via Apache (webbserver) och mha Flot (JavaScript) diagram. Flot är relativt enkelt att använda om man kan lite Java och JSON (jag lade ut min kod här på forumet för en par år sedan) och har fördelen att basera sig på sekundfärsk data, varje gång en webklient frågar efter ett diagram läses data från MySQL och omvandlas till kurvor av Flot.
Så här ser min rullande dagförbrukning ut:

- Rullande dagsmedelförbrukning av el
I och med att datat är lagrat i SQL är det busenkelt att vrida o vända på det, här tex den genomsnittliga elförbrukningen
per timme på dygnet:

- Genomsnittlig elförbrukning, per timme på dygnet
Re: Script till LCD
Postat: 31 jul 2016, 22:11
av P-G
Hej
Jag håller på att konvertera från Msure som jag har kört sedan juni 2009 på en XP. Jag kommer att fortsätta med samma MySql databaser om det går. (Det är bara en anpassning).
Jag skall titta på Flot.
Vet du hur man kan få ut LAST från en RRDDATA till en vaiabel?
Jag återkommer om jag har några frågor.
Re: Script till LCD
Postat: 31 jul 2016, 23:46
av flyvert
P-G skrev:Vet du hur man kan få ut LAST från en RRDDATA till en vaiabel?
Tyvärr, har aldrig jobbat med RRD. Men det finns mycket kunskap här på forumet...
Re: Script till LCD
Postat: 21 sep 2016, 22:19
av P-G
Skulle någon kunna ge mig ett exempel på kod för att skapa grahp med mysql. Har försökt att hitta någon exempel på flot hemsida men hittar inget. Gärna med elmätare och temp.
Re: Script tiill LCD
Postat: 22 sep 2016, 00:40
av flyvert
P-G skrev:Skulle någon kunna ge mig ett exempel på kod för att skapa grahp med mysql. Har försökt att hitta någon exempel på flot hemsida men hittar inget. Gärna med elmätare och temp.
Kolla mina första inlägg här - vid något tillfälle vintern 2013/2014 la jag ut stommen av min MySQL/PHP/Apache/Flot lösning.
I korthet, MySQL->PHP->Apache->Flot.
Ladda ned o studera det jag lade upp, ställ sen en mer specifik fråga så skall jag försöka fylla i.