Bästa varianten för att samla väderdata?
- PHermansson
- EF Sponsor
- Inlägg: 4340
- Blev medlem: 22 december 2004, 00:46:38
- Ort: Särestad Grästorp
- Kontakt:
Bästa varianten för att samla väderdata?
Håller fortfarande på att konstruera min PC-baserade väderstation/loggare, och hittar bara fler & fler möjligheter. Främst gäller det sensorn som jag har svårt att bestämma mig för. Det jag vill mäta i första hand är ljus (LDR, analog) temperatur&luftfuktighet (utomhus, sensor Sensirion SHT11, 2-trådskopplad), lufttryck (sensor MPXA4115, analog), inomhustemperatur (DS18S20).
De varianter jag har kommit på är följande:
-FoxBoard. Linux, Lan & Wlan. Enbart digitala I/O-pinnar. Kan lösas enkelt med en PCF8591 kopplad via I2C-interfacet (http://www.acmesystems.it/?id=10).
-PC18F4550. Kopplas via USB.
-PIC16F628 med one-wire-kod. Enbart digitala I/O-pinnar.http://home.hetnet.nl/~thomas_7/1Wire/1-WireIOPort.html
Kan konverteras till Pic med A/D.
-PIC12F675 med 433MHz-sändare, 18F4550 med 433MHz som mottagare.
Vad tror ni funkar bäst och är lättast/snabbast att få igång?
De varianter jag har kommit på är följande:
-FoxBoard. Linux, Lan & Wlan. Enbart digitala I/O-pinnar. Kan lösas enkelt med en PCF8591 kopplad via I2C-interfacet (http://www.acmesystems.it/?id=10).
-PC18F4550. Kopplas via USB.
-PIC16F628 med one-wire-kod. Enbart digitala I/O-pinnar.http://home.hetnet.nl/~thomas_7/1Wire/1-WireIOPort.html
Kan konverteras till Pic med A/D.
-PIC12F675 med 433MHz-sändare, 18F4550 med 433MHz som mottagare.
Vad tror ni funkar bäst och är lättast/snabbast att få igång?
- PHermansson
- EF Sponsor
- Inlägg: 4340
- Blev medlem: 22 december 2004, 00:46:38
- Ort: Särestad Grästorp
- Kontakt:
Jo 1-wire är trevligt och enkelt, vore också relativt enkelt att bygga ut det befintliga nätet. Men det kräver en kabel till vinden, inte kul!
FoxBoarden känns mest flexibel, enkelt att koppla ut med Wlan (Finns eluttag på vinden när jag tänkt ha den). Men det känns som lite overkill, även fast det ligger en oanvänd FoxBoard här i hyllan.
Ska man ändå dra kabel är 1-wire enklare än USB, så en ren 4550 går bort, likaså den DLP-2232-modul som ligger här och skräpar.
FoxBoarden känns mest flexibel, enkelt att koppla ut med Wlan (Finns eluttag på vinden när jag tänkt ha den). Men det känns som lite overkill, även fast det ligger en oanvänd FoxBoard här i hyllan.
Ska man ändå dra kabel är 1-wire enklare än USB, så en ren 4550 går bort, likaså den DLP-2232-modul som ligger här och skräpar.
Hej P! (Hermansson)
Jag har länge funderat på ett liknande projekt. Har inte byggt något dock, men jag delar gärna med mig av mina tankar.
Jag har tänkt mig att göra det som två enheter.
En utomhusenhet som gör alla mätningar och en inomhusenhet som sparar alla mätdata i en logg. Loggen kan sedan läsas av från en PC.
Hjärtat i utomhusenheten skulle vara en μC t ex en av de PIC:ar du nämnde eller en krets från t ex ATMega, Renesas eller någon annan tillverkare. Välj en familj du vet att du kan programmera. μC:n måste också ha minst en serieport (UART) för att kommunicera med inomhusenheten. Vilka ingångar som behövs beror på valet av sensorer. Men man kan gissa att det behövs ett antal A/D omvandlare. Timer/räknare ingångar kan också vara intressant för att räkna pulser och/eller mäta frekvenser. Eventuell kan ytterligare serieportar (UART:s) komma ifråga beroende på valda sensorer.
Jag är lite trött idag, så jag orkar inte leta efter vad det är för sensorer du tänkt dig. Skulle du kunna länka var och en av dem till någon sida med information om dem? Gärna kompletta datablad om du vet var det finns.
Dina förslag på sensorer:
- Ljus (LDR, analog) Är den linjär? Kolla om en liten bit av en solcell kan funka, jag har sett det i en ljusmätare för foto.
- Temperatur & luftfuktighet (utomhus, sensor Sensirion SHT11, 2-trådskopplad)
- Lufttryck (sensor MPXA4115, analog)
- Inomhustemperatur (DS18S20).
Jag skulle vilja lägga till:
- Vindhastighet och vindriktning.
- Nederbörd/regn.
Min tanke är att man börjar med att bestämma sig för vilka sensorer man ska ha samt hur data ska läses av. μC:n. När man vet hur data ska läsas så kan man göra en lista över nödvändiga funktioner och anslutningar som krävs hos μC:n och med ledning av det gör man det slutliga valet av μC.
Skaffa ett standard labbkort med den valda μC:n och börja bygga alla förstärkare och trimkretsar kring en sensor i taget och testa att det funkar. Dokumentera och gör scheman löpande. (Använde en elektronik CAD t ex Eagle.)
Kommunikationen med inomhusenheten tror jag görs smidigt över SR485. (Använd t ex MAX 485 för nivåomvandling.)
När allt är testat så gå igenom din dokumentation och CAD:a ett nytt schema som är komplett med alla sensorer och μC:n. Ta fram ett nytt kretskort och montera allt från start.
Inomhusenheten har jag inte tänkt lika mycket på. Jag vill dock lagra loggen på ett utbytbart medium som jag kan läsa direkt från PC:n som backupp. (Minneskort för digitalkamera/mobiltelefon eller liknande) Enheten ska kunna läsas direkt via USB, serieport eller nätverk/Ethernet. En ide skulle kunna vara en inbyggd Webbserver.
Men innan inomhusenheten är byggd (om den någonsin blir det) så kan man koppla en kombination av en MAX 232 och en MAX 485 för att omvandla PC:s serieport till en RS485 buss för labb och provkörning.
Puh
Det blev långt det där.
Hoppas att du får några idéer av det jag skrivigt. Jag återkommer med lite mer idéer specifikt för sensorer om ett par dar. 
Jag har länge funderat på ett liknande projekt. Har inte byggt något dock, men jag delar gärna med mig av mina tankar.
Jag har tänkt mig att göra det som två enheter.
En utomhusenhet som gör alla mätningar och en inomhusenhet som sparar alla mätdata i en logg. Loggen kan sedan läsas av från en PC.
Hjärtat i utomhusenheten skulle vara en μC t ex en av de PIC:ar du nämnde eller en krets från t ex ATMega, Renesas eller någon annan tillverkare. Välj en familj du vet att du kan programmera. μC:n måste också ha minst en serieport (UART) för att kommunicera med inomhusenheten. Vilka ingångar som behövs beror på valet av sensorer. Men man kan gissa att det behövs ett antal A/D omvandlare. Timer/räknare ingångar kan också vara intressant för att räkna pulser och/eller mäta frekvenser. Eventuell kan ytterligare serieportar (UART:s) komma ifråga beroende på valda sensorer.
Jag är lite trött idag, så jag orkar inte leta efter vad det är för sensorer du tänkt dig. Skulle du kunna länka var och en av dem till någon sida med information om dem? Gärna kompletta datablad om du vet var det finns.
Dina förslag på sensorer:
- Ljus (LDR, analog) Är den linjär? Kolla om en liten bit av en solcell kan funka, jag har sett det i en ljusmätare för foto.
- Temperatur & luftfuktighet (utomhus, sensor Sensirion SHT11, 2-trådskopplad)
- Lufttryck (sensor MPXA4115, analog)
- Inomhustemperatur (DS18S20).
Jag skulle vilja lägga till:
- Vindhastighet och vindriktning.
- Nederbörd/regn.
Min tanke är att man börjar med att bestämma sig för vilka sensorer man ska ha samt hur data ska läses av. μC:n. När man vet hur data ska läsas så kan man göra en lista över nödvändiga funktioner och anslutningar som krävs hos μC:n och med ledning av det gör man det slutliga valet av μC.
Skaffa ett standard labbkort med den valda μC:n och börja bygga alla förstärkare och trimkretsar kring en sensor i taget och testa att det funkar. Dokumentera och gör scheman löpande. (Använde en elektronik CAD t ex Eagle.)
Kommunikationen med inomhusenheten tror jag görs smidigt över SR485. (Använd t ex MAX 485 för nivåomvandling.)
När allt är testat så gå igenom din dokumentation och CAD:a ett nytt schema som är komplett med alla sensorer och μC:n. Ta fram ett nytt kretskort och montera allt från start.
Inomhusenheten har jag inte tänkt lika mycket på. Jag vill dock lagra loggen på ett utbytbart medium som jag kan läsa direkt från PC:n som backupp. (Minneskort för digitalkamera/mobiltelefon eller liknande) Enheten ska kunna läsas direkt via USB, serieport eller nätverk/Ethernet. En ide skulle kunna vara en inbyggd Webbserver.
Men innan inomhusenheten är byggd (om den någonsin blir det) så kan man koppla en kombination av en MAX 232 och en MAX 485 för att omvandla PC:s serieport till en RS485 buss för labb och provkörning.
Puh

Det blev långt det där.


- PHermansson
- EF Sponsor
- Inlägg: 4340
- Blev medlem: 22 december 2004, 00:46:38
- Ort: Särestad Grästorp
- Kontakt:
Kul att någon håller på med samma sak! 
Har lite info här: http://patrikhermansson.se/?q=node/95
Jo nederbörd och vind är tänkta framtida uppgraderingar. Krångliga rent mekaniskt, så för att det ska bli någonting klart för de ligga på Todo-listan än så länge.
Jag är lite inne på din tanke med en utomhusenhet och en inomhusenhet. För tillfället har jag en dator (med ett usb-anslutet 1-wireinterface) som inomhusenhet, men för att denna inte ska behöva vara på jämt ska 1-wireadapter flyttas till en NSLU2. Som utomhusenhet används en Pic, tror den 16F690 som följde med PicKit2 kan fungera bra. Annars har jag en del i gömmorna. Jag tänker mig att Pic'en agerar som 1-wireenhet, finns en del kod för det. Då slipper man några jobbiga konverteringar på vägen.
En annan lösning vore att använda en 16F628 som i länken ovan för digital I/O och SHT11. Finns tyvärr ingen källkod till det projektet... Det analoga kan man sköta via DS2450 där man ändå kör 1-wire. Kanske inte en optimal lösning, men enkel att komma igång med.

Har lite info här: http://patrikhermansson.se/?q=node/95
Jo nederbörd och vind är tänkta framtida uppgraderingar. Krångliga rent mekaniskt, så för att det ska bli någonting klart för de ligga på Todo-listan än så länge.
Jag är lite inne på din tanke med en utomhusenhet och en inomhusenhet. För tillfället har jag en dator (med ett usb-anslutet 1-wireinterface) som inomhusenhet, men för att denna inte ska behöva vara på jämt ska 1-wireadapter flyttas till en NSLU2. Som utomhusenhet används en Pic, tror den 16F690 som följde med PicKit2 kan fungera bra. Annars har jag en del i gömmorna. Jag tänker mig att Pic'en agerar som 1-wireenhet, finns en del kod för det. Då slipper man några jobbiga konverteringar på vägen.
En annan lösning vore att använda en 16F628 som i länken ovan för digital I/O och SHT11. Finns tyvärr ingen källkod till det projektet... Det analoga kan man sköta via DS2450 där man ändå kör 1-wire. Kanske inte en optimal lösning, men enkel att komma igång med.
- PHermansson
- EF Sponsor
- Inlägg: 4340
- Blev medlem: 22 december 2004, 00:46:38
- Ort: Särestad Grästorp
- Kontakt:
Jag är ganksa säker på att det blir 1-wire som gäller för koppling till PC'n.
Ett alternativen är då en 16F628 enligt länken ovan med en DS2450 för analoga ingångar.
Ett bättre alternativ vore en Pic med A/D. men då får man ha annan kod. och kod för Pic som 1-wire slav är det inte gott om...
mikroPascal: http://www.mikroe.com/forum/viewtopic.p ... 505ccf147d
En liten fundering: En DS2408 kan användas för att styra en HD44780-LCD... Skulle det inte vara möjligt att koppla en SHT11 till den istället??
Ett alternativen är då en 16F628 enligt länken ovan med en DS2450 för analoga ingångar.
Ett bättre alternativ vore en Pic med A/D. men då får man ha annan kod. och kod för Pic som 1-wire slav är det inte gott om...
mikroPascal: http://www.mikroe.com/forum/viewtopic.p ... 505ccf147d
En liten fundering: En DS2408 kan användas för att styra en HD44780-LCD... Skulle det inte vara möjligt att koppla en SHT11 till den istället??
- PHermansson
- EF Sponsor
- Inlägg: 4340
- Blev medlem: 22 december 2004, 00:46:38
- Ort: Särestad Grästorp
- Kontakt:
Pengar, nöjet & funktioner
Precis som de flesta andra projekt här.
-En väderstation med PC-interface är inte billig.
-Det är roligare att göra det själv.
-Man slipper proprietär mjukvara. Har du sett någon färdig PC-kopplad väderstation som levereras med Linuxmjukvara och kan lagra i en MySql-databas? En väderstation med ljussensor? En som kan visa värdena på en LCD som även används till en mp3-spelande NSLU2?

-En väderstation med PC-interface är inte billig.
-Det är roligare att göra det själv.
-Man slipper proprietär mjukvara. Har du sett någon färdig PC-kopplad väderstation som levereras med Linuxmjukvara och kan lagra i en MySql-databas? En väderstation med ljussensor? En som kan visa värdena på en LCD som även används till en mp3-spelande NSLU2?

Hej igen.
För att förtydliga hur långt bort jag är från att starta ett eget väderprojekt, kan jag säja att jag ännu inte ens har börjat lära mig att programmera en modern μC. (Förvisso programmerade jag en i gymnasiet men det var 20år sen och den finns inte kvar idag.) På så sätt är jag väldigt fri i valet av μC.
Fast för något år sen (eller mer) läste jag i Allt om elektronik om Renesas R8C13 och blev så intresserad att jag köpte en Tom Thumb (ett utvärderingskort). Men jag har inte ens lärt mig arbetsmiljön än.
Jag ser att du har en del funderingar/överväganden om kommunikationen. Trådlöst är förvisso väldigt attraktivt mest för frihet i placering, man slipper ledningsdragning Nästan.
För du har ju fortfarande strömförsörjningsbehovet kvar att lösa. Och om man ändå måste dra en ledning för strömförsörjning så kan man lika gärna lägga till ett par trådar för datakommunikation.
Olika kommunikationsalternativ:
Fördelarna med färdiga protokoll är att det redan finns flera färdiga enheter som bara behöver pluggas in. En nackdel kan vara att det kräver mycket programmering som kan vara känslig och svår att få att fungera.
Utan standardiserat protokoll står man ganska ensam, svårt att få hjälp. Men i gengäld är man fri att skapa sin egen kommunikation.
+-9V är mindre störningskänslig och kan överföras över längre avstånd än 0-5V.
När jag skriver att det finns flera färdiga protokoll till serieporten tänker jag främst på saker som t ex: X-on, X-off, X-modem och Z-modem med flera. Men dom löser inte tolkningen av översända data.
Om du redan använder 1-Wire och är bekant med det så tycker jag att du ska fortsätta med det. Fast det lät som om det begränsade ditt val av μC eller tvingade in dig på osäkert vatten när du ska flytta kod till en annan μC än den är skapad för.
Själv lutar jag åt att använda RS485.
EDIT: Kortade ner några sker i tabellen för att det ska se snyggt ut.
För att förtydliga hur långt bort jag är från att starta ett eget väderprojekt, kan jag säja att jag ännu inte ens har börjat lära mig att programmera en modern μC. (Förvisso programmerade jag en i gymnasiet men det var 20år sen och den finns inte kvar idag.) På så sätt är jag väldigt fri i valet av μC.
Fast för något år sen (eller mer) läste jag i Allt om elektronik om Renesas R8C13 och blev så intresserad att jag köpte en Tom Thumb (ett utvärderingskort). Men jag har inte ens lärt mig arbetsmiljön än.
Jag ser att du har en del funderingar/överväganden om kommunikationen. Trådlöst är förvisso väldigt attraktivt mest för frihet i placering, man slipper ledningsdragning Nästan.
För du har ju fortfarande strömförsörjningsbehovet kvar att lösa. Och om man ändå måste dra en ledning för strömförsörjning så kan man lika gärna lägga till ett par trådar för datakommunikation.
Olika kommunikationsalternativ:
Kod: Markera allt
Typ Antal trådar Nivåer Protokoll
I²C 3 (Da, Cl, Gn) 0-5V Standardiserat
RS232 3 (Tx, Rx, Gn) +-12V Stor frihet, finns flera färdiga, men du kan göra egna.
μC 3 (Tx Rx, Gn) 0-5V Stor frihet, finns flera färdiga, men du kan göra egna.
1-Wire 2 (Data, Gnd) 0-5V Standardiserat
RS485 2 (Balanserad) +-9V Samma som RS232 och serieportar generellt.
(Fins det något annat sätt att skriva en "snygg" tabell på forumet?)
Utan standardiserat protokoll står man ganska ensam, svårt att få hjälp. Men i gengäld är man fri att skapa sin egen kommunikation.
+-9V är mindre störningskänslig och kan överföras över längre avstånd än 0-5V.
När jag skriver att det finns flera färdiga protokoll till serieporten tänker jag främst på saker som t ex: X-on, X-off, X-modem och Z-modem med flera. Men dom löser inte tolkningen av översända data.
Om du redan använder 1-Wire och är bekant med det så tycker jag att du ska fortsätta med det. Fast det lät som om det begränsade ditt val av μC eller tvingade in dig på osäkert vatten när du ska flytta kod till en annan μC än den är skapad för.
Själv lutar jag åt att använda RS485.

EDIT: Kortade ner några sker i tabellen för att det ska se snyggt ut.
- PHermansson
- EF Sponsor
- Inlägg: 4340
- Blev medlem: 22 december 2004, 00:46:38
- Ort: Särestad Grästorp
- Kontakt:
Ok, vi har kommit olika långt men det förhindrar ju inte att man utbyter idéer 
Jo jag håller mig till 1-wire, bland annat för att jag redan har ett nät. Dessutom blir det bitvis mkt enkelt. En DS9490R i datorn kopplad till en DS1821 tempsensor utanför fönstret. Installera OWFS och kolla vilket värde /sökväg/owfs/temperature har så har du temperaturer. En rätt byggt 1-wire nät kan vara 50-100 meter långt, man får strömförsörjning på köpet. Man bygger dessutom med fördel ett förgrenat stjärnnät så man slipper dra så mycket kabel.
Att använda en Pic som slav i 1-wire är inte särskilt väldokumenterat, verkar finns licenskrav från Maxim/Dallas för det. Inte bra...
Däremot har jag hittat ett exempel på hur en SHT11 används med DS2406 i ett 1-wire nät. Ingen källkod tillgänglig, men det visar ju att det är möjligt (vilket det också borde vara). Finns inte stöd i OWFS för det än, men det ska nog gå att lösa...
http://shtxx.tripod.com/

Jo jag håller mig till 1-wire, bland annat för att jag redan har ett nät. Dessutom blir det bitvis mkt enkelt. En DS9490R i datorn kopplad till en DS1821 tempsensor utanför fönstret. Installera OWFS och kolla vilket värde /sökväg/owfs/temperature har så har du temperaturer. En rätt byggt 1-wire nät kan vara 50-100 meter långt, man får strömförsörjning på köpet. Man bygger dessutom med fördel ett förgrenat stjärnnät så man slipper dra så mycket kabel.
Att använda en Pic som slav i 1-wire är inte särskilt väldokumenterat, verkar finns licenskrav från Maxim/Dallas för det. Inte bra...
Däremot har jag hittat ett exempel på hur en SHT11 används med DS2406 i ett 1-wire nät. Ingen källkod tillgänglig, men det visar ju att det är möjligt (vilket det också borde vara). Finns inte stöd i OWFS för det än, men det ska nog gå att lösa...
http://shtxx.tripod.com/
Håller med om att om man vill göra det enkelt för sig ska man nog undvika stjärnnät.
Jag impulsköpte just en LCD-kontroller för 1-wire, som jag trodde var DS2408, men som visade sig vara baserad på en PIC16F628-20. Fungerar gör den iaf, i OWFS, så nu ska här lillasysterfräsas ett hus till den...
http://www.louisswart.co.za/1-wire_lcd_100.pdf
http://owfs.org/index.php?page=lcd
Läste en post på OWFS-dev att dom ska försöka få tillstånd från killen bakom http://shtxx.tripod.com/ att inkludera denna lösning i OWFS, och det verkar ju lysande!
Jag impulsköpte just en LCD-kontroller för 1-wire, som jag trodde var DS2408, men som visade sig vara baserad på en PIC16F628-20. Fungerar gör den iaf, i OWFS, så nu ska här lillasysterfräsas ett hus till den...
http://www.louisswart.co.za/1-wire_lcd_100.pdf
http://owfs.org/index.php?page=lcd
Läste en post på OWFS-dev att dom ska försöka få tillstånd från killen bakom http://shtxx.tripod.com/ att inkludera denna lösning i OWFS, och det verkar ju lysande!
@Fransson:
Vad kostar Renesas R8C13 per chip? inköpsställe?
Angående ledningsdragning/protokoll så verkar det som standard cat.5 kabel är billigast per meter, även om den innehåller fler trådar & twist jämfört med andra varianter. Med ett meter pris runt 5 kr/m om jag minns rätt. Har försökt hitta en kabel som har mindre diameter med enklare utförande, men då smiter priset snabbt iväg. Och det blir betydligt sämre kabel.
Som överförings protokoll gillar jag också RS485. Ethernet är ju vassare men lite väl komplicerad för sammanhanget. Så då återstår det RS485, förhoppningsvis med 100 ohm impedansutgång. Förresten så jobbar RS485 med +/-200 mV differens inte per definition 9V, som ger långa stigtider.
En annan variant är open-collector nät. Och eftersom cat.5 kabel har 4 par kan man köra flera protokoll parallellt.
Cat.5 kabel klarar 48V/400mA, iaf om man ska tro PoE IEEE 802.3af specifikationerna. Så energiförsörjnigen bör vara ok likaså. Det som tydligen begränsar effekten är om flera kablar ligger tillsammans i en kabeltrunk. Och RJ45 kontakterna som kan bli överlastade.
Går det att implementera differentiell RS485 med endast en MCU (PIC/AVR) och några passiva komponenter?
Lite "skew" är nog acceptabelt i detta sammanhang.
Tänkte om man kan konstruera ett RS485 nät där enkla noder som styr reläer etc.. implementeras "on the cheap". Och avancerade noder med webbkamera o.dyl. implementeras med externt driver chip.
Vad kostar Renesas R8C13 per chip? inköpsställe?
Angående ledningsdragning/protokoll så verkar det som standard cat.5 kabel är billigast per meter, även om den innehåller fler trådar & twist jämfört med andra varianter. Med ett meter pris runt 5 kr/m om jag minns rätt. Har försökt hitta en kabel som har mindre diameter med enklare utförande, men då smiter priset snabbt iväg. Och det blir betydligt sämre kabel.
Som överförings protokoll gillar jag också RS485. Ethernet är ju vassare men lite väl komplicerad för sammanhanget. Så då återstår det RS485, förhoppningsvis med 100 ohm impedansutgång. Förresten så jobbar RS485 med +/-200 mV differens inte per definition 9V, som ger långa stigtider.
En annan variant är open-collector nät. Och eftersom cat.5 kabel har 4 par kan man köra flera protokoll parallellt.
Cat.5 kabel klarar 48V/400mA, iaf om man ska tro PoE IEEE 802.3af specifikationerna. Så energiförsörjnigen bör vara ok likaså. Det som tydligen begränsar effekten är om flera kablar ligger tillsammans i en kabeltrunk. Och RJ45 kontakterna som kan bli överlastade.
Går det att implementera differentiell RS485 med endast en MCU (PIC/AVR) och några passiva komponenter?
Lite "skew" är nog acceptabelt i detta sammanhang.
Tänkte om man kan konstruera ett RS485 nät där enkla noder som styr reläer etc.. implementeras "on the cheap". Och avancerade noder med webbkamera o.dyl. implementeras med externt driver chip.