Vill kunna logga lufttryck, Telldus Live!.

Moderator: Telldus

tronde
Posts: 625
Joined: Fri Mar 17, 2023 9:45 am

Re: Vill kunna logga lufttryck, Telldus Live!.

Post by tronde »

Dette ser jo bra ut.

Litt merkelig at noen finner på å bruke kilopascal som lufttrykk, for det er som du sier hektopascal som meteorologene bruker. Det kommer jo fra tiden med millibar som er samme tallet. I utgangspunktet er jo hektopascal en bastard siden man vanligvis endrer i trinn på 1000, men det er den historiske koplingen til millibar som er bestemmende her.

Når det gjelder kalibrering, kan du jo legge til eller trekke fra en passende verdi selv hvis du ønsker. 2 hPa er ikke store feilen, og lufttrykket kan endre seg en del, selv over korte avstander. Vet du din egen høyde over havnivået?

Du må gjerne skrive litt når du gjør noe med lyssensoren også. Mitt håp er at flere skal ta sjansen og prøve seg, og nå er det bevist at lufttrykkføler er mulig med enkle midler.
Paxman
Posts: 67
Joined: Fri Mar 17, 2023 9:45 am

Re: Vill kunna logga lufttryck, Telldus Live!.

Post by Paxman »

Barometern snurrar fortfarande på bra här nu efter några dagar, och jag börjar få en tjusig graf i Live!.

Skärmavbild 2020-02-02 kl. 16.33.24.JPG
Skärmavbild 2020-02-02 kl. 16.33.24.JPG (79.03 KiB) Viewed 11399 times
Som det är nu uppdateras värdet typ var femte minut (ibland dock längre) vilket kanske är lite onödigt. Jag vet att det är "delay" som styr detta, men i koden för mitt lilla projekt finns det fem poster för "delay". Jag kan inte identifiera vad de olika "delay"-posterna gör, och jag funderar på ifall de inte krockar med varandra. Kanske skulle någon eller några av dem kunna tas bort? Så här ser koden ut, och jag har blåmarkerat "delay"-posterna.




#include "PCR800_TX.h" // Use local library

int PCR800_1_ID = 0x3F; // SensorID for sensor #1. 3F is ID. See table above.

PCR800_TX PCR800_TX(2); // Pin 7 on Arduino to radio transmitter data input pin. Change to suit your needs.


#include <Wire.h> // Här startar första tillägget av BMP280
#include <SPI.h>
#include <Adafruit_BMP280.h>

Adafruit_BMP280 bmp; // use I2C interface

Adafruit_Sensor *bmp_pressure = bmp.getPressureSensor(); // Här slutar första tillägget av BMP280

void setup(void)
{

// Serial.println(F("BMP280 Sensor event test")); // Här börjar andra tillägget av BMP280

if (!bmp.begin(0x76)) {
//Serial.println(F("Could not find a valid BMP280 sensor, check wiring!"));
while (1) delay(10);
}

/* Default settings from datasheet. */
bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, /* Operating Mode. */
Adafruit_BMP280::SAMPLING_X2, /* Temp. oversampling */
Adafruit_BMP280::SAMPLING_X16, /* Pressure oversampling */
Adafruit_BMP280::FILTER_X16, /* Filtering. */
Adafruit_BMP280::STANDBY_MS_500); /* Standby time. */

// bmp_temp->printSensorDetails(); // Här slutar andra tillägget av BMP280

Serial.begin(9600);
delay(300);

PCR800_TX.setChannel(9); // 1 to 15 is valid. Seems not to be implemented by Telldus
}

