Entwicklung: Temperatur Funk Sensor

  • Hallo Zusammen,

    bin gerade dabei meine Sender mit den neuen Watchdog Sketches auszustatten, um die Batterien nicht so oft wechseln zu müssen :thumbs1:

    Bei den DS18B20 Sendern hat alles super geklappt, nur der Reed-Switch will noch nicht so recht. Habe den aktuellen "Send_ReedSwitch_Watchdog.ino" von GitHub genommen und lediglich die SenderID angepasst.

    Am Empfänger kommt aber nur folgendes an: "11 @h~??9?y$?"
    11 stimmt noch, dass ist die SenderID, aber den rest kann ich mir nicht erklären!?
    Außerdem hängt der Sender sich nachdem er das rausgeschickt hat auf und muss erst vom Strom getrennt werden...

    Muss hier noch etwas im Receiver Sketch angepasst werden?

    EDIT:
    - Hat sich erledigt, im Send_ReedSwitch_Watchdog.ino ist die Verschlüsselung standardgemäß aktiviert...

    Vielen Dank vorab

    Grüße

    bigdane

    Einmal editiert, zuletzt von bigdane69 (19. Februar 2015 um 16:42)

  • Habe bisher auch nichts verloren.

    Aber zum Verständnis, wenn ich dies nicht falsch verstehe, dann kann die Übertragung auch bei der original FW des RFM12Pi sozusagen im Klartext erfolgen ohne Binär-Anteil.

    Sender ist auf Klartext umgestellt, der RFM12Pi empfängt einen String ASCII codiert, der im perl wieder zurück konvertiert wird (im Groben):

    Sender:



    Empfänger (RFM12Pi) mit Original FW (z.B. Full*) und konfiguriert auf 433Mhz, ... :

    Code
    ...
      Empfängt ASCII: 35 118 61 52 52 51 52 38 114 48 61 52 48 54 38 114 49 61 54 52 55
      und leitet es über Serial an perl Script
    ...


    Empfänger (perl):

  • Hallo Zusammen,

    könnt Ihr einen guten und günstigen USB ISP Programmer empfehlen, mit dem man den TinyTX4 und -RX4 programmieren kann?

    Ist über den ISP Anschluss des Tinys eigentlich auch ein Zugriff auf die (Software-)Serielle Console möglich fürs Debugging?

    Ich las gerade den von Maigraf verlinkten Artikel (http://blog.stevemarple.co.uk/2012/07/av...using.html) und frage mich nun, ob es für den Pi ein Risiko darstellt, ohne die beschriebene Extra Hardware als Programmer eingesetzt zu werden.
    Ausserdem finde ich es nicht so prickelnd, auf die alte spezial Version von AVRDUDE angewiesen zu sein - das ist doch nach wie vor Stand der Dinge oder?

    Welche Art Kabel verwendet Ihr für das Flashen der Tinys?

    EDIT: Ich habe noch eine Frage bzgl der Stromversorgung. In Eagle messe ich auf dem TinyTX4 Board einen Abstand der VCC Pins von 2,54mm. Ist das korrekt? Ich würde gerne sowas verwenden an dieser Stelle:
    http://www.reichelt.de/RIA-Stecksyste…SET=500&WKID=0&
    Leider haben die schmalsten wohl einen Abstand/Rastermaß von 3,5mm. Vielleicht könnte man vor der Sammelbestellung das Maß der VCC Kontakte noch auf 3,5mm erweitern?

    EDIT2: Es gibt wohl welche mit 2,54 Maß - die sind aber verflucht teuer! Ach ne, die haben zwei Leiter und zwei Plastikhubbel - man bräuchte also vier Löcher. Es bleibt also dabei, es wäre richtig schön, wäre der Abstand auf der Platine ein bisschen größer.

    Danke für die Hilfe!

    Gruß Pfanni

    Einmal editiert, zuletzt von daspfanni2000 (19. Februar 2015 um 21:17)

  • Hat schon jemand mit dem neuen Pi 2 die tinytx per isp geflasht?

    Funktioniert das alte Spezial AVRdude hier (armv7) noch?

    Ich sehe gerade mit mancher Software für armhf gibt es mit dem neuen Pi Probleme?!

    Einmal editiert, zuletzt von daspfanni2000 (19. Februar 2015 um 21:53)

  • Ich bin mit dem 2,54 RM völlig zufrieden da Standard. Das Layout der TinyTX4 schnell noch verändern zu wollen weil du gerne einen anderen Abstand hättest um die von dir gewünschte Anschlußklemme dranbasteln zu können da dir eine mit 2.54 RM zu teuer erscheint finde ich schon etwas dreist...

  • Es war lediglich ein Vorschlag. Wird ja wohl gestattet sein bei einem Open Source Projekt.

    Ich hätte dieses Intention deutlicher machen sollen.

    Bzgl der anderen Fragen: usb isp Programmer, und raspberry Pi 2. Gibt es hier Erfahrung und Empfehlungen?

    Einmal editiert, zuletzt von daspfanni2000 (20. Februar 2015 um 07:36)

  • Ich habe nun folgende Config in die Boards Config geschrieben und den Flashvorgang wiederholt. Einen Bootloader habe ich nicht geflasht. Dieser sollte doch nicht notwendig sein oder?

    atmega328_384_8.name=ATmega328 Optiboot @ 38,400baud w/ 8MHz Int. RC Osc.

    atmega328_384_8.upload.protocol=arduino
    atmega328_384_8.upload.maximum_size=30720
    atmega328_384_8.upload.speed=38400

    atmega328_384_8.bootloader.low_fuses=0xE2
    atmega328_384_8.bootloader.high_fuses=0xDE
    atmega328_384_8.bootloader.extended_fuses=0x05
    atmega328_384_8.bootloader.path=optiboot
    atmega328_384_8.bootloader.file=optiboot_atmega328_384_8.hex
    atmega328_384_8.bootloader.unlock_bits=0x3F
    atmega328_384_8.bootloader.lock_bits=0x0F

    atmega328_384_8.build.mcu=atmega328p
    atmega328_384_8.build.f_cpu=8000000L
    atmega328_384_8.build.core=arduino
    atmega328_384_8.build.variant=standard

    Einmal editiert, zuletzt von Diamond_72 (20. Februar 2015 um 22:29)

  • meigrafd:

    Vielen Dank für deine Python Implementierung TinySensor.py.
    Im Vergleich zu deinem Skript sieht mein aktuelles Python Skript zum Auslesen der seriellen Schnittstelle eher lumpig aus :D

    Daher bin ich gerade dabei auf dein Skript umzusteigen und habe es hierfür meinen Anforderungen entsprechend um die direkte Weiterleitung der Daten an FHEM erweitert.

    Ich habe allerdings ein Problem beim Auslesen der seriellen Schnittstelle:

    Code
    Tiny Sensors with RFM12B. Waiting for Data...
    
    
    Got data: 2 v=3413
    NID:2 VCC:3.41v Voltage:3.41
    Got data: &t=2018
    Error splitting data
    Error: local variable 'sensorData' referenced before assignment

    Mir scheint es, als würde in der While Schleife in der Main Funktion nicht alles aus der seriellen Schnittstelle gelesen werden, sondern erst der Teil bis zu dem "&" und dann der rest separat an die Funktion "processData" geschickt werden.

    Kannst du den Fehler irgendwie nachvollziehen?

    p.s. wenn ich über data = ser.readline() auslese funktioniert es, aber vermute du hattest einen Grund die Zeichen einzeln auszulesen?

    Vielen Dank vorab

    Beste Grüße

    bigdane

    Einmal editiert, zuletzt von bigdane69 (22. Februar 2015 um 18:03)

  • Hi, wenn es funktioniert würde mich Deine fhem Anbindung mal interessieren ;)


  • Hi, wenn es funktioniert würde mich Deine fhem Anbindung mal interessieren ;)

    Das habe ich bisher auch ganz simpel gelöst... :)

    Oben bei den Imports:

    Code
    import urllib

    Und dann in der inserData Funktion:

    Es wird quasi FHEM über die entsprechende URL aufgerufen und via URL Aufruf der Wert von Variablen gesetzt.

    Grüße

    bigdane

  • Danke,
    das ist ja Pi- seitig, oder? Was muss ich auf fhem Seite einrichten? Sorry, bin noch relativ frisch bei fhem ...


  • man kann die Funksender auch recht einfach in FHEM mit der JeeLib einbinden. Der hier entwickelte Empfänger wird als serielle Schnittstelle erkannt und nach Anpassung der JeeLib werden korrekte Werte angezeigt.

    Das habe ich zu Beginn auch versucht. Ist für rein die FHEM Anbindung natürlich die saubere Lösung. Leider war das ganze damals nicht so kompatibel mit den hier entwickelten Sketches auf den Sendern und dem Empfänger.
    Wenn ich mir den Thread im FHEM Forum anschaue sieht es mir auch nach dem RFM2PI Sketch aus...

    Grüße

    Daniel


    Danke,
    das ist ja Pi- seitig, oder? Was muss ich auf fhem Seite einrichten? Sorry, bin noch relativ frisch bei fhem ...

    In der FHEM Config habe ich einfach einen Dummy angelegt:

    Code
    define temp_2 dummy
    attr temp_2 alias tempWohnzimmer
    attr temp_2 room Temps

    Über den URL Aufruf aus dem Python Skript wird der Wert für den Dummy temp_2 gesetzt. Durch das attribut "alias" kannst du dem Dummy dann einen schöneren Namen geben.

    Grüße

    Daniel

    Einmal editiert, zuletzt von bigdane69 (24. Februar 2015 um 21:17)

  • bigdane69 und Kalle0103,

    Danke für Eure Antworten und Hinweise.
    Ich glaube ich würde/werde die Variante mit der URL Richtung FHEM bevorzugen, da ich dadurch etwas flexibler bin und meinen Empfänger/RFM12Pi nicht zwingend an dem Pi haben muss wo auch FHEM drauf läuft. Kann mich somit um das Empfangene weiterhin selber kümmern.
    Aber mal sehen, ich habe derzeit erst mal ein Test- und Spiel-FHEM aufgesetzt, welches auf einem Pi ohne Empfänger läuft...

  • Hi,

    das Empfangs Sketch habe ich so gelassen, ich musste lediglich das Sender Sketch etwas anpassen. Es muss halt in einen JeeLink kompatiblen Container gepackt werden. Dem Empfänger ist es ja egal was er empfängt.

    Gruß Kalle

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!