Entwicklung: Temperatur Funk Sensor


  • Moin, ich habe ihn zum laufen gebracht, habe allerdings das Problem das er relativ schnell die beiden AA-Batterien leer saugt... Ich nutze eine Mischung aus Nathans DHT22 und dem BMP085 Sketch... Evtl liegt da auch mein Fehler... Will ich nicht ausschliessen. Aktuell halten die Batterien aber nur ca. 9 Tage...


    Angeschlossen habe ich noch ein Step Up Modul was konstant 3.3 Volt liefert...


    Gruß,
    toberkel


    Bei der Lebensdauer der Batterien ist sicherlich wichtig, ob du einen Watchdog im Sketch nutzt und der Sensor zwischendurch schläft und natürlich auch, wie oft du dir Daten von ihm senden lässt. Ich habe seit Anfang Februar einen DHT22 mit nem Pololu U1V11F3 StepUp Converter und 3 AA Batterien im Test und die Spannung lag am letzten Wochenende noch bei 3,48v - was mich hoffen lässt da der Pololu die Batterien bis auf 0,3v entladen kann... Btw. - Magst du deinen Sketch nicht mit uns teilen?


    Mit dem Send_BMP085_Watchdog Sketch von meigrafd bekomme ich den BMP180 nicht zum laufen, dann fungiert der TinyTX sogar als eine Art 'Störsender' und behindert die Kommunikation aller anderen 10 TinyTx Sender mit dem TinyTX Receiver.


    An einem Arduino Micro und auf meinem selbstgebauten HAT, über GPIO direkt am Pi angeschlossen, funktioniert der BMP180 hingegen tadellos. Ich werde das wohl auch so lassen, denn der Luftdruck ist im Pi Gehäuse der Gleiche wie irgendwo anders im Haus auch und so habe ich auch gleich eine Temperaturüberwachung mit im Gehäuse verbaut - unabhängig von der CPU Temperatur die man ja noch zusätzlich auslesen kann :)

  • Bei der Lebensdauer der Batterien ist sicherlich wichtig, ob du einen Watchdog im Sketch nutzt und der Sensor zwischendurch schläft und natürlich auch, wie oft du dir Daten von ihm senden lässt. Ich habe seit Anfang Februar einen DHT22 mit nem Pololu U1V11F3 StepUp Converter und 3 AA Batterien im Test und die Spannung lag am letzten Wochenende noch bei 3,48v - was mich hoffen lässt da der Pololu die Batterien bis auf 0,3v entladen kann... Btw. - Magst du deinen Sketch nicht mit uns teilen?


    Mit dem Send_BMP085_Watchdog Sketch von meigrafd bekomme ich den BMP180 nicht zum laufen, dann fungiert der TinyTX sogar als eine Art 'Störsender' und behindert die Kommunikation aller anderen 10 TinyTx Sender mit dem TinyTX Receiver.


    An einem Arduino Micro und auf meinem selbstgebauten HAT, über GPIO direkt am Pi angeschlossen, funktioniert der BMP180 hingegen tadellos. Ich werde das wohl auch so lassen, denn der Luftdruck ist im Pi Gehäuse der Gleiche wie irgendwo anders im Haus auch und so habe ich auch gleich eine Temperaturüberwachung mit im Gehäuse verbaut - unabhängig von der CPU Temperatur die man ja noch zusätzlich auslesen kann :)


    Hey doing,


    naja, ich benutze die Sketches von Nathan... Da wird der DHT abgefragt und dann 60 Sekunden schlafen geschickt... Ich habe die beiden Sketches vom DHT22 und BMP085, zugegeben stümperhaft, zusammen gewürfelt. Es funktioniert ja auch tadellos... Ich bekomme die Werte für Temperatur, Luftfeuchte, Spannung und Druck. Alles kein Thema.


    Nur sobald der BMP180 UND der DHT22 an einem TinyTX3 stecken, habe ich das Problem das die Batterien schnell leergesaugt werden. Die TinyTX die nur den DHT haben, laufen seit Wochen ohne Probleme...


    Anbei mal der Sketch den ich benutze, evtl. springt dir ja das Problem ins Auge ;)



    Gruß,
    toberkel

  • toberkel


    Laut deinem Sketch nutzt du den ganzen Stromsparkram (AVR Sleep Mode + Watchdog) nicht und sendest zudem alle 60 Sekunden Daten an deinen Empfänger - natürlich verbrätst du damit ganz schon viel Strom. Die Frage ist, ob du die Werte wirklich so oft benötigst - hier kannst du bestimmt ne Menge einsparen, wenn du zb auf 5 Minuten gehst (Alleine das würde aus - laut deiner Aussage - 9 Tagen mit 2 AA Batterien schon bestimmt 40 Tage machen). Auch verstehe ich nicht ganz, wieso du einen DHT22 und einen BMP180 zusammen am TinyTX3 hast. Traust du der Temperatur des DHT22 nicht? Oder willst du die Burschen vergleichen? :)


    Ob man die Supply Voltage hinter einem StepUp Converter wirklich braucht frage ich mich auch gerade... die wird immer 3.3v sein - bis die Batterien tot sind.

    Edited once, last by doing ().


  • toberkel


    Laut deinem Sketch nutzt du den ganzen Stromsparkram (AVR Sleep Mode + Watchdog) nicht und sendest zudem alle 60 Sekunden Daten an deinen Empfänger - natürlich verbrätst du damit ganz schon viel Strom. Die Frage ist, ob du die Werte wirklich so oft benötigst - hier kannst du bestimmt ne Menge einsparen, wenn du zb auf 5 Minuten gehst (Alleine das würde aus - laut deiner Aussage - 9 Tagen mit 2 AA Batterien schon bestimmt 40 Tage machen). Auch verstehe ich nicht ganz, wieso du einen DHT22 und einen BMP180 zusammen am TinyTX3 hast. Traust du der Temperatur des DHT22 nicht? Oder willst du die Burschen vergleichen? :)


    Ob man die Supply Voltage hinter einem StepUp Converter wirklich braucht frage ich mich auch gerade... die wird immer 3.3v sein - bis die Batterien tot sind.


    Naja, vom BMP interessiert mich nur der Luftdruck, die Temperatur nicht. Die finde ich zu ungenau. Ich habe hier noch einen SHT75... Der zeigt exakt das gleiche wie 3 DHTs... Der BMP zeigt 4 Grad zuviel...


    Was ich nicht verstehe: Wieso laufen mehrere TinyTX mit nur dem DHT seit Wochen ohne Probleme aber mit DHT und BMP nur max 9 Tage? Das erschliesst sich mir nicht. Klar, das übertragen der Spannung kann ich mir schenken, stimmt schon.


  • Was ich nicht verstehe: Wieso laufen mehrere TinyTX mit nur dem DHT seit Wochen ohne Probleme aber mit DHT und BMP nur max 9 Tage? Das erschliesst sich mir nicht. Klar, das übertragen der Spannung kann ich mir schenken, stimmt schon.


    Zum Stromverbrauch des BMP180 kann ich leider keine Aussage treffen. Sicher kannst du mit dem Hochsetzen des Sendeintervalls und mit der AVR Stromsparfunktion (AVR Sleep Mode - sleep.h) noch etwas reißen - aber wieviel Tage weiß ich nicht.


    Aber wieso nicht so, wie ich es gelöst habe? Pack den BMP180 direkt an den Pi, den du ja eh nutzt, und probiere mal zum Vergleich mit den Sketches von Nathan den Send_DHT22_Watchdog Sketch von meigrafd. Ich war selbst erstaunt wie wenig Strom die TinyTX3 mit DHT22 in 4 Monaten gebraucht haben.

  • Zum Stromverbrauch des BMP180 kann ich leider keine Aussage treffen. Sicher kannst du mit dem Hochsetzen des Sendeintervalls und mit der AVR Stromsparfunktion (AVR Sleep Mode - sleep.h) noch etwas reißen - aber wieviel Tage weiß ich nicht.


    Aber wieso nicht so, wie ich es gelöst habe? Pack den BMP180 direkt an den Pi, den du ja eh nutzt, und probiere mal zum Vergleich mit den Sketches von Nathan den Send_DHT22_Watchdog Sketch von meigrafd. Ich war selbst erstaunt wie wenig Strom die TinyTX3 mit DHT22 in 4 Monaten gebraucht haben.


    So könnte ich das natürlich auch noch probieren, aber ich würde trotzdem gerne wissen wo das Problem liegt... Sonst kann ich nicht ruhig schlafen :D

  • Guten Abend .. Ich wollte mich auch nochmal zu Wort melden .. es gibt da eine Library:
    ATTiny85-ATTiny84-BMP085-Arduino-Library-FastAltitude und
    und hier wird behauptet, dass mit der Library der BMP180 ohne Veränderungen laufen würde.
    Neben der Höhenmessung (FastAltitude) wofür die Lib wohl ursprünglich erschaffen wurde,
    gibt es auch noch die folgenden Funktionen:


    Code
    int readPressure(); //returns current pressure in Pa
    float readTemperature(); //returns current temperature in C
    int readTemperature10C(); //returns current temperature in tenths of C
    float readAltitude(); //left for compatibility with old library, returns altitude in m
    int readAltitudemm(); //returns current altitude in mm, calibrated for your local SLP
    int readAltitudeSTDmm(); //returns current altitude in mm, fixed for SSLP
    int16_t readAltitudeSTDdm(); //returns current altitude in dm, fixed for SSLP, for -3km to 3km range
    uint16_t readAltitudeSTDdm2(); //returns current altitude in mm, fixed for SSLP, for 0.5km to 6km range


    Okay, soweit so gut.. damit das Ganze läuft braucht man zusätzlich noch die TinyWireM oder TinyWireS Library und
    muss (soweit ich das mitbekommen hab) ein bestimmtes Setting für den Tiny84 setzen. Es scheint nicht so schwer zu sein,
    aber irgendwie habe ich ein Brett vorm Kopf :D


    Ist irgendjemand schon weiter?

  • In der nackten Arduino-IDE (auch 1.6.5) gibt es keinen ATtiny. Vermutlich hast Du den damellis-Core nachinstalliert, z.B. wie in http://highlowtech.org/?p=1695 beschrieben.


    In der pins_arduino.* vom damellis-Core sind die Pin-Zuordnungen so gezeichnet:



    [font="Courier New"]// ATMEL ATTINY84 / ARDUINO
    //[/font]
    [font="Courier New"]// +-\/-+[/font]
    [font="Courier New"]// VCC 1| |14 GND[/font]
    [font="Courier New"]// (D 10) PB0 2| |13 AREF (D 0)[/font]
    [font="Courier New"]// (D 9) PB1 3| |12 PA1 (D 1)[/font]
    [font="Courier New"]// PB3 4| |11 PA2 (D 2)[/font]
    [font="Courier New"]// PWM INT0 (D 8) PB2 5| |10 PA3 (D 3)[/font]
    [font="Courier New"]// PWM (D 7) PA7 6| |9 PA4 (D 4)[/font]
    [font="Courier New"]// PWM (D 6) PA6 7| |8 PA5 (D 5) PWM[/font]
    [font="Courier New"]// +----+[/font]



    Im arduino-tiny-Core (http://arduino-tiny.googlecode.com) sind sie hingegen so zugeordnet:


    [font="Courier New"]// ATMEL ATTINY84 / ARDUINO[/font]
    [font="Courier New"]//[/font]
    [font="Courier New"]// +-\/-+[/font]
    [font="Courier New"]// VCC 1| |14 GND[/font]
    [font="Courier New"]// (D 0) PB0 2| |13 AREF (D 10)[/font]
    [font="Courier New"]// (D 1) PB1 3| |12 PA1 (D 9)[/font]
    [font="Courier New"]// PB3 4| |11 PA2 (D 8)[/font]
    [font="Courier New"]// PWM INT0 (D 2) PB2 5| |10 PA3 (D 7)[/font]
    [font="Courier New"]// PWM (D 3) PA7 6| |9 PA4 (D 6)[/font]
    [font="Courier New"]// PWM (D 4) PA6 7| |8 PA5 (D 5) PWM[/font]
    [font="Courier New"]// +----+


    [font="Arial"][font="Sans-serif"]Warum es diese Unterschiede gibt, welche zuerst da war usw., weiss ich nicht.[/font][/font][font="Sans-serif"]
    Eigentlich finde ich die damellis-Zuordnung besser, aber hier im Thread und bei Nathan Chantrell wird offenbar immer die arduino-tiny-Zuordnung benutzt.[/font]


    [/font]

  • Danke für die Antwort.


    Leider wird hier " http://www.forum-raspberrypi.d…ebetriebene-funk-sensoren " auch PB0 auf D10 verwendet. Nur nicht bei Receiver_Pi.ino wieder genau anders herum.


    Was ist denn das sinnvollste?


    Andere Verkabelung..Pin.h ändern oder das INO abändern?


    Dann steht in der RFM12B.h noch dieses...
    #elif defined(__AVR_ATtiny84__) || defined(__AVR_ATtiny44__)
    #define RFM_IRQ 2
    #define SS_DDR DDRB
    #define SS_PORT PORTB
    #define SS_BIT 1
    #define SPI_SS 1 // PB1, pin 3
    #define SPI_MISO 4 // PA6, pin 7
    #define SPI_MOSI 5 // PA5, pin 8
    #define SPI_SCK 6 // PA4, pin 9
    Das ergibt im scetch
    /*
    +-\/-+
    VCC 1| |14 GND
    (D0) PB0 2| |13 AREF (D10)
    SS (D1) PB1 3| |12 PA1 (D9)
    RESET 4| |11 PA2 (D8)
    INT0 PWM (D2) PB2 5| |10 PA3 (D7)
    PWM (D3) PA7 6| |9 PA4 (D6) SCK
    MISO PWM (D4) PA6 7| |8 PA5 (D5) PWM MOSI
    +----+
    */
    sollte aber bestimmt so sein: http://d1gsvnjtkwr6dd.cloudfro…C-ATTINY84A-PU_02_LRG.jpg
    Wiso sind Miso und Mosi vertauscht?

  • Hallo,


    ich habe mal eine Frage in die Runde der TinyTx Nutzer.
    Welche Erfahrungen habt Ihr bei Euren TinyTx in Bezug auf die Reichweite mit und ohne Booster gemacht?


    Ich frage, da ich meine TinyTx 4 mit Booster aus der 2. Sammelbestellung in Betrieb genommen habe (Reichweite wenige m bei Sichtkontakt) und diese im Vergleich zu den selbstgelöteten TinyTx 3 ohne Booster entsprechend ps915 http://www.forum-raspberrypi.d…tuer-ueberwachung-tinytx3 (Reichweite viele m ohne Sichtkontakt durch Wände) eine sehr schlechte Reichweite haben.


    Ich wollte nun zum Gegentest mal den Booster überbrücken...

    Edited once, last by giovanne ().

  • Äh - der Booster ist dazu da die Batterien bis zum bitteren Ende auszusaugen und nicht dazu die Reichweite zu erhöhen...


    Ich komme mit meinen TinyTX3 und den TinyTX4 aus der Sammelbestellung durch mehrere Wände und eine Stahlbeton Decke, Unterschiede kann ich da nicht feststellen. Es kommt aber auch auf den verwendeten Draht / die Antenne an, da habe ich diverse Erfahrungen machen können.

  • Danke für Deine Antwort.
    Das der Booster nicht für die Reichweite sondern die Batterieausnutzung ist, ist mir klar.
    Da er aber - soweit ich verstanden habe - denn beteiligten Komponenten statt der z.B. 4.5V Eingangsspannung nur 3.3xV bereitstellt, dachte ich das könnte sich auf die Reichweite auswirken. Aber evtl. muss ich bzgl. des Boosters nochmal im Thread lesen ;)


    Und wenn es da keine Unterschiede geben sollte, werde ich mal suchen wo bei mir das Problem liegen könnte.


    Edit: Anderer Draht als die beiligenden der Sammelbestellung hat schon mal was gebracht. Werde weiter beobachten...

  • Wenn ich die entsprechende Stelle zum TinyTX4 Booster noch richtig in Erinnerung habe, dann kann der verbaute LTC3525 kein StepDown sondern nur StepUp. Das würde bedeuten, dass dein TinyTX4 auch mehr als 3.3v bekommt, wenn deine Batterien noch frisch sind - die verbauten Komponenten können das ja Problemlos ab. Erst wenn du weniger als 3.3v von den Batterien bekommst greift der Booster ein.


    Ich betreibe meine TinyTX3 mit dem Pololu U1V11F3 der auch StepDown kann, also kontinuierlich 3.3v liefert. Trotzdem kann ich keine Unterschiede in der Reichweite zum TinyTX4 mit Booster erkennen. Testweise läuft bei mir auch ein TinyTX4 mit No-Booster Jumper und dem Pololu U1V11F3 - mal sehen wer länger durchhält :)


    Die besten Erfahrungen habe ich mit diesem Antennendraht gemacht.


  • meigrafd,


    kannst Du mal beschreiben/skizzieren wie es in etwa aus schauen müsste, wenn ich auf dem Pi den Transceiver Sketch habe und dieser soll zu einem bestimmten TinyTx einen Wert senden. (SeriellConsole z.b. an ID15 , Wert 999 => 15:999 ????)
    Der Transceiver sollte es bereits unterstützen, oder?


    Der TinyTx soll dementsprechend als Receiver fungieren, den Wert entgegennehmen und zwei Pins fur 3sek. auf HIGH setzen. Einer für LED und einer betätigt ein Relais fürs Garagentor.
    Insb. mit dem Wert entgegen nehmen, wie sollte das ausschauen?
    (mit dem *TinyTx_Water_RX* von nathall ist der Transceiver direkt ja nicht kompatibel...?)


    Danke für Tipps