void loop(void)
{
sensors_event_t temp_event, pressure_event; // Här börjar tredje tillägget av BMP280

bmp_pressure->getEvent(&pressure_event);


delay(1000); // Här slutar tredje tillägget av BMP280



// Code for sensor # 1

PCR800_TX.setSensorID(PCR800_1_ID); // Sensor ID according to the table shown above. Use hex value. (0x3F). 3F is ID.

PCR800_TX.setConvRainrate (2.54); // This set the conversion factor for the Rain rate value. Divide input value by 2.54 will convert an input value of 1 in this code
// to 0.1 mm in Telldus Live!. A conversion factor that is a multiple of 254 will convert to a metric value.
// A conversion factor that is a multiple of 10 will convert to an imperial value. A conversion factor of 1
// will not convert the input value. Do NOT use a factor = 0.


PCR800_TX.setRainRate((pressure_event.pressure) * 10); //* 10 tillaggt för att få decimalen rätt
// Input value for rain rate. 1 = 0.1mm. Max value is 25397 (2539.7 mm) if the conversion factor is 2.54.
// A larger value will result in an imperial value of more than 9999 being transmitted.
// The value in Telldus Live! will roll over and start again at zero. It makes sense to check for setRainRate =< 25397.
// Because of rounding errors the conversion from mm to inches and back is not perfect.
// You can experience some minor errors of +/- 0.1 to +/- 0.2 for this value in Telldus Live!


PCR800_TX.setConvTotalrain (pressure_event.pressure); // This set the conversion factor for the Total rain value. Divide input value by 0.254 will convert an input value of 1 in this code
// to 0.1 mm in Telldus Live!. A conversion factor that is a multiple of 254 will convert to a metric value.
// A conversion factor that is a multiple of 10 will convert to an imperial value. A conversion factor of 1
// will not convert the input value. Do NOT use a factor = 0.



PCR800_TX.setTotalRain(253999); // Input value for total rain. 1 = 0.1mm. Max value is 253999 (25399.9 mm) if the conversion factor is 0.254.
// A larger value will result in an imperial value of more than 999999 being transmitted.
// The value in Telldus Live! will roll over and start agian at zero. It makes sense to check for setTotalRain =< 253999.


PCR800_TX.setBatteryStatus(true); // true = battery level OK, false = battery level low.



PCR800_TX.buildAndSendPacket(); // The compilation of the data packet sent over radio begins.



delay(1000); // Give receiving end some time before next transmission. 5000 = 5000ms = 5 sec.

// End code for sensor # 1



delay(10000); // Time to next transmission cycle. No need to flood the receiver, so increase value after testing.
// 10000 = 10000ms = 10 sec.


} // end loop


Jag har rensat bort en del kommentarer och serialPrint-poster för att koden ska vara lite enklare att överblicka. Jag har också lagt in kommentarer för där BMP280-sensorns kod är insatt i sändarens kod. Detta för att få lite hjälp när det är dags att ge mig på ljussensor-projektet.

Gällande det "felaktiga" tryckvärdet så tror jag inte att jag kommer göra något åt det. Jag befinner mig (enligt Google Earth) på 40-45 meters höjd över havet, och enligt SMHI sjunker trycket 1 hPa var åttonde meter. Om jag räknar rätt så borde min sensor då visa runt 5 hPa lägre än vad en kalibrerad sensor gör vid havsnivån. Med icke modifierad kod visar min barometer ca 2 hPa lägre, dvs 3 hPa för mycket, vilket jag tycker är försumbart. För mig är ju heller inte exakta värdet viktigt, utan variationen över tid och om då hela kurvan ligger några hPa lägre eller högre spelar ingen roll.

När jag fått min utbytes NANO ska jag försöka mig på att få igång ljussensorn också. Tänker att jag startar en ny tråd om det, och då kommer jag lägga in en länk här för de som är intresserade.

Efter det är det research av batteriförsörjning av dessa sensorer som gäller.
tronde
Posts: 625
Joined: Fri Mar 17, 2023 9:45 am

Re: Vill kunna logga lufttryck, Telldus Live!.

Post by tronde »

:wave:

PCR800_TX.setRainRate(((pressure_event.pressure)-5) * 10);

Bør gi deg mer nøyaktig trykk, men som du sier er trend det mest viktige.

***

Den første while (1) delay(10); har å gjøre med initialiseringen av BMP280. Er kun 10 ms.

Den for
Serial.begin(9600);
delay(300);
er vanlig å legge inn for å sikre at serieporten starter opp. Er 300 ms (0,3 sek).


