Entwicklung: Temperatur Funk Sensor

  • Hi

    Bin Mal wieder an dem Thema.

    Hab mich zwar inzwischen damit abgefunden die Nodes mit htu21d zu betreiben und auch entsprechende Sensoren bestellt (nachdem ich von nurazur dankenswerterweise 1. einen funktionierenden sketch für rfm69cw und 2. den entscheidenden Tip mit nicht verlöteten pull-up Widerständen bekommen hab)

    Dennoch frage ich mich ob nicht der BMP280 zum laufen zu bringen sein sollte. Was mich gerade extrem wundert ist: Nathan Chantrell bietet hier: https://github.com/nathanchantrel…nyTX_BMP085.ino einen Sketch für den BMP085. Ich sehe nix über softwareserial oder dergleichen. Der BMP085 kann keine Luftfeuchtigkeit aber den Druck müsste man ja auch nur einmal messen - mit anderen Worten: man könnte einen zusätzlichen node mit dem Sensor laufen lassen. Hat das schonmal einer versucht und ... läuft der sketch so auch mit rfm69cw?

    Ist die Auswertung beim BMP085 so viel einfacher wie beim BME280 oder übersehen ich was anderes?

    Ansonsten suche ich immer noch nach einem passenden Gehäuse. Hatte mit dem Gedanke lock-lock Boxen gespielt weil sie billig (ca 2Euro) und dicht sind. Allerdings dürften sie ja eh nicht ganz dicht sein bzw. es müsste ein Loch für den Sensor gemacht werden. Da stellt sich schon die Frage ob das Sinn macht ...

    Hat da jemand was besseres, günstiges gefunden? Ggf. auch ein 3D-Modell? Ich denke am Besten wäre was, was die komplette Elektronik oben beherbergt und da dicht ist, aber nach unten mehr oder weniger offen ist - vielleicht eine einfache Labyrinthdichtung. Gorefilter finde ich a zu teuer (könnte ich ggf. kostenlos aus dem Schrott meines Arbeitgebers bekommen) und b fürchte ich, dass die Messwerte massiv beeinträchtigt werden. Hat da jemand Erfahrung?

    Grüße

  • Hi,

    ich habe schon einige Sensoren mit dem Sender RFM12 am laufen. Mein Empfänger ist auch ein RFM12 der an einem Raspberry hängt. Jetzt habe ich noch einige alte RFM02 bekommen und wollte diese zu meinen bestehenden Sensoren bereiben. Im Verlauf habe ich nur gefunden, dass man den RFM02 auch als Sender beteiben kann. Aber leider habe ich bis dato noch keinen Skeet gefunden der den RFM02 als Sender betreibt. Alle Versuche meinerseits sind gescheitert.

    Hat einer von euch einen lauffähingen Skeet?

    Grüße

  • Wenn du ins Datenblatt des RFM02 schaust dann ist der RFM02 nicht mit dem RFM12B zu vergleichen. Der RFM12B ist ein Transceiver, er kann senden und empfangen. Der RFM02 ist nur ein Sender.

    Abgesehen von den Registern die unterschiedlich sind, ist hauptsächlich die Technik des Senders komplett unterschiedlich:

    Der RFM12B hat (wie seine Nachfolger) einen FIFO mit den zu sendenden Daten. D.h. man schaufelt die Daten zuerst per SPI in den FIFO und löst dann das Senden aus. Der Sender arbeitet den FIFO ab und geht dann grob gesagt in den Idle bzw. Sleep Mode (wenn der Treiber entsprechend geschrieben ist).

    Der RFM02 hingegen hat keinen Fifo, man muss den Sender starten und dann die Daten "live" über den FSK Pin seriell "einspielen", jedenfalls verstehe ich das Datenblatt so. Der RFM02 hat auch einen Modus wo man die Daten über den SPI einspielen kann, das ist aber nicht SPI kompatibel und scheint mir daher sehr kompliziert zu sein.

    Alles in allem glaube ich nicht dass es sich lohnt mit dem RFM02 anzufangen, ausser du hast viel zu viel Zeit.

    Die RFM69CW sind schon ab 1.50 EUR zu haben, dafür gibt es Treiber für Raspberry Pi und Arduino im Netz ohne Probleme. Der RFM02 kostet, weil total veraltet, schon 4 bis 5 Euro pro Stück. Ich bin dabei alle meine RFM12B's mit RFM69CW zu ersetzen, es ist der modernere, billigere und flexiblere Transceiver, pin-kompatibel mit RFM12B aber nicht software-kompatibel.


    Kleine Anmerkung:

    Skeet

    Definitionen von skeet:

    Substantiv
    a shooting sport in which a clay target is thrown from a trap to simulate the flight of a bird.

    Wir sprechen von normalerweise von "Sketch".

  • Danke für die Belehrung ?

    War nur ein Schreibfehler.

    Aber das was ich wissen wollte, ist ob einer ein lauffähiges Sketch für RFM02 hat.

    Ja ich weiß, das es sich um einen Sender handelt. Und ich habe die Sender geschenkt bekommen und wollte damit was sinnvolles machen.

  • Aber das was ich wissen wollte, ist ob einer ein lauffähiges Sketch für RFM02 hat.

    Also Ich habe keinen, wenn einer hier damit Erfahrung hätte, hätter er/sie sich längst gemeldet.

    Aber die Suche nach "Arduino RFM02" hat 17000++ Ergebnisse in weniger als einer halben Sekunde ausgespuckt,

    die am Vielversprechendsten scheint dieser Link von 2010 (!!!!!) zu sein:

    https://myfablab.wordpress.com/2010/06/22/rfm…18-version-0-1/

  • In welche Gehäuse habt ihr den TinyTX4 so gesteckt? Ich will mir demnächst auch ein paar davon bauen. Hat da einer von euch eine Empfehlung? Ich suche eins, in das die Platine, ein Sensor und 'ne Batterie reinpasst. Kann auch ne Knopfzelle oder so sein, müssen keine 2x AAA sein.

    Hat das mal einer alles in dem im Startpost erwähnten 50x50x20 Gehäuse untergebracht? Oder ist das so gedacht, dass man die Stromversorgung extern hat?

    Einmal editiert, zuletzt von Horst-Leopold (30. November 2018 um 00:15)

  • Ich hoffe das ist keine allzu blöde Frage...

    Kann man das TinyTX-Empfangsboard (RFM12B + Attiny84) auch als JeeLink benutzen? Wenn ja, was muss ich dafür machen?

    Hintergrund: ich habe einige TX-29DTH-IT Sensoren, die ich gerne einbinden würde. Ich finde leider keine Bezugsquelle für einen JeeLink-Stick. Da kam mir der Gedanke, dass ich evtl. das TinyTX-Board für diesen Zweck nutzen könnte.

    Danke im Voraus für Eure Tipps!

  • Moin TWry,

    ich weiß nicht ob das Projekt jemals fertig wurde.. Aber auch wenn, der Attiny84 ist dafür zu klein. Er hat nur 8KB Flash und 512 Byte Ram.

    Er kann ja nur Messen und Senden. Lernen muss er noch mit USB umzugehen und das JEELINK-Protokoll. Da platzt er wohl.

    Bezüglich Bezugsquelle: LINK Sool 25 $ kosten.

    Gruss Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Moin Bernd,

    hmm, klingt überzeugend. Schade, dachte dass das klappen könnte... :)

    Bezüglich Bezugsquelle: LINK Sool 25 $ kosten.

    Dort sehe ich leider nur die 434 MHz-Version - und selbst wenn es auch die 868 MHz-Version geben würde sieht es nicht so aus, als ob die nach Europa versenden würden... aber danke für den Tipp :thumbup:

  • ich weiß nicht ob das Projekt jemals fertig wurde..

    Doch, und es ist sogar einwandfrei dokumentiert : Link

    Aber das Projekt wurde inzwischen weiterentwickelt und entscheidend verbessert.

    Aber auch wenn, der Attiny84 ist dafür zu klein.

    Also wenn ich in den Source Code hineinschaue, dann sehe ich Kompilierflags fuer den ATTiny84. Man kann das ja mal unverbindlich mit der Arduino IDE kompilieren und schaun ob es reinpasst.

    Trotzdem würde ich aus den genannten Gründen davon abraten.

    Der JeeLink ist eigentlich nichts anderes als ein Atmega328 + RFM12B / RFM69CW + USB-TTL (3.3V) Adapter. Das kann man sich in 0,nix mit einem Arduino Pro Mini (3V Version!), einem USB-TTL Adapter und einem RFM Modul selbst zusammenloeten.

    Wenn es etwas schicker und/oder professioneller sein soll kann man eine TiNo-LC Platine nehmen. Siehe >>> HIER <<<

    Dazu brauchts noch einen USB-TTL Adapter, z.B. >>>diesen<<<, den kann man direkt auf die TiNo Platine drauf loeten.

    Technisch besser wäre der TiNo-HP, aber der benutzt das RFM69HCW Modul, da müsste man also den HF Treiber anpassen.

  • Hi,

    erst mal danke an meigrafd und die community für die Entwicklung dieser Funksensoren.

    Ich habe, glaube ich, 2015 mit dem ersten Sender/Empfänger Pärchen angefangen.

    Mittlerweile sind 10 Sender im Haus verteilt, und ich plane noch weitere.

    Beim Bauen und Programmieren habe ich viel gelernt und konnte meine leicht angestaubten Elektronikkenntnisse wieder auffrischen und vertiefen.

    Danke dafür.

    Nun aber zu meinem eigentlichen Thema.

    Ich habe vor kurzem für den TinyRX4 einen ioBroker Adapter entwickelt.

    Also falls jemand bereits ioBroker benutzt und den TinyRX4 als Empfänger betreibt wäre ich dankbar wenn derjenige

    meinen Adapter mal testen und mir Feedback geben könnte.

    Die Sensoren werden im ioBroker nach dem ersten Nachrichten-Empfang automatisch mit ihrer Node-Id angelegt.

    Es werden jeweils nur diejenigen Datenpunkte angelegt, die über die msg-Variablen erkannt wurden.

    Zusätzlich werden zugehörige offset Datenpunkte erstellt, damit die Sensorwerte bei Bedarf korrigiert werden können.

    Falls ihr andere Sensoren mit angepassten msg-Variablen verwendet,

    kann ich dies gerne im Adapter umsetzen.

    Die msg-Variablen müssen sich aber von den bereits benutzten unterscheiden.

    Bereits benutzte msg-Variablen:

    d = Entfernung

    h = Luftfeuchte

    he = Höhe

    p = Luftdruck

    r = Reed-Kontakt

    t = Temperatur

    v = Batteriespannung

    Der TinyRX4 Adapter kann entweder aus meinem github repo : https://github.com/bowao/ioBroker.tinyrx4

    oder über die Konsole : npm install iobroker.tinyrx4

    im ioBroker installiert werden.

    Wer nicht weiss wovon ich hier rede und trotzdem weiter gelesen hat:

    ioBroker ist eine open source automation platform, ähnlich wie FHEM, nur bunter. Läuft bei mir auf dem Raspi 3B

    https://www.iobroker.net/

  • super! - ich hatte zufälligerweise einige Anfragen wegen ioBroker für mein TiNo Projekt. Nachdem TiNo ja aus dem TinyTx4 Projekt entstanden ist, passt das genau.

    Eine Frage habe ich zum seriellen Protokoll:

    Soweit ich das erkennen kann, ist das Protokoll wie folgt:

    <nodeID><Leerzeichen><variable1>=<Wert>&<variable2>=<Wert>...\n

    also z.B.:

    17 v=3302&t=2765&h=6550\n

    Bedeutet: Node 17 meldet eine Batteriespannung von 3.302 V, eine Temperatur von 27.65 Grad C und eine Luftfeuchte von 65.5 %

    richtig?

    Für einige Variablen muss man noch die Skalierung festlegen, oder ist man da frei? Z.B. ist die Variable v in [mV] skaliert, und wird im IoBroker Adapter auf [V] umgerechnet.

    Wenn man jetzt Frequenzversatz und RSSI auch loggen moechte, wäre das moeglich? z.B mit den msg Variablen rssi und fo


    Die msg Variable 'r' ist im Moment 0 oder 1 - Ich habe die TiNo Hardware so erweitert dass man bis zu 4 Reed Kontakte erfassen kann, die dann auf 4 bits gemappt werden, also Kontakt eins auf Bit 0, Kontakt 2 auf bit 1 etc. Bei mir ist die Anwendung eher eine Fernbedienung mit 4 oder mehr Tasten, je nach Mapping. Die Variable 'r=4' sagt also dass Kontakt 2 einen Interrupt ausgeloest hat.

    Wäre diese Erweiterung moeglich?

  • Hallo nurazur,

    deine Beschreibung zum seriellen Protokoll vom TinyRX4 ist korrekt:

    <nodeID><Leerzeichen><msg-variable1>=<Wert>&<msg-variable2>=<Wert>...\n

    Die Skalierung der Werte wird bereits im Adapter fest vorgenommen.

    Wenn notwendig könnte ich den Adapter anpassen, dass nur die unskalierten Werte in die Datenpunkte geschrieben werden und über einen zusätzlichen config-Datenpunkt die Skalierung vorgegeben werden kann. Ähnlich wie bei den offset-Datenpunkten.

    Im Prinzip kann ich den Adapter um jede noch nicht vorhandene msg-Variable erweitern.

    Das oben beschriebene Protokoll muss nur beibehalten und die msg-Variable darf bisher noch nicht verwendet worden sein.

    Das wird bei deinem beschriebenen Interrupt jedoch schon schwierig, da nicht zu unterscheiden ist ob sich hinter der Variabel 'r' ein Kontakt mit den Werten 0 und 1 (TinyRX4) oder vier Interrupts bitcodiert (wie beim TiNo) verbergen.

    Schliesslich müssen im ioBroker die passende Anzahl an Datenpunkte angelegt und die empfangenen Daten korrekt ausgewertet werden.

    Ein Workaround wäre sicherlich möglich, z.B. könnte man in der Adapter-Config eine Auswahl für die genutzte Hardware schaffen.

    Beim TinyRX4 würde dann wie bisher bei Erkennung der msg-Variable 'r' ein Datenpunkt mit den erwarteten Werten 0 und 1 angelegt.

    Beim TiNo würden vier Datenpunkte angelegt und der Datenwert würde bitcodiert erwartet.

    Die Frage ist allerdings wie sieht das serielle Protokoll beim TiNo Empfänger genau aus?

    Wenn es zum TinyRX4 identisch ist, ist eine Erweiterung des Adapters möglich.

    Ist es aber unterschiedlich zum TinyRX4 macht es mehr Sinn einem eigenen Adapter für den TiNo zu entwickeln.

  • Der TinyRX4 Adapter kann entweder aus meinem github repo : https://github.com/bowao/ioBroker.tinyrx4

    oder über die Konsole : npm install iobroker.tinyrx4

    im ioBroker installiert werden.

    Moin

    Hab deinen Adapter auf einem frischen iobroker Image per Konsole installiert. Hab keine Ahnung von Linux, daher hier das Ergebnis:

    Scheint aber nicht geklappt zu haben, zumindest sehe ich auf der Adminoberfläche nichts.


    Installation über die URL ergibt gleich einen eindeutigen Fehler:


    Code
    $ ./iobroker url " https://github.com/bowao/ioBroker.tinyrx4" --debug
    install "
    npm install " --production --save --prefix "/opt/iobroker" (System call)
    /bin/sh: 1: Syntax error: Unterminated quoted string
    ERROR: host.ioBroker-Pi Cannot install ": 2
    ERROR: process exited with code 25

    Werde Mal schauen wie weit ich komme und hier berichten. Finde ich übrigens super :)

    Gruß
    LED

  • Hi L.E.D.

    Der npm Installationsbefehl muss im ioBroker Verzeichnis /opt/iobroker/ ausgeführt werden.

    Falls du dann noch Fehler wegen fehlenden rechten bekommst musst du den Befehl als user iobroker ausführen.

    sudo -u iobroker npm install iobroker.tinyrx4

    Die Rechtevergabe vom ioBroker war früher ein wenig creepy, alles unter root, hat sich aber vor einiger Zeit geändert und es gibt jetzt einen eigenen user und eine eigene gruppe iobroker

    Es ist allerdings auch möglich den Adapter im ioBroker direkt von Github zu installieren.

    Im ioBroker auf die Adaper-Seite, dann oben auf die 'github-octocat' (Installieren aus eigener url) drücken,

    den Reiter Beliebig wählen, unter 'URL oder Dateipfad' den github-link eintragen und auf installieren drücken.

    Nach erfolgreicher Installation muss im ioBroker noch eine Instanz hinzugefügt werden.

    Wenn der Adapter Installiert ist, erscheint er auf der Adapter-Seite (am besten oben über den 'Filter' tinyrx4 suchen).

    Wenn du in der bunti-klicki-Ansicht bist musst du noch in der Adapter-Kachel auf den Kreis mit den drei punkten übereinander klicken und dann auf das plus im Kreis (Instanz hinzufügen).

  • Die Frage ist allerdings wie sieht das serielle Protokoll beim TiNo Empfänger genau aus?

    Ich habe mich um diese Frage bisher nur am Rande gekümmert. In anderen Worten, es gibt kein festes Protokoll. Das heisst ich kann mich hier einfach dem TinyRx4 anschliessen, hätte aber einige Ergänzungen vorgeschlagen:

    zusätzliche Variable rssi (Signalstärke)

    zusätzliche Variable fo (Frequenzversatz)

    zusätzliche Variable intr (Interrupt, bitcodiert bis zu 8 Interrupts koennen registriert werden, im Moment sind es max 4)

    zusätzliche Variable lqi (link quality Indicator, Erweiterung für die Zukunft)

    Die andere Frage ist, wie reagiert ioBroker auf Debug-Meldungen? Beim Reset des TiNo werden einige Zeilen zur Information über das serielle Interface gemeldet, z.B. Software Version, Datum, und EEPROM Zustand etc.

    Ich gehe mal davon aus dass ioBroker solche Meldungen ignoriert?

Jetzt mitmachen!

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