RaspBerry Pi3 B+ och Klimatsensor BME280

210521:
Nu har jag (ytterligare en) RaspBerry Pi3 B+ med NOOBS förinstallerat på SD-minne.
Nu väntar jag på sensorn: BME280
Jag behöver också lämplig kabel och kontakter.
Efter det så ska det kopplas ihop.
Startas upp.
Och så ska jag se om jag får kontakt.
Dels med ’pajen’ och dels med sensorn.
Det blir en hel del mekande med python-programmering innan jag får till det så som jag vill.
Tanken är att RB Pi3 B+ tillsammans med BME280 ska samla:
Luftfuktighet
Lufttryck
Lufttemperatur
Detta ska sedan skickas till min NAS och samlas i en databas eller i en textfil.
Dessa data ska sedan presenteras på ett pedagogiskt vis.

Utöver det ovan så ska sensorn sitta utomhus och ’pajen’ befinna sig inomhus. RJ45-kopplad till hemnätverket.

Utomhus ska sensorn monteras i en en av två idéer:
A. I en EL-dosa som anpassas och får tillräcklig ventilation samt insektssäkras med myggnät. Bör sedan monteras på något form av stag så att det hamnar minst 50cm från väggen och 50cm från betongtaket ovan.
B. En ’böj’ till avloppsrör (är dock inte riktigt klar med den sk ’tankeplanen’, hur det egentligen ska se ut…?).

Och så ska ju det göras ett kabelval.
Jag får mäta mig fram till det som det hela klarar så att jag får de data jag vill ha.
Tror jag börjar testa med kat6-kabel (inte det mest utomhuståligaste valet – men kanske ändå…?).
******************************************************************

210522:
Lite småbökigt.
Fn håller jag på med att jag ska få till sk remote desktop så att jag kan kontrollera den helt från där jag sitter mer bekvämt.
Att komma åt den via terminalen är inge problem och det är egentligen allt som behövs – senare – men nu i början så underlättar det att ’se’ alltihopa.
Jösses!
Det tog nästan hela dagen men nu kan jag antingen koppla upp mig till RaspBerry Pi3 B+ via terminalen eller genom att ’se’ minidatorns sk skrivbord (dess GUI).
Har fixat en genväg på mitt skrivbord som jag nu ’bara’ kan klicka på så kommer jag ’in i’ och ’ser’ den precis som jag kan se vilken annan dator som helst som man kan koppla upp sig emot.
Och det var via RealVNC som det till slut gick.
Det verkar också som om utvecklarna av linuxgränssnittet NOOBS ’låst’ VNC vid just RealVNC.
Får ta å utreda det här.
Det var INTE NOOBS som var förinstallerat på SD-kortet, även om det står så. Utan det är: Raspbian OS: The official Raspberry Pi OS

Kom på att jag ska ta säkerhetskopior på mina RPi-SD-kort. Jag har ju två ’pajer’. En som fungerar som Medieenhet och håller reda på ’alla’ mina filmer.
******************************************************************

210523:
Idag kom jag ihåg… 😉 att jag skulle säkerhetskopiera de där microSD-korten.
Både för denna och för min andra; Raspberry Pi3 med Open Elec och Kodi. har den som mediespelare. Främst för mina filmer som jag har på NAS’en
******************************************************************

210603:
Sensorn BME280
Går å laddar för att löda fast kontakterna till det lilla klimat-sensor-kretskortet.
Och koppla ihop sensorn men rpbpi3b+* enligt:

Klimat-sensor
BME280

Minidator
rpbpi3b+
*
VIN Pin# 01 3.3c DC Power (ev ska denna flyttas till: Pin# 02 DC Power 5v)
GND Pin# 06 Ground
SCL Pin# 05 GPIO03 (SCL1, I2C)
SDA Pin# 03 GPIO02 (SDA1, I2C)

*Raspberry pi 3B+