delay(1000); // Här slutar tredje tillägget av BMP280
Er vel for at sensoren skal bli ferdig før den leses på nytt. Har trolig ingen hensikt i praksis i denne koden, men gir slik den står ett sek mer delay enn summen av de to siste.


delay(1000); // Give receiving end some time before next transmission. 5000 = 5000ms = 5 sec.
Er en del av den opprinnelige koden med flere sensorer. Var der for å få et opphold mellom hver sensor. Den kan du slette nå. Hvis den blir stående, gjør det ikke noe galt. Total forsinkelse blir ett sekund mer enn det som bestemmes av neste delay (og det for BMP280).



delay(10000); // Time to next transmission cycle. No need to flood the receiver, so increase value after testing.
// 10000 = 10000ms = 10 sec.
Det er denne som gir syklustiden. Er på 10 sekunder, noe som er kortere tid enn hva du behøver. 30000 gir 30 sek, og 60000 gir 60 sek.


Et alternativ er å slette de to siste delayene, og heller øke denne
delay(1000); // Här slutar tredje tillägget av BMP280

til noe mellom 30000 og 60000.

Bruk av delay er egentlig en litt "stygg" måte å forsinke på, men denne koden skal ikke gjøre noe annet enn å lese en sensor og sende verdien over radio med et bestemt tidsintervall, så da funker det helt fint.


***

De fem minuttene i Live!, kommer av at Telldus ikke lagrer kortere tid i et pro abb. Det er 10 min uten pro. Telldus vil reagere på en hurtigere oppdatering hvis en sensor er brukt som trigger i et event, og vanligvis ser man at sensoren oppdaterer i nettleseren selv om verdien ikke lagres.

***

Hvis du skal spare strøm, er det nok enklest med en pro mini slik som beskrevet her http://www.home-automation-community.co ... l-battery/

Den finnes også i 3V utgave. Ulempen med pro mini er at den ikke har USB-seriekonverter innebygget. Det er nevnt FTDI-adapter. Se på det som et generelt navn for den type adapter. Det er utrolig mye skrot å få tak i når man kjøper noe som er oppgitt å være FTDI, og mange av dem blir også blokkert fordi de er piratutgaver. Det står en del å lese om dette på nettet.

Den foreslåtte CP2102 er et mye bedre valg, selv om den også kan være pirat. Det er fornuftig å finne en som har DTR-pinne. Da slipper man problemet med reset før opplasting av kode. Det som står om 3,3V er viktig, men det er dessverre ikke alltid at signalpinnene på adapteret gir ut 3,3V, selv om chippen mates med det. Når det gjelder kinesere og billig elektronikk, er det nesten like mange muligheter for feil, som antallet kinesere... :shock:
Paxman
Posts: 67
Joined: Fri Mar 17, 2023 9:45 am

Re: Vill kunna logga lufttryck, Telldus Live!.

Post by Paxman »

Nu har det ju gått en tid sedan jag fick igång detta, så jag tänkte avlägga rapport om hur det fungerat.

Det korta svaret är att det fungerat helt perfekt! Jag har inte märkt av några problem med signalkrockar och lufttryckskurvan verkar ha varit helt korrekt, vilket gjort att jag kunnat jämföra hur jag mått med variationerna i lufttrycket.

De senaste veckorna har dock ett litet problem uppstått; sensorn slutar sända utan någon uppenbar anledning. Jag får rycka strömmatningen så den bootar om för att väcka den till liv igen. Jag misstänker att det är något i Nanon som strular, så jag tänkte att jag ska ladda in koden igen. Innan jag gör detta tänkte jag bara hör ifall det finns något annat jag kan göra.

Mvh
Paxman
tronde
Posts: 625
Joined: Fri Mar 17, 2023 9:45 am

Re: Vill kunna logga lufttryck, Telldus Live!.

Post by tronde »

Paxman wrote: Mon Jun 29, 2020 9:20 am Nu har det ju gått en tid sedan jag fick igång detta, så jag tänkte avlägga rapport om hur det fungerat.

Det korta svaret är att det fungerat helt perfekt! Jag har inte märkt av några problem med signalkrockar och lufttryckskurvan verkar ha varit helt korrekt, vilket gjort att jag kunnat jämföra hur jag mått med variationerna i lufttrycket.

De senaste veckorna har dock ett litet problem uppstått; sensorn slutar sända utan någon uppenbar anledning. Jag får rycka strömmatningen så den bootar om för att väcka den till liv igen. Jag misstänker att det är något i Nanon som strular, så jag tänkte att jag ska ladda in koden igen. Innan jag gör detta tänkte jag bara hör ifall det finns något annat jag kan göra.

Mvh
Paxman
Hvis den starter opp korrekt etter strømbrudd, er det ikke noe som tyder på at det hjelper å legge inn ny kode, for den må være OK hvis funksjonen er OK.

Det første jeg mistenker hvis det kun er strømbrudd som skal til for å gjenopprette funksjon, er at du har et problem med strømtilførsel. Hvis spenningen går under et visst nivå, kan nanoen bli ustabil og gå i loop. Dette er kjent som "brownout". Nanoen har så vidt jeg vet ingen funksjon som håndterer dette. Det er vanlig i mikroprossessorkretser å ha en slik funksjon som egentlig ikke er noe annet enn en liten krets som aktiverer reset-funksjonen når spenningen går for lav. Det er en del som er spart bort på hobby-kretsene på grunn av pris og plass.

* Har du prøvd med kun å trykke på reset-knappen på nanoen?

Det er vel ikke lagt inn noen lysdiode i den koden som viser når det sendes, men det bør blinke svakt i dioden for TX hvis jeg husker rett. Er det liv i en av diodene når alt er normalt (ikke den som alltid lyser), og mørkt når det er problemer? Hvis det ikke er er lysdiode som blinker, går det an å aktivere den som er på kortet og koplet til pinne 13.

* Har du prøvd med en annen strømforsyning?

* Mater du strøm via USB, eller en av de andre pinnene?

Det kan være litt tidkrevende å lete etter feil hvis det er slik at strømforsyningen er nær grensen, og man ikke har gode instrumenter å måle med, men det er vanligvis til å finne ut av.
Paxman
Posts: 67
Joined: Fri Mar 17, 2023 9:45 am

Re: Vill kunna logga lufttryck, Telldus Live!.

Post by Paxman »

Hej igen Tronde! Tack för ditt svar. Det dröjde lite att återkomma, men jag ville vänta tills det hängde sig igen...vilket det gjorde inatt.
tronde wrote: Tue Jun 30, 2020 2:59 pmHvis den starter opp korrekt etter strømbrudd, er det ikke noe som tyder på at det hjelper å legge inn ny kode, for den må være OK hvis funksjonen er OK.
Fint, då avvaktar jag med att lägga in koden på nytt.
Det første jeg mistenker hvis det kun er strømbrudd som skal til for å gjenopprette funksjon, er at du har et problem med strømtilførsel. Hvis spenningen går under et visst nivå, kan nanoen bli ustabil og gå i loop. Dette er kjent som "brownout". Nanoen har så vidt jeg vet ingen funksjon som håndterer dette. Det er vanlig i mikroprossessorkretser å ha en slik funksjon som egentlig ikke er noe annet enn en liten krets som aktiverer reset-funksjonen når spenningen går for lav. Det er en del som er spart bort på hobby-kretsene på grunn av pris og plass.

* Har du prøvd med kun å trykke på reset-knappen på nanoen?
Testade det nyss. Röda LED:en blinkade till, men inget mer hände.
Det er vel ikke lagt inn noen lysdiode i den koden som viser når det sendes, men det bør blinke svakt i dioden for TX hvis jeg husker rett. Er det liv i en av diodene når alt er normalt (ikke den som alltid lyser), og mørkt når det er problemer? Hvis det ikke er er lysdiode som blinker, går det an å aktivere den som er på kortet og koplet til pinne 13.
Jag har aldrig noterat ifall dioden blinkar...har dock för mig att jag sett det någon gång. Jag studerade den en stund och vad jag kunde se lyser den med fast grönt sken...fast jag kanske inte väntade tillräckligt länge.
* Har du prøvd med en annen strømforsyning?
* Mater du strøm via USB, eller en av de andre pinnene?
Jag kör med iPhone-laddare till USB på Nanon, som jag precis bytt till en annan för att se vad som händer.
Det kan være litt tidkrevende å lete etter feil hvis det er slik at strømforsyningen er nær grensen, og man ikke har gode instrumenter å måle med, men det er vanligvis til å finne ut av.
Precis...den kan ju fungera flera dagar utan problem. Jag testar med den andra iPhone-laddaren ett tag nu. Fryser Nanon igen får jag testa med en annan USB-kabel för att utesluta den.

Återkommer!
Paxman
Posts: 67
Joined: Fri Mar 17, 2023 9:45 am

Re: Vill kunna logga lufttryck, Telldus Live!.

Post by Paxman »

Redan inatt hängde den sig igen...och nu börjar jag skönja ett mönster; åtminstone vid tre gånger har hängningen inträffat runt kl 05:05 (05:05, 05:06 samt inatt 05:06). Jag tror (med stark betoning på "tror") att detta problem uppstod i samband med att jag satte en Telldus av/på-plugg i samma fördelardosa som iPhone-laddaren som driver Nanon sitter (pluggen hanterar en schemaläggning av omstart av min TimeCapsule i ett försök att minska dess instabilitet gällande wifi och den bryter givetvis endast strömmen till TCn. Pluggen stänger av strömmen kl 05:00 och slår på den 05:05).

Det känns inte helt orimligt att denna plugg och/eller TCns strömbehov vid omstart kan störa strömförsörjningen av Nanon...speciellt om den är känslig för svajig ström. Nu har jag flyttat Nanon till ett annat eluttag i ett annat rum och testar ifall det gör någon skillnad.
Paxman
Posts: 67
Joined: Fri Mar 17, 2023 9:45 am

Re: Vill kunna logga lufttryck, Telldus Live!.

Post by Paxman »

Nu har jag kört med sensorn långt ifrån där jag hade den tidigare, och nu är den väldigt stabil och har inte behövts startas om någon gång.

Nåväl, jag hade stora problem med wifi-nätverket nyligen, och verkligen allt f*ckade upp sig. Till och med robotdammsugaren tappade kontakten med wifi, och vägrade plocka upp den igen när jag fått ordning på nätverket. Har ingen aning om vad det var för generalfel som orsakade alla problem, men nu har jag lyckats få allt att funka igen efter många timmars felsökande och trial and error. Lufttryckssensorn var helt tyst, även efter omstart...så jag testade att läsa in koden igen, och nu funkar den.

Det verkar alltså som att av/på-pluggen jag satte till TimeCapsulen var boven för lufttryckssensorn...bra att veta att Arduino är så känsliga för svajig ström.

Tronde...om du läser detta, finns det något sätt att få kontakt med dig utanför forumet? Det funkar ju dessvärre inte att skicka PM här. :(
tronde
Posts: 625
Joined: Fri Mar 17, 2023 9:45 am

Re: Vill kunna logga lufttryck, Telldus Live!.

Post by tronde »

Kontakt er opprettet med paxman, så da sletter jeg mailadressen.
Paxman
Posts: 67
Joined: Fri Mar 17, 2023 9:45 am

Re: Vill kunna logga lufttryck, Telldus Live!.

Post by Paxman »

Nu har nästa strul uppstått. Tidigare hängde sig sensorn vid ett specifikt värde, i samband med att Tellduspluggen i uttaget bredvid startade om. Detta har inte upprepats sen jag flyttade Nanon till ett uttag i ett annat rum. Det som händer nu är att sensorvärdet hoppar upp till 1139,7 och stannar där. Det verkar hända helt random, alltid det värdet och det krävs omstart för att värdet ska bli normalt igen.

Så här ser det ut:
Skärmavbild 2020-10-19 kl. 18.18.04.JPG
Skärmavbild 2020-10-19 kl. 18.18.04.JPG (68.76 KiB) Viewed 9218 times
Som syns på bilden hängde det sig två gånger den 15:e. Då upptäckte jag det relativt snabbt och kunde starta om, idag hände det mitt på dagen och jag upptäckte det först nu på kvällen. Jag ska lägga in en händelse som varnar mig med en notis när värdet går över 1100, eftersom lufttrycket aldrig är så högt så är risken obefintlig att det kommer falsklarma.

Att värdet alltid är det samma när den hänger sig gör att det känns som att detta är ett mjukvaruproblem, typ som en felkod, och inte hårdvarurelaterat...men vad vet jag... :roll:
tronde
Posts: 625
Joined: Fri Mar 17, 2023 9:45 am

Re: Vill kunna logga lufttryck, Telldus Live!.

Post by tronde »

Hvis det er softwarefeil, er det mest trolig relatert til koden for BMP280. Jeg bruker BMP180 med samme kode for radio, og har aldri opplevd dette.

Det kan være relatert til elektrisk kopling mellom sensor og arduino også. Jeg vet at noen I2C-sensorer kan låse seg på en høy verdi hvis det er problemer der. 1139,7 er utenfor 300...1100 som sensoren er oppgitt å støtte, og kan godt være høyeste verdi den kan sende ut.

BMP280 er ikke 5V-tolerant, så hvis det er problemer med tilpasningen mellom 3,3V som sensoren forventer og 5V som ligger på arduinoens datapinner kan det bli feil.

Du har jo mailadressen min. Kan du ikke sende over noen bilder av hva du har, og hvordan koplingen mellom dem er utført?'

Fikk du fotresten noe liv i lysmåleren? Den siste koden jeg sendte, som jeg ikke hadde testet da, funker OK her.
Paxman
Posts: 67
Joined: Fri Mar 17, 2023 9:45 am

Re: Vill kunna logga lufttryck, Telldus Live!.

Post by Paxman »

Hej igen Tronde,

Detta med att komponenterna inte klarar 5 V är ju rätt irriterande. Som jag nämnt tidigare driver jag Arduinon med en iPhone-laddare till USB-kontakten, då det var enklast. 3,3 V tror jag inte att jag har något som ger, trots att jag har en stor låda med gamla transformatorer som jag samlat på mig genom åren.

Jag mailar över lite bilder inom kort. Ska se hur jag fotar det på bästa sätt. Ljussensorn har jag inte kommit längre med än att jag ser att den skickar värden i Serial monitor...värdena har dock inte dykt upp i Live!.
etompau
Posts: 2405
Joined: Fri Mar 17, 2023 9:45 am
Location: Skåne

Re: Vill kunna logga lufttryck, Telldus Live!.

Post by etompau »

Ang. 3,3 V så finns det många billiga spänningsmoduler som fixar detta.
Ett exempel från en sv. leverantör: https://www.electrokit.com/produkt/dc-d ... -3v-100ma/

En transformator kan inte användas för likspänning.
Paxman
Posts: 67
Joined: Fri Mar 17, 2023 9:45 am

Re: Vill kunna logga lufttryck, Telldus Live!.

Post by Paxman »

etompau wrote: Tue Oct 20, 2020 5:41 pmEn transformator kan inte användas för likspänning.
Fel uttryck av mig...jag menade nätdelar. :oops:
Paxman
Posts: 67
Joined: Fri Mar 17, 2023 9:45 am

Re: Vill kunna logga lufttryck, Telldus Live!.

Post by Paxman »

etompau wrote: Tue Oct 20, 2020 5:41 pmAng. 3,3 V så finns det många billiga spänningsmoduler som fixar detta.
Bidrar dessa men stabilare spänning också? Uppenbarligen hade jag ju problem tidigare med att trycksensorn hängde sig när spänningen stördes till iPhone-laddaren. Vem vet, kanske beror det senaste strulet på samma sak, även om det tar sig andra uttryck och inte längre beror på en Nexabrytare i samma grendosa.
Post Reply