Illustration:
[Bild: Kopplingsschema Sensor BME/BMP280 och Raspberry Pi 3B+]
[Klicka på bilden så öppnas den i nytt fönster och allt blir tydligare 😉 ]
Bildförklaring:
A. Ström in: miniUSB; 5.1V, 2.5A, 12.75W
B: HDMI (monitor / TV)
C: (special)-kamera-kontakt
D: Ljud ut
E: RJ45 datakabel-kontakt (nätverk)
F: 4st USB2
G: GPIO-kontakter 40st
H: klimat-sensorn (Lufttemperatur, Lufttryck, Relativ Luftfuktighet (och kanske också Altitud (meter över havet))
I: microSD 16GB (innehåller, i det här fallet, Raspbian OS)
J: (special)-monitor-kontakt

Jag har kablar med mindre krokodilklämmor i ändarna så att jag kan se att det fungerar.
Sedan ska jag installera ett (python)-kommando som kontrollerar att sensorn blir rätt identifierad.

Därefter ska jag hitta rätt kodrader för att få ut de data jag vill ha av sensorn.
(Om den nu fungerar…)
Vad jag förstått så kan en del av dessa sensorer behöva ’kalibreras’ digitalt.

När jag lyckats med det är det dags att skaffa material till utomhusmontaget.

Två plattor, med ett borrat hål i mitten.
En 20 cm lång ’konstruktion’ av 4st träbitar som bildar ett stag med en hålighet i centrum.
En st utomhus EL-kontaktdosa. Nedtill och på sidorna ska rätt så stora ’hål’ karvas ut. Dessa täcks sedan med insektsskydd (myggnät och smältlim). Inuti ska jag limma fast det som blev rester av håltagningen så att jag har något som sensorn stabilt kan fästas vid (smältlim – eller om det går att lägga den ’löst’).
Ett hål i botten som motsvara positionen i plattan. I detta hål och i stagets ’kanal’ ska kabeln löpa
En påse kontaktkablar (för raspberry pi GPIO-stift (ska köpas å Kjell & Company)). 4st av dessa ska jag kapa. Ut i förrådet och leta upp ca 2m kat6-datakabel. De färgade trådarna löder jag sedan ihop med de kapade. Lödningar och blottad kabel isoleras med smältlim.
Den kabeln ska sedan föras inifrån och ut, via fönsterventilen.

Efter att ha kontrollerat att det nu funkar och ger ’vettiga’ värden (vilket många internetsidor kan vara vanskligt, beroende på varifrån sensorn kommer) så ska jag börja skapa en sql-databas på ’pajen’ (på en tillkopplad USB-sticka) och en på mitt webbhotell.

Sedan ska det skrivas python-kod för att dels få ut klimatdata från sensorn och sedan uppdatera databaserna.

Och så ska det då kodas en sk dynamisk HTML sida med diagram / grafer som visar det jag villa ha visat.

För att nu ro i hamn det här projektet så gäller det att jag har koll på och varje dag registrera hur jag ’mår’.

Om nu det där rullar på och verkar vettigt så kommer jag sannolikt att fixa någon form av sk UPS till ’pajen’ – strömbackup – så att den fortsätter att jobba även när strömmen går.
Ett strömavbrott kräver att jag snickrar ihop python-kod som håller koll och om så är fallet uppdatera internetdatabasen med de data som saknas – per automatik…
******************************************************************

200605:
Gör en testkoppling:
[Bild: Testkoppling: RaspBerry Pi 3B+ och sensorn BME280]
Himla kul!
Startade ’pajen’.
Satte in en nätverkskabel i kontakten längst upp till höger.
Loggade in till den via:
ssh 192.168.0.70 -l pi
pi@192.168.0.70's password: XXXXXXXXXX...
Inne:
pi@rbpi3b:~ $
Startar ’VNC server’: vncserver
Detta för att jag via klienten (vncViewer) ska kunna se ’pajens’ sk ’Desktop’.
Nu behövde jag inte det denna gången.
Eftersom jag kopplat in en sk I2C-sensor så behöver den tjänsten aktiveras.
I ’pajens’ inloggning:
pi@rbpi3b:~ $
Skriver jag:
sudo raspi-config
En ruta visas, en meny.
Jag väljer nr 5: Interfacing Options
En ny meny, här väljer jag:
P4 I2C
Och väljer att aktivera den (enable)
Startar om ’pajen’ med kommandot:
sudo reboot
Loggar sedan in igen.
Kontrollerar kopplingarna mellan sensor och ’pajen’.
I terminalen skriver jag:
i2cdetect -y 1
Och får följande resultat:
    0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 -- 
>: och det är utmärkt det betyder att I2C-tjänsten hittat en enhet på adressen: 0x76.

Nu installerade jag ett pythonskript:
wget -O bme280.py http://bit.ly/bme280py

Testade det:
python bme280.py
Svar:
Chip ID     : 96
Version     : 0
Temperature :  25.75 C
Pressure :  1018.03732571 hPa
Humidity :  33.9286335818 %

>: det är lysande 😀
Det där är innomhusvärden för vårt vardagsrum.
Kollade med värden för Malöga flygfält:
UteTemp: 22 C
UteFukt: 38 %
Tryck: 1023 hPa

Innetemperaturen har jag verifierat med en annan digital termometer.
Och den stämmer.

Ska se om jag kan få fram en enhet, för luftfuktighet och en för luftttryck, som är ordentligt kalibrerade så jag kan så hur värdena står sig.

Vad jag läst mig till så kan man behöva ’kalibrera’ de värden man får via pythonskriptet – jag vet ju inte i vilket land de är skrivna…
Jag kan behöva ’gå in i’ pythonskriptet och ändra lite.

Men först kollar jag om jag kan få ’riktiga’ värden via andra apparater.
******************************************************************

210608:
De kablar som ska användas för att få kommunikation emellan sensorn BME280 och minidatorn Raspberry Pi 3B+
Minst fyra av dem ska jag klippa isär och lösa ihop med den långa 2m (kat6)-kabeln.
[Bild: Kablar som ska användas till sensorn BME280 och Raspberry Pi 3B+]
4st av dem trycker jag fast på stiften som jag ska löda på sensorn BME280.

Idag satte jag mig till och lödde ihop lite grejer.
[Bild: Förberett för lödning]
Här har jag förberett för lödning.
Raspberry pi 3B+ till vänster men påsatta kablar.
Lödpennan upp till i bilden.
Till höger en hållare som jag har satt fast sensorn (BME280) och stiften som  ska lödas fast.
Under det, lödtenn.
Denna hopkopplingen gör jag för att se att det hela fungerar som det ska

Färdiglödd. Lödningen skedde med sk urmakarglasögon (mikroskopglasögon)
[Bild: Färdiglödd]
Gjorde en tankevurpa och lödde fast stiften åt fel håll på sensorn…

Kontrollerar lödningen – det var attans pilligt. Och jag är ju inte superstadig på handen.
Att jag sedan lödde från fel håll… gjorde ju inte saken lättare…
[Bild: Kontroll av lödning]
Bilden är tagen med ett sk pennmikroskop och mobilkameran.
Var lite orolig för att jag hade lyckats löda ihop stift nr 2 uppifrån med motståndet till vänster om de lödda stiften.

Här löder jag ihop isärklippta stiftkablar med kat6-kabeln:
[Bild: Lösningen på 'G']
Mycket praktiskt med en sådan där hållare 🙂

Investerade i en ’billig’ väderstation för att ha som referens:
[Bild: Väderstationen som jag har som kontroll]
Den registrerar; Innetemperatur, Lufttrycket och inneluftfuktighet.
Den främre dosan placeras utomhus och mäter då utetemperatur.

[Bild: Kort Kabel]
Första testen. ’Pajen’ Och Sensorn BME280 kopplade med kort kabel och väderstationen som referent.

[Bild: Lång Kabel]
Efter att ha lött på de avklippta stiftkablarna på den långa kabeln (kat6, 2m) så kunde jag testa det.

Nu funkade den ändå – men ändå…

Har jämfört om det gör någon skillnad mellan ’kort’ (20cm) och ’lång’ (2m) kabel.
’Motståndet’ i den ’korta’ mäter jag till 0,4Ω (multimetern inställd på upp till: 200Ω)
Mäter jag ’motståndet’ i multimeterns egna kablar så får jag 0,3Ω
Det innebär att 20cm kabel ger 0,1Ω i motstånd och 2m kabel ger (0,7-0,3=) 0,4Ω

När jag hämtar mätvärden blir det lite (väldigt lite) underligt:

Kort(20cm) Lång(2m)
25,57 25,48
hPa 1014,14 1014,07
% 39,89 40,05

Temperaturen minskar med: 0,09 C°
LuftTrycket minskar med: 0,07 hPa
Den Relativa LuftFuktigheten, ökar med: 0,16 %

Givetvis kan det där bero på hur de mäts.
Det kan ju vara så att ju mer motstånd kabeln ger (ohm Ω) så ökar värdet för LuftFuktighet medan värdena för LuftTryck och LuftTemperatur minskar.

Än så länge ser jag ingen anledning till att justera i pythonskriptet.

Väderstationen visar för samma tidsperiod (snittet):

BME280
Lång
Kabel
Väderstationen
24,99 26
hPa 1014,85 1013,4
% 39,35 36,6

Väntar ju på en till – likadan – tänk om den visar annorlunda värden…
******************************************************************

210610:
Det är ju en till på väg (i de bästa av världar) som jag tänkt att använda inomhus.
Problemet är att de är identiska.
Och ska man få dem att att fungera så måste man göra ett mikroskopiskt ingrepp (här har jag tagit en bild med ett sk pennmikroskop kopplat till SmartFånen):
[Bild: Jumpers på BME280]
Nya BME280 kommer med ’jumpers’ ’hårdlödade’.
Tre jumpers (SD0, SD1 & SD2) finns det (normalt är det stift som man kopplar ihop med en flyttbar ’brygga’).
Som standard är dessa ’jumpers’ inställda så att sensorn ska ge ifrån sig adress: 0x76.
På bilden visas att SD0 & SD1 är sammankopplade via en liten tunn lödning dem emellan – här inramad ’A
För att ändra adressen så ska lödningen mellan SD0 & SD1 skrapas bort med en skarp kniv.
Och så ska SD1 & SD2 lödas ihop – här markerat med ’B
Om den andra BME280 kommer och
om jag får bra inställning på urmakarglasögonen (förstoring x10) och
om jag inte skakar för mycket så ska sensorn ge ifrån sig adressen: 0x77.

Sedan kopplar man bägge till samma stift på ’pajen’ – hur har jag inte lurat ut än…

Med pythonskriptet kan man sedan göra två saker.
1. Antingen skapa två skript; ett som anropar sensor 76 och ett som anropar sensor 77
2. I pytonskriptet lägga in kodrader som anropar bägge sensorerna och gör två utskrifter.

Fast; undrar om inte två skript är lättare att hantera när de sedan ska konverteras till sql-databas-uppdateringar.
******************************************************************

210611:
[Bild: Nya BME280-sensorn]
Den här heter: GY-BM ME/PM 280.
Den har sex kontakter i stället för fyra:
VCC, GND, SCL, SDA, CSB, SDO
VCC: +3.3V/5V
GND: 0V
SCL: Serial Clock
SDA: Serial Data
CSB: Chip Select
SDO: Serial data Out

Själva egentliga sensorn:
[Bild: Den egentliga sensorn]
949 UP

Ska tydligen ha adress 0x76 (och chip ID: 0x58

Sedan finns det vad jag kan se (och begripa) 2st motstånd och 4st (vet ej)

Den ska tydligen kopplas till ’pajen’ enligt:

GY-BM ME/PM 280 rpbpi3b+
VCC #01 3.3v DC Power
GND #06 Ground
SCL (SDI) #03 GPIO02 (SDA1, I2C)
SDA (SCK) #05 GPIO03 (SCL1, I2C)
CSB
SD0 #39 Group

Bästa att försöka hitta en som ser precis likadan ut…
På ovanstående schema ska sensorns SCL kopplas till ’pajens’ SDA1, när det enligt mig borde vara till SCL1
Jag skulle vilja koppla enligt nedan:
För I2C:

GY-BM ME/PM 280 rpbpi3b+
VCC #01 3.3v DC Power
GND #06 Ground
SCL #05 GPIO03 (SCL1, I2C)
SDA #03 GPIO02 (SDA1, I2C)
CSB [inte för I2C – för SPI]
SD0 [inte för I2C – för SPI]

Jag gör ett test med ovan – i morgon…

Beroende på om och vilka värden jag får ut så kan det varar så att får bli den första som jag ändrar ’adress’ på, på det brutala sättet.

Hittar ingen dokumentation om hur jag gör det på den här modellen.

Får jag bägge att funka så ska det ju bli ruggigt intressant och se om de ger samma värden…
******************************************************************

210612:
Först skulle jag löda fast stiften på nya sensorkretskortet.
Den här gången gjorde jag det från rätt håll – tänk vad mycket enklare det blev.
Fast löda under mikroskop är pressande. Det är ju inte bara det som ska lödas som förstoras – mina rörelser förstoras också. Och jag kan konstatera att jag inte är så värst stabil – det skakar ganska så ordentligt…

Nu är det i vart fall inkopplat.
[Bild: Nya BME280 montera för test]
Har satt på ’pajen’ och ska nu först få kontakt med den:
nisse@nisse-u20:~$ ssh 192.168.0.70 -l p
pi@192.168.0.70's password: *****************
Respons:

The programs included with the Debian GNU/Linux system
are free software;

the exact distribution terms for each program are
described in the

individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to
the extent

permitted by applicable law.
Last login: Tue Jun  8 17:53:54 2021 from
192.168.0.60

pi@rbpi3b:~ $

Bra så långt.

Dags att testa sensorn:
i2cdetect -y 1
Respons:
0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 --

Lysande!

Då ska vi se vad drivrutinen ger för data:
python bme280.py
Respons:
Chip ID     : 96
Version     : 0
Temperature :  23.97 C
Pressure :  999.590064779 hPa
Humidity :  37.6580927479 %

Det kom data 😀

Nu går det inte så snabbt men nu ska jag byta till den första sensorn.
Så att det blir en liten jämförelse.
Och det blev:
pi@rbpi3b:~ $ python bme280.py
Chip ID     : 96
Version     : 0
Temperature :  26.56 C
Pressure :  1000.03354567 hPa
Humidity :  33.7923363275 %

Tryck anser jag att de är överens om.
Temp & Fukt skiljer sig dock och de jag har att jämföra med visar:
Temp: 24-25 °C
Fukt: 36% i RLF
Sensorerna ger:
Temp: 23.97 – 26.56 °C (en skillnad om 2.59 °C)
Fukt: 33.79 – 37.66 % RLF (en skillnad om 3.87 % RLF)

Jag låter det vara så länge.

Nu ger jag mig på ’brutalelektroniken’.
1. Skrapa bort en lödning på det första kretskortet
2. Löda ihop två andra ’punkter’.
3. Testa och hoppas på att ’76’ här ovan kommer att visa ’77’ i stället.
4. Skapa en ny drivrutin. Tar en kopia på befintlig och ger den namnet:
bme280.py > bme280_77.py
Och så ’döper jag om’ originalet till:
bme280.py > bme280_76.py
5. Exakt var jag ska ändra i drivrutinsfilen: bme280_77.py är jag inte riktigt 100% säker på så jag får dels studera filen och dels läsa på lite.

Bild på före ’skrapandet’:
[Bild: Bild på ga BME280 för skrapandet]
Nu har jag skrapat mellan de två ’pluppar’ som var sammanlödda (SD0 & SD1):
[Bild: Bild på ga BME280 efter skrapandet]
Inte direkt snyggt – men det visade sig senare fungera 🙂
Nu ska jag ta och testa så att det verkligen är så…:
i2cdetect -y 1
Respons:
0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 --

>: Hur ska jag tolka det där. Ger det ’76’ oavsett om ’plupp’ 1 & 2 (SD1 & SD2) är sammanlödda, eller inte?
Eller har jag inte skrapat tillräckligt?

Jag tar och börjar med att löda ihop plupp 2 & 3 (SD1 & SD2) – så får vi se vad det ger:
[Bild: Bild på ga BME280 SD1 & SD2 sammanlödda]
pi@rbpi3b:~ $ i2cdetect -y 1
    0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- 77

Ha! 😀

Men:
python bme280.py
Gav:
Traceback (most recent call last):
  File "bme280.py", line 172, in <module>
    main()
  File "bme280.py", line 161, in main
    (chip_id, chip_version) =
readBME280ID()

  File "bme280.py", line 56, in readBME280ID
    (chip_id, chip_version) =
bus.read_i2c_block_data(addr, REG_ID, 2)

IOError: [Errno 121] Remote I/O error

Här har jag alltså något att klura på.
Börjar med att byta* namn på: bme280.py till: bme280_77.py
cp bme280.py bme280_77.py
*Skapar en kopia

Kopierade den till NASen

Efter en del rättighetsproblem mellan ’pajen’ och ’NASen’ så kunde jag till slut öppna pythonskriptfilen: bme280_77.py
På rad 27 står:
DEVICE = 0x76 # Default device I2C address
Jag avmarkerade den och skrev i stället:
DEVICE = 0x77 # Default device I2C address

Kopierade tillbaka filen till ’pajen’ och testade:
python bme280_77.py
Resultat:
Chip ID     : 96
Version     : 0
Temperature :  24.5 C
Pressure :  1000.4088158 hPa
Humidity :  35.9759784189 %
pi@rbpi3b:~ $

Och med det är jag mycket nöjd.

Nu har jag en drivrutinsfil för ’gamla’ sensorn: bme280_77.py
Och en för den nya: bme280_76.py
Och så behåller jag ett original: bme280.py

Nu ska de bägge sensorerna kopplas till samma ’paj’ och så när jag då ’kör’:
python bme280_76.py

python bme280_77.py

Så ska det komma data från bägge.
Men eftersom de är identiska så vet jag ju inte vilken som är vilken – egentligen. Adressen visas ju inte.
Kanske bäst att lägga till det.

Rad 163 i python bme280_77.py får följande tillägg:
print "Adress      :", DEVICE

Då får jag följande:
pi@rbpi3b:~ $ python bme280_77.py
Adress      : 119
Chip ID     : 96
Version     : 0
Temperature :  24.49 C
Pressure :  1000.42837793 hPa
Humidity :  34.9328248026 %
pi@rbpi3b:~ $

Att det ger adress 119 är ok. Det decimalvärdet för det hexadeximala 0x77

Gör samma tillägg i filen: bme280_76.py (rad 162)

Byter sensor och testar:
pi@rbpi3b:~ $ python bme280_76.py
Adress      : 118
Chip ID     : 96
Version     : 0
Temperature :  27.08 C
Pressure :  1000.58680067 hPa
Humidity :  29.6033987487 %
pi@rbpi3b:~ $

Jag är mycket nöjd 😀

De tre raderna ovanför;
Temperature :
Pressure :
Humidity :

Kan jag sedan byta ut mot: ’UTE’ resp. ’INNE’

Först ska jag koppla ’ihop’ dem och se vad de avger för värden.
Jag tycker ju att de ska avge lika värden – om de är på precis samma plats.

Är de olika så har jag två saker att bestämma:
1. Var och hur justerar jag ett värde?
2. Vad ska utgöra norm? En av dem eller den köpta väderstationen?

Börjar med, som skrivet, att koppla ’ihop’ dem:
[Bild: Nya & Gamla BME280 monterade för en första test]
Klart – även det var ju pilligt… (och då är detta bara ’temporärt’…).

Då ska vis se SPÄNNADE!:
Först kontakt:
nisse@nisse-u20:~$ ssh 192.168.0.70 -l pi
pi@192.168.0.70's password: ****************

Inne:
Linux rbpi3b 4.19.66-v7+ #1253 SMP Thu Aug 15 11:49:46 BST
2019 armv7l


The programs included with the Debian GNU/Linux system
are free software;

the exact distribution terms for each program are
described in the

individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to
the extent

permitted by applicable law.
Last login: Sat Jun 12 13:08:51 2021 from 192.168.0.60
pi@rbpi3b:~ $

Nu gäller det…
Börjar med den ena:
python bme280_76.py
Respons:
Adress      : 118
Chip ID     : 96
Version     : 0
Temperature :  24.88 C
Pressure :  1001.1712966 hPa
Humidity :  33.2551679273 %
pi@rbpi3b:~ $

Åsså den andra:
python bme280_77.py
Respons:
Adress      : 119
Chip ID     : 96
Version     : 0
Temperature :  24.88 C
Pressure :  1000.962624 hPa
Humidity :  34.2525903892 %
pi@rbpi3b:~ $

Underbart!
Fungerar vid första försöket 😀
118 är den ’nya’ och
119 är den ’gamla’.

Samma temperatur.
LuftTrycket är godkänt lika
LuftFuktigheten skiljer på någon %

Men som jag nämnt lång tidigare i den här texten (en annan dag) så har den ’gamla’ sensorn 2m kabel och den nya ca 20cm kabel

Det kan vara skillnaden i kabellängd. Jag mätte då upp ca 0,3Ω mer i motstånd för den långa och då såg jag att det gav skillnader – då var det LuftFuktigheten. Ett högre värde för den långa kabeln.
Och det är samma nu.

Det får stå så ett tag och så får jag kolla.
Kvarstår det så får jag in i drivrutinen och ’justera’

’Gamla’ nu 77 (119) med lång kabel.
’Nya’ 76 (118) med kort kabel.

Försöker klura ut ett terminalkommando som kör bägge drivrutinsfilerna ’samtidigt’:

Jag tar och skriver ett /bin/bash-skrip så länge:
Filnamn: BME280_76_77.sh
#! /bin/bash
#
# Visa två pythondrivrutiner relativt samtidigt
#
zenity --info --text="76: /n python bme280_76.py /n
'77:' /n python bme280_7.py" --width_350

… kom på att det blir ju bökigt att köra det där på pajen – måste kanske installera ’zenity’…

Jag testar…

Det tog en förfärlig tid innan jag fick det att fungera men så här gjorde jag, ’inifrån’ ’pajen’:
BME280_76_77.sh
#! /bin/bash

#

# Visa två pythondrivrutiner relativt samtidigt

#

echo "76:"
python bme280_76.py &
sleep 1
echo ""
echo "77:"
python bme280_77.py

Och jag får då ut:
pi@rbpi3b:~ $ ./BME280_76_77.sh
ut:
76:
Adress      : 118
Chip ID     : 96
Version     : 0
Temperature :  24.0 C
Pressure :  1002.00301577 hPa
Humidity :  33.2531830865 %

77:
Adress      : 119
Chip ID     : 96
Version     : 0
Temperature :  24.41 C
Pressure :  1001.97522225 hPa
Humidity :  33.7124195075 %

Skillnaderna minskar mellan mätvärdena (76 (nya) / 77 (gamla)):
Temp: 24.41 – 24.0 = 0.41 °C
Tryck: 1002.00 – 1001.98 = 0.02 hPa
Fukt: 33.71 – 33.25 = 0.46 % RLF

Nu ligger jag på plus 😀

Tänkte som sista åtgärd idag (skapar ingen sql-databas idag) skapa en ’funktion’ som skickar data från pajen till min dator och samlar det i en fil.

Verkar som om jag ska försöka följande upplägg:
1. Ett skript som skapar en fil med data (från sensordrivrutinerna).
2. låta rsync skicka det till min dator.
3. Via sk loop eller med hjälp av cron

Nu är jag klar med /bin/bash-filen (den ’ligger i pajen’):
BME280_76_77_send.sh
#!/bin/bash
#
# Visa två pythondrivrutiner relativt samtidigt och
skicka dem till min PC

#
echo "" >> BME280.txt
date >> BME280.txt
echo "76:" >> BME280.txt
python bme280_76.py >> BME280.txt &
sleep 1
echo "" >> BME280.txt
echo "77:" >> BME280.txt
python bme280_77.py >> BME280.txt
sshpass -p "*********" rsync BME280.txt
nisse@192.168.0.60:/home/nisse/Publikt/BME280.txt

I min ’Publika’ katalog läggs då till i filen BME280.txt t.ex.:

lör 12 jun 2021 22:14:18 CEST
76:
Adress      : 118
Chip ID     : 96
Version     : 0
Temperature :  23.77 C
Pressure :  1003.37042292 hPa
Humidity :  33.0986383245 %

77:
Adress      : 119
Chip ID     : 96
Version     : 0
Temperature :  24.18 C
Pressure :  1003.42758482 hPa
Humidity :  33.5783365039 %

Nu ska jag fixa till så att filen körs ca var 10 minut…

crontab -u pi -e
Lade till följande rad i: /tmp/crontab.rrtCIc/crontab
10**** /home/pi/BME280_76_77_send.sh

får inte igång ’cron’…? Ändrade till ovan.
******************************************************************

210613:
Jag vill alltså att klimatinformation skickas per automatik var 5 minut (hade 10 tidigare).
I: terminalen för: pi@rbpi3b:~ $
Skriver jag:
cronjob -e
för att redigera det jobb jag lade in i går.
Ändrade från:
10 * * * * /home/pi/BME280_76_77_send.sh
till:
*/5 * * * * /home/pi/BME280_76_77_send.sh

Fil: /tmp/crontab.SR4hor/crontab

Svar: crontab: installing new crontab

Hur drar man igång det där nu då?

Körde: crontab -e igen
och [Ctrl]+[X]
Får då filnamnet: /tmp/crontab.WoY5Wb/crontab
[Enter]
Respons:
crontab: installing new crontab

’Tittar i’: /tmp
dir /tmp/*

Där finns ingen: crontab.WoY5Wb/crontab
???

Men: crontab -l visar:
# Edit this file to introduce tasks to be run by cron.
...
# m h  dom mon dow   command
*/5 * * * * /home/pi/BME280_76_77_send.sh

Var är den filen?

Skapade katalogen: /home/pi/crontab

Och sparar cron-filen dit:
/home/pi/crontab/crontab.LI06TJ/crontab
Gick inte…

Skapade katalogen: /home/pi/crontab/crontab.LI06TJ

Nu gick det att spara filen men svaret blev:
No modification made

Har uppdaterat & uppgraderat, försöker igen:
crontab -e
Fil: /tmp/crontab.xQ1Kn8/crontab
Respons:
crontab: installing new crontab

Som test, lade jag till raden – ovanför ’min’:
* * * * * env > /tmp/env.output
Fil: /tmp/crontab.UKSUeN/crontab
Respons:
crontab: installing new crontab

’Den’ skapades…
Vanlig: env
Ger:
LC_ALL=sv_SE.UTF-8
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
SSH_CONNECTION=192.168.0.60 43514 192.168.0.70 22
LANG=sv_SE.UTF-8
INFINALITY_FT_CHROMEOS_STYLE_SHARPENING_STRENGTH=0
INFINALITY_FT_AUTOHINT_INCREASE_GLYPH_HEIGHTS=true
INFINALITY_FT_CONTRAST=0
NO_AT_BRIDGE=1
INFINALITY_FT_STEM_FITTING_STRENGTH=25
INFINALITY_FT_GLOBAL_EMBOLDEN_X_VALUE=0
XDG_SESSION_ID=c2
USER=pi
INFINALITY_FT_AUTOHINT_SNAP_STEM_HEIGHT=100
INFINALITY_FT_GRAYSCALE_FILTER_STRENGTH=0
INFINALITY_FT_GAMMA_CORRECTION=0 100
PWD=/
HOME=/home/pi
TEXTDOMAIN=Linux-PAM
SSH_CLIENT=192.168.0.60 43514 22
INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH=10
SSH_TTY=/dev/pts/0
INFINALITY_FT_BRIGHTNESS=0
MAIL=/var/mail/pi
TERM=xterm-256color
SHELL=/bin/bash
INFINALITY_FT_USE_VARIOUS_TWEAKS=true
SHLVL=1
INFINALITY_FT_BOLD_EMBOLDEN_Y_VALUE=0
INFINALITY_FT_GLOBAL_EMBOLDEN_Y_VALUE=0
INFINALITY_FT_AUTOHINT_HORIZONTAL_STEM_DARKEN_STRENGTH=10
LOGNAME=pi
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
XDG_RUNTIME_DIR=/run/user/1000
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
INFINALITY_FT_FILTER_PARAMS=11 22 38 22 11
INFINALITY_FT_USE_KNOWN_SETTINGS_ON_SELECTED_FONTS=true
INFINALITY_FT_STEM_SNAPPING_SLIDING_SCALE=40
INFINALITY_FT_STEM_ALIGNMENT_STRENGTH=25
INFINALITY_FT_BOLD_EMBOLDEN_X_VALUE=0
INFINALITY_FT_AUTOHINT_VERTICAL_STEM_DARKEN_STRENGTH=25
INFINALITY_FT_FRINGE_FILTER_STRENGTH=0
_=/usr/bin/env
OLDPWD=/var

I filen:
env.output:
nano /tmp/env.output

HOME=/home/pi
LOGNAME=pi
PATH=/usr/bin:/bin
LANG=sv_SE.UTF-8
SHELL=/bin/sh
PWD=/home/pi

>: Det var skillnad…

Kollade följande:
pi@rbpi3b:~ $ ls -l BME280_76_77_send.sh
-rwxr-xr-x 1 pi pi 372 jun 12 22:16
BME280_76_77_send.sh

pi@rbpi3b:~ $ ls -l /tmp/env.output
-rw-r--r-- 1 pi pi 88 jun 13 11:57 /tmp/env.output
pi@rbpi3b:~ $ stat -c "%U %G" /tmp/env.output
pi pi
pi@rbpi3b:~ $ stat -c "%U %G"
BME280_76_77_send.sh

pi pi

cron borde kunna hantera ’mitt’ skript
Den fixar ju env.output?

Nu verkar det som jag fått fart på det 😀

’cron’ (crontab) är kräset – ’det’ ska ha statiska sökvägar till ALLT i ett skript så jag fick skriva om det:
#!/bin/bash
#
# Visa två pythondrivrutiner relativt samtidigt och
skicka dem till min PC

#
echo "" >> /home/pi/BME280.txt
date >> /home/pi/BME280.txt
echo "76:" >> /home/pi/BME280.txt
python /home/pi/bme280_76.py >>
/home/pi/BME280.txt &

sleep 1
echo "" >> /home/pi/BME280.txt
echo "77:" >> /home/pi/BME280.txt
python /home/pi/bme280_77.py >>
/home/pi/BME280.txt

/usr/local/bin/sshpass -p "*********" /usr/bin/rsync
/home/pi/BME280.txt
nisse@192.168.0.60:/home/nisse/Publikt/BME280.txt


För att få reda på var ett specifikt kommado finns någonstans som t.ex. sshpass & rsync så är kommandot:
which rsync > /usr/bin/rsync
which sshpass > /usr/local/bin/sshpass
väldigt hjälpsamt 🙂

Nu har jag i pajen en crontab-fil:
/tmp/crontab.oytM7q/crontab
Som skickar sensordata var 10min (ska göra)
Testade varje min det blev lite mycket…
Funderar dock på om jag ska gå ned till var 5 min, till en början.

Men först funderar jag på att sätta in ett USB-minne i pajen och ext4-formatterade den (förberedelse för att lägga en sql-databas där).
Jag tänkt att då kan jag testa med att lägga filen som ska skickas där.

Den ska också automonteras – så det blir till att trixa lite i fstab också

Jag gör det hela via terminalen (pi@rbpi3b:~ $)

USB-stickan är insatt:
(jag fick skriva in adminlösenordet i pajen för att stickan skulle monteras…?)
Nåväl, i kommandoraden skriver jag:
sudo fdisk -l <: för att kontrollera vilka enheter som är ’inkopplade’ och också få reda på vad aktuell USB-sticka har för ’beteckning’:

Sista raderna är:
Disk /dev/sda: 14,4 GiB, 15500574720 bytes, 30274560 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x369b443a

Device     Boot
Start      End  Sectors  Size
Id Type

/dev/sda1  *
63 30274271 30274209 14,4G  b W95 FAT32

Innan jag börjar nedan ska den avmonteras.
sudo umount /media/pi/KIOXIA

Jag rensar den:
sudo fdisk /dev/sda
Command (m for help): g [Enter] <: skapar et gpt sk partitionstabell
Command (m for help): n [Enter] <: Jag vill skapa en ny partition
Partition number (1-128, default 1): [Enter] <: jag vill bara ha en
First sector (2048-30274526, default 2048): [Enter] Jag vill ha det från början
Last sector, +sectors or +size{K,M,G,T,P} (2048-30274526,
default 30274526):
[Enter] Jag vill fylla hela.
Created a new partition 1 of type 'Linux filesystem' and of
size 14,4 GiB.


Command (m for help): p <: kollar att det ser rätt ut
Disk /dev/sda: 14,4 GiB, 15500574720 bytes, 30274560 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 3D7E5E6B-A606-4BC0-B51C-74B380F1CD6C

Device Start      End  Sectors  Size Type
/dev/sda1   2048 30274526 30272479 14,4G Linux filesystem

Command (m for help): w <: för att skriva den nya partitionen till enheten.
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

Kollar med:
sudo fdisk -l
Sista raderna:
Disk /dev/sda: 14,4 GiB, 15500574720 bytes, 30274560 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 24793CB4-6C8F-4EDB-92D8-E6975130DB4F

Device Start      End  Sectors  Size Type
/dev/sda1   2048 30274526 30272479 14,4G Linux filesystem

Nu ska den få ett filformat och jag har bestämt mig för; ext4
sudo mkfs.ext4 /dev/sda1
mke2fs 1.43.4 (31-Jan-2017)
Skapar ett filsystem med 3784059 4 k-block och 946560
inoder

Filsystems-UUID: b24800d9-fb36-4d9e-9ab6-7f9e12013db7
Superblockkopior lagrade på block:
    32768, 98304, 163840, 229376,
294912, 819200, 884736, 1605632, 2654208


Allokerar grupptabeller: klar
Skriver inodstabeller: klar
Skapar journal (16384 block): klar
Skriver superblock och bokföringsinformation för filsystemet: klar

Skapar en monteringsplats:
sudo mkdir /media/usb_db
(kom senare på att detta innebar att enheten endast blev tillgänglig för root – så då fick jag ändrat på det:
sudo chown pi:pi usb_db)
Monterar den nyformatterade USB-stickan:
sudo mount /dev/sda1 /media/usb_db

Jag vill att den ska monteras automatiskt vid uppstart:
För det vill jag ha ’PARTUUID’
sudo blkid
Resultat:
/dev/mmcblk0: PTUUID="000bae8b" PTTYPE="dos"
/dev/mmcblk0p1: LABEL="RECOVERY" UUID="2751-AF73"
TYPE="vfat" PARTUUID="000bae8b-01"

/dev/mmcblk0p5: LABEL="SETTINGS"
UUID="b00403c1-70f5-4adf-b26c-dda3a9268192" TYPE="ext4"
PARTUUID="000bae8b-05"

/dev/mmcblk0p6: LABEL="boot" UUID="01A8-6209"
TYPE="vfat" PARTUUID="000bae8b-06"

/dev/mmcblk0p7: LABEL="root"
UUID="9f6848b0-d848-4f37-8804-72347f60acad" TYPE="ext4"
PARTUUID="000bae8b-07"

/dev/sda1: UUID="b24800d9-fb36-4d9e-9ab6-7f9e12013db7"
TYPE="ext4" PARTUUID="7ddde570-29ce-45ea-a97d-ece22e52424b

Och här hittar jag det alldeles sist:
PARTUUID="7ddde570-29ce-45ea-a97d-ece22e52424b

Nu ska vi redigera fstab
sudo nano /etc/fstab
Innehåller fn:
proc /proc proc defaults 0       0
/dev/mmcblk0p6 /boot vfat defaults 0       2
/dev/mmcblk0p7 / ext4    defaults,noatime 0       1
# a swapfile is not a swap partition, no line here
#   use  dphys-swapfile swap[on|off]  for that
//192.168.0.25/ALLA /media/nisse/NASalla    cifs
vers=1.0,username=nisse,password=*********,iocharset=utf8,file_mode=0777,dir_mode=0777,nofail 0       0

Jag lägger till – eller inte – här dök osäkerheten upp.
Jag installerar gnome-disks (Diskar) i stället.
sudo apt-get update
sudo apt-get install gnome-disk-utility

Via VNCklienten så har jag ju, sedan tidigare, tillgång till ’pajens’ sk desktop (skrivbord).
Via det så startar jag:
Applikationsmenyn > Tillbehör > Diskar
Här ser jag två enheter:
SD-kortläsare: SC16G
16 GB-enhet KIOXIA TransMemory

Det är den sista som jag vill ha autostartat
Jag noterar: /dev/sda1
Och: ext4
samt: /media/usb_db
Klickar på knappen med kugghjul:
Väljer: ’Redigera Monteringsinställningar
Flaggor för automatisk montering >: AV
Bockar i: ’Montera vid uppstart’.
Ändrar i rutan för monteringspunkt till: /media/usb_db
(där står nu: /mnt/usb-KIOXIA_TransMemory_0022CFF6BD70C4612897C7D0-0:0-part1):/media/usb_db
Ändrar filsystem från: auto till: ext4
Klickar på knappen [OK]
Autentiserar för att lägga till informationen i fstab

Kollar i fstab:
Där står nu:
proc /proc proc defaults 0       0
/dev/mmcblk0p6 /boot vfat defaults 0       2
/dev/mmcblk0p7 / ext4    defaults,noatime 0       1
# a swapfile is not a swap partition, no line here
#   use  dphys-swapfile swap[on|off]  for that
//192.168.0.25/ALLA /media/nisse/NASalla    cifs vers=1.0,username=nisse,password=*********,iocharset=utf8,file_mode=0777,dir_mode=0777,nofail    0       0
/dev/disk/by-id/usb-KIOXIA_TransMemory_0022CFF6BD70C4612897C7D0-0:0-part1
/media/usb_db ext4 nosuid,nodev,nofail,x-gvfs-show 0 0

Tycker det såg OK ut.

Nu lägger jag sensorfilen, BME280.txt, på USB-eneheten:
Va f-n jag har inte rättighet till den…
sudo pcmanfm
Ändrade ägare:grupp från root:root till pi:pi
Hmm… Det visar sig inte i gränssnittet…
Får kolla via kommandoraden
Den står som pi:pi

Ser om jag kan kopiera filen – igen
>: No problems 🙂

Nu ska jag ’bara’ ändra i skriptet så att det uppdaterar och skickar den nu nyligen kopierade sensorfilen istället.
Sökvägen till ny placeringen är: /media/usb_db/BME280.txt

I min skriptfil (BME280_76_77_send.sh) ser det nu ut såhär:
#!/bin/bash
#
# Visa två pythondrivrutiner relativt samtidigt och skicka dem till min PC
#
echo "" >> /home/pi/BME280.txt
date >> /home/pi/BME280.txt
echo "76:" >> /home/pi/BME280.txt
python /home/pi/bme280_76.py >> /home/pi/BME280.txt &
sleep 1
echo "" >> /home/pi/BME280.txt
echo "77:" >> /home/pi/BME280.txt
python /home/pi/bme280_77.py >> /home/pi/BME280.txt
/usr/local/bin/sshpass -p "ngn111ngn" /usr/bin/rsync /home/pi/BME280.txt
nisse@192.168.0.60:/home/nisse/Publikt/BME280.txt

Ändrar det till:
#!/bin/bash
#
# Visa två pythondrivrutiner relativt samtidigt och skicka dem till min PC
#
echo "" >> /media/usb_db/BME280.txt
date >> /media/usb_db/BME280.txt
echo "76:" >> /media/usb_db/BME280.txt
python /home/pi/bme280_76.py >> /media/usb_db/BME280.txt &
sleep 1
echo "" >> /media/usb_db/BME280.txt
echo "77:" >> /media/usb_db/BME280.txt
python /home/pi/bme280_77.py >> /media/usb_db/BME280.txt
/usr/local/bin/sshpass -p "ngn111ngn" /usr/bin/rsync /media/usb_db/BME280.txt nisse@192.168.0.60:/home/nisse/Publikt/BME280.txt

Byter nu namn på den ’gamla’
/home/pi/BME280.txt > /home/pi/BME280.txt.old

Noterar att senaste överföringen skedde:
sön 13 jun 2021 20:50:01 CEST

Intressant å se om det kommer någon nästa:
Den kom:
sön 13 jun 2021 21:00:01 CEST
😀

Var 10 minut 😀

I morgon ska jag försöka få till att det här även fungerar efter att ’pajen’ varit avstängd och startar upp igen. <: fixat

210614:
Har fixat så att vncserver startar automatiskt om ’pajen’ startar om. Visserligen får jag ett litet felmeddelandefönster men det verkar inte vara värre än att jag kan klicka bort det – så länge…

Försvenskade lite utdata i python-skripten.
Något blev fel…
Python-skripten gillade inte: °
Så det fick jag ta bort.

Så här ser utdata ut ’nu’:
mån 14 jun 2021 21:30:01 CEST
76:
Adress      : 118
Chip ID     : 96
Version     : 0
Temperatur :  23.74 C
Lufttryck :  1003.93188403 hPa
Luftfuktighet :  43.3799511341 % RLF

77:
Adress      : 119
Chip ID     : 96
Version     : 0
Temperatur :  24.09 C
Lufttryck :  1004.01999823 hPa
Luftfuktighet :  42.5196211151 % RLF

Det är ff skillnader dem emellan. Jag har dem precis bredvid varandra.
Men 76 har 20cm kabel,
och 77 har 2m kabel

Skillnader (77-76):
Temperatur: 24.09 – 23.74 = 0.35 °C
Lufttryck: 1004.02 – 1003.93 = 0.09 hPa
Luftfuktighet: 42.52 – 43.38 = -0.86 % RLF

Kan inte bestämma mig för om detta ska ses som väldigt marginella skillnader?
Den digitala jämförelseapparaten visar:
Temperatur: 25 °C (skillnad ca +1 °C)
Lufttryck: 1003 hPa (skillnad ca -1 hPa)
Luftfuktighet: 41 % RLF (skillnad ca +2 % RLF
Den analoga sprittermomentern visar: 24 °C (skillnad ca 0,09 °C)

210615:
Nu ska jag bör jag ’bygga’ hållaren till utomhussensorn.
[Bild: Plankan]
Plankan som ska utgöra ’ämnet’ till utomhushållaren till utomhussensorn.
[Bild: Uppritat]
Uppritat och klart för sågning.

[Bild: Tillsågat]
Tillsågat.

[Bild: Tänkt utseende]
Tänkt utseende.
Och så ska det sitta en vit välventilerad EL-dosa uppepå.

[Bild: Borrat hål i plattorna]
Borrat hål för kabelgenomföring i plattorna.
Träbitarna th ska bilda en stomme och i denna finns gott om plats för kabel och kommande sammanfogning av kablar.

[Bild: Förberett för montering]
Förberett för montering.
Har karvat hål i tre sidor.
Där ska jag limma på myggnät.

[Bild: Myggnätet på plats]
Myggnätet på plats.

[Bild: Limmat kontakterna som nu håller upp sensor BME280 (ute)]
Limmat kontakterna som nu håller upp sensor BME280 (ute).

[Bild: Genomföring av kablar]
Genomföring av kablar.

[Bild: Ventileringen på plats]
Ventileringen på plats.

[Bild: Förberett för lödning.]
Förberett för lödning.
Den lilla svarta pilen pekar på hur jag monterat för första lödningen.

[Bild: Isolering]
Isolerar lödningarna.
För säkerhets skull har jag också ’bäddat in’ lödningarna i smältlim och så EL-tejp på det.

[Bild: Isolering]
Ordentligt isolerat.

[Bild: Snart klar]
Bara locket kvar;
A. 3 sidor med myggnät.
B. Den pyttelilla BME280-sensorn
C. Hållaren. Jag har gjort den så här för att den ska komma ut en bit från väggen.

[Bild: Utesensorn på plats]
Utesensorn på plats;
A. Den vita dosan innehåller ute-sensorn-BME280
B. Kabel in till vardagsrummet och en kopplingsdosa där som kommer att innehålla innomhussnesorn (BME280). Vilket sedan är kopplat viader till RaspBerry Pi 3B+ (eller om man su kansk sak uttrycka sig tvärtom…?)
C. ’Kontrollsensorn’. Fast den ger endast temperatur.

[Bild: Färdig!]
Färdig!;
A. RaspBerry Pi 3B+
B. Inne-sensorn BME280
C. Kabel till ute-BME280-sensorn
D. Sk ’sockerbitar’ som håller en lite grövre metalltråd så att det blev något lättare att löda (det var förfärligt besvärligt att löda det där). Varför satte jag inte bara kabeländarna i sockerbitarna? Mitt val av dimension (tunna) på kabel gjorde ett sådant alternativ väldigt besvärligt och osäkert.
E. USB-minne 16GB. Ska husera en sql-databas. Fn sparas här den sk loggfilen* som håller koll på att sensorerna fungerar och vad de ger för basvärden.
*som via ’cron’ skickas till en publik katalog på min Linux Ubuntu 20.04 PC.
F. Nätverkskabel. Kat6, partvinnad. Kontakt: RJ45.
G. Ström, via mini USB.
H. Här uppe sitter ett microSD om 16GB och innehåller operativsystemet Raspberrian OS.

[Bild: Helt Färdig!]
Färdig!;

Det gick på första försöket 😀

Hade ’konstruktionen’ schematiskt upplagd i huvudet. Givetvis en risk – men det gick. Bara ett par små tankemissar som gick lätt att fixa till.

15:50 kom de första klimatdata. En från utsidan och en inne.

Såg i den ’loggen’ att jag stängde av ’pajen’ 10:00 så det tog ca 5 timmar att fixa… (har räknat bort lunchen).

Ska ta å ändra i ’loggen’ så att jag ser vilken sensor det är som är ute och vilken det är som är inne.

Så här ser det ut ’nu’:
tis 15 jun 2021 19:20:01 CEST
Inne (76):
Adress      : 118
Chip ID     : 96
Version     : 0
Temperatur :  24.56 C
Lufttryck :  1010.45379643 hPa
Luftfuktighet :  36.0606313174 % RLF

Ute (77):
Adress      : 119
Chip ID     : 96
Version     : 0
Temperatur :  17.59 C
Lufttryck :  1010.42748777 hPa
Luftfuktighet :  44.1456549602 % RLF

Klimatdata loggas va 10:e minut.

Nu återstår:
1. Skapa en sql-databas på ’pajen’.
2. Se till att ’rätt’ klimatdata sparas.
3. ’Flytta’ sql-databasen till USB-minnet.
4. Skapa en motsvarande sql-databas* på min domän. Troligtvis kommer jag att skapa en sk subdomän så adressen till den dynamiska HTML-sidan blir: kh.ngn.nu
5. Skapa den dynamiska HTML-sidan som ska innehålla grafer (diagram).
6. Även skapa en sql-databas på min PC där jag ska logga det jag kallar hälsodata. Som sedan (automatiskt) skickas till sql-datbasen på min domän.
*den ska också innehålla en tabell med mina sk hälsodata (punkt 6).

Kommenterade bort raderna:
Adress      : 118
Chip ID     : 96
Version     : 0
Och:
Adress      : 119
Chip ID     : 96
Version     : 0

Nu ser ’utskriften’ ut såhär:
tis 15 jun 2021 20:20:01 CEST
Inne (76):
Temperatur : 24.55 C
Lufttryck : 1010.77055167 hPa
Luftfuktighet : 35.9608329195 % RLF

Ute (77):
Temperatur : 16.88 C
Lufttryck : 1010.81625812 hPa
Luftfuktighet : 48.9250485902 % RLF