TiNo - batteriebetriebener Funksensor (Weiterentwicklung)





  • Was ist der TiNo?


    TiNo oder "Tiny Node" ist die logische und konsequente Weiterentwicklung der TinyTX/TinyRX Boards aus diesem Thread.

    Der Tino ist zum Einen ein drahtloser Sensor, z.B. ein Thermometer / Hygrometer, der periodisch eine Messung macht, und das Ergebnis mit einer kurzen HF Aktivität ("Puls", engl."Burst") drahtlos an den Raspberry Pi sendet. Der bereitet das Signal auf und speichert das Ergebnis in einer Datenbank, die z.B. von einem Cloud Service ausgewertet werden kann. Der TiNo kann auch Ueberwachungsaufgaben übernehmen, wie z.B das Oeffnen einer Türe melden. Weiterhin eignet sich der TiNo auch für abgesicherte Steuerungsaufgaben, wie z.B. Steckdosen, Türoffner, Torantrieb, Thermostatsteuerung...


    Dabei handelt es sich hier nicht um eine DIY Bastelei, sondern eigentlich um ein komplettes Produkt das man leicht selbst nachbauen kann.

    Tiny, heisst "klein, unscheinbar", Node heisst "Knoten" was man im IoT Sprech als "Aussenposten" oder "Teil des Netzwerks" übersetzen könnte.

    'Tiny' ist alles an diesem Funksensor:

    - minimale Kosten (5-6 Euro pro Sensor)

    - minimale Grösse (Streichholzschachtel)

    - minimaler Stromverbrauch


    dabei steckt eine Menge drin:

    - optimierte Batterielebensdauer (5 Jahre oder mehr mit einer Batterie)

    - optimierte Reichweite (reicht auf jeden Fall)

    - optimierte Sicherheit

    - optimierte Einfachheit

    - optimierte Zuverlässigkeit



    Vorgeschichte und Vorwort:

    Die in obigem Thread vorgestellten Boards hatten mich sofort fasziniert,. Leider habe ich von dem Projekt erst erfahren als es die TinyTx4 und TinyRx Boards bereits gab, und es war zu spät auf die Entwicklung Einfluss zu nehmen und mein Fachwissen einzubringen. Nachdem die Entwicklung schliesslich eingeschlafen war, habe ich für mich selbst daran weitergearbeitet, musste dafür erst aber eine Menge ausprobieren und lernen.

    Der erste Ansatz war ein Gehäuse zu definieren und den Funksensor darin unterzubringen.

    Der zweite Ansatz war das Funkprotokoll. Damit war ich von Anfang an unzufrieden. Daten im ASCII Format zu übertragen ist extrem redundant, aber die Redundanz bringt nichts. Man kann die Daten weit effizienter binär übertragen und dabei gezielt Redundanz einbauen, Stichwort "Forward Error Correction" (FEC). Ausserdem ist die Datenübertragung extrem unsicher, also abhörbar und reproduzierbar. Da die Reichweite der Sensoren ziemlich weit gehen kann (200- 300 m im Gelände sind normal) , muss Die Datenübertragung heutzutage verschlüsselt ablaufen.

    Der dritte Ansatz war der Stromverbrauch, sowohl im aktiven Modus als auch im Sleep Modus. Kurz, da war eine Menge Potenzial.

    Der vierte Ansatz war das Layout - möglichst effizient und funktechnisch optimal.

    Der fünfte Ansatz war die Einfachheit und Reproduzierbarkeit.


    Nachbau, Leiterplatten, Software, Firmware...

    das gesamte Projekt ist komplett open source und auf github dokumentiert. Der Nachbau ist einfach: Leiterplatte bestücken, Firmware mit der Arduino iDE flashen, TiNo konfigurieren, Einlegen der Leiterplatte ins Gehäuse und los gehts. Wer sich scheut den Sensor direkt auf die Leiterplatte zu löten, kann sich ein fertiges Modul besorgen und dieses auf die Leiterplatte löten, den Platz dafür habe ich frei gehalten.



    Features

    Allgemein

    - Spannung von ca. 1.8V bis 3.6V

    - Betrieb mit CR2032 Zelle bis zu 5 Jahren Lebensdauer

    - verschiedene Leiterplatten passend zum im Handel erhältlichen Gehäusen



    Radio

    - RFM69CW, RFM69HCW, RFM95 Module (LoRa)

    - bidirektionale Kommunikation

    - ISM Band (Europa: 433MHz oder 868MHz, US:315MHz oder 915Mhz)

    - 2GFSK Modulation

    - Frequenz abstimmbar

    - Frequenzkorrektur kalibrierbar

    - Sendeleistung von -18 dBm bis 20dBm (max)

    - Link Budget bis 120dB

    - Empfindlichkeit -105 dBm typ.

    - Reichweite t.b.d., ist aber sehr weit!

    - HF Kommunikation verschlüsselt

    - FEC (Forward Error Correction)

    - Interleaver


    Basisband

    - Atmel (Microchip) ATMega328p-au im TQFP

    - 32kByte Flash

    - Ruhestrom < 2uA mit externem Quarz

    - Ruhestrom ca. 4uA mit internem RC Oszillator

    - 1 MHz Takt Sender erlaubt Betriebsspannung bis 1.8V

    - 8 MHz Takt Empfänger

    - I2C für Sensoren

    - mindestens 4 weitere GPIO


    Sensoren

    - HTU21D

    - SHT21, SHT20, SHT25

    - SHT30, SHT31, SHT35

    - I2C Bus basierte Sensoren leicht konfigurierbar

    - 4 digitale GPIOs


    System / Software

    - Open Source Software C++

    - Software kann einfach individuell angepasst werden

    - Programmierung mit Arduino IDE

    - Konfiguration der Nodes über serielles Interface (FTDI Adapter)

    - Konfigurations- und Kalibrierdaten im EEPROM gespeichert.

    - EEPROM verschlüsselt

    - Flashen

    - mit ISP Adapter oder

    - seriell mit FTDI Adapter über Bootloader

    - bis zu 4 externe Interrupts (z.B. 4 Tasten) konfigurierbar

  • so schön gemacht! :bravo2:


    gefällt mir gut, nur warum kein 6-pin ISP?

    ich sehe zwei 6-polige Stiftleisten, einer wird wohl ISP sein?


    Wenn dem so ist stört mich die Verpolmöglichkeit, ich habe mal ähnliches gemacht aber mit 7 Pins und einen ausgepart Pin2.

    Damit ist er verpolsicher und die Leiteplatte kann von oben oder unten damit bestückt werden, bei meinem Projekt als Pinbuchse durchs Gehäuse auch zum umflashen von aussen.


    Sorry sollte auf keinen Fall Gemecker sein!


    matchbox.jpgMG307.jpg


    Was ist der TiNo?

    Seite nicht gefunden

    Die von dir angeforderte Seite wurde nicht gefunden. Bitte überprüfe die Adresse oder geh zurück auf die Startseite.

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr

  • gefällt mir gut, nur warum kein 6-pin ISP?

    ich sehe zwei 6-polige Stiftleisten, einer wird wohl ISP sein?

    Doch, 6 pin ISP ist drauf, bloed nur dass ich grad kein Foto von der Oberseite habe. Der ISP Adapter ist eine 2x3 Stiftleiste oberhalb des RFM Moduls.

    Die anderen 6-poligen Stiftleisten sind einmal ein FTDI Adapter, gleiches Pin-out wie Arduino Pro-Mini. Die andere 6-polige Stifleiste ist fuer GPIO's.

  • Doch, 6 pin ISP ist drauf

    jetzt sehe ich es auch, zur beiderseitigen Bestückmöglichkeit finde ich SIL mit 7-pins besser, verpolsicher & beiderseits zu loten.

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr

  • Klasse Projekt!

    Großes Lob und Kompliment meinerseits!


    Verbesserungsvorschlag:

    https://github.com/nurazur/TiN…entation.md#leiterplatten

    Hier könnte man noch die Layoutdaten verlinken:
    https://github.com/nurazur/TiNo/tree/master/eagle


    Gedenkst du dir mehr Platinen zu fertigen um wie Neueinsteiger solche bei Bedarf an Forenuser verkaufen zu können?

    Eventuell wären auch Sammelbestellungen von Leiterplatten eine Idee, diese im Forum hier zusammenzusammeln oder aber auch auf der GH Projektseite.


    EDIT:

    Wie auch schon von jar darauf hingewiesen, dein Bild ganz zu Beginn des Threads ist nicht verfügbar.

  • Wenn dem so ist stört mich die Verpolmöglichkeit,

    mich auch! Aber ich wollte keine neue Pinbelegung erfinden. Wichtig ist dass bei Verpolung nix passiert. Hab ich ausprobiert, kann aber auch lästig sein.

    Den ISP braucht man eigentlich ja genau ein mal, um den Bootloader zu flashen. Danach geht alles über den FTDI Adapter, dessen Pinbelegung ist identisch mit Arduino Pro-Mini. Es gibt USB-FTDI Adapter die man direkt draufstecken kann, z.B. diesen.


    Wie auch schon von jar darauf hingewiesen, dein Bild ganz zu Beginn des Threads ist nicht verfügbar.

    Das ist jetzt komisch, weil bei mir wird alles richtig angezeigt, auch vom 2. PC. Beim Editieren allerdings war das Foto ploetzlich weg, ich habe es dann geloescht und wieder eingefügt. Jetzt weiss ich nicht wie ich das reparieren kann. Hat jemand eine Idee?

  • ja ich sehe die auch oder halt nein, das sehe ich immer noch nicht

    Doch, 6 pin ISP ist drauf, bloed nur dass ich grad kein Foto von der Oberseite habe


    Betrieb mit CR2032 Zelle

    was ich nicht sehe ist der CR2032 Zellenhalter, das muss improvisiert werden?

    Ich weiss da auch LiIo Packs passen o.ä. ist es nicht möglich für alle eine Lösung zu finden, aber wenigstens optional Platz für ein CR Zellenhalter auf der Platine wie bei RTC wäre toll gewesen.

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr

  • spät kam es aber es kam :lol:

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr

  • Gedenkst du dir mehr Platinen zu fertigen um wie Neueinsteiger solche bei Bedarf an Forenuser verkaufen zu können?

    Eventuell wären auch Sammelbestellungen von Leiterplatten eine Idee, diese im Forum hier zusammenzusammeln oder aber auch auf der GH Projektseite.

    Ich schulde euch noch eine Antwort auf die Frage von Hofei .


    Ursprünglich hatte ich vor Kits anzubieten:

    a) Leiterplatte aleine

    b) Leiterplatte mit SMD Bauteilen bestückt plus Batteriehalter plus Pinleisten plus Gehäuse

    c) komplett bestückte Leiterplatte plus Gehäuse, getestet mit Bootloader geflasht.


    Da ich in einen kleinen Reflow-Ofen investiert habe, ist das Loeten der Platinen mit SMD Bauteilen für mich kein Problem, es ist halt mit meinen bescheidenen Mitteln momentan ziemlich zeitaufwändig.


    Das Ziel war ein Einkaufspreis für alle Teile von unter 5 Euro, leider bin ich momentan etwas darüber. Bei groesseren Stückzahlen halte ich das Preisziel aber für durchaus erreichbar.


    Jetzt kommts halt darauf an wieviel Interesse besteht, ich bin offen für alles.

  • Ich will nicht immer heimlich tun, deswegen mach ichs unheimlich.

    Ich glaube bei 500 Leiterplatten sollte der Preis im Centbereich liegen, zumindest ist das bei unserem Anbieter so. Vielleicht können wir im Sinne von Vorfinanzierung weiterhelfen, wenn es gewollt ist. Den Rest würden wir in unserem Shop anbieten.


    Edit: Bestückungsschabblone könnte man da auch herbekommen, falls es mit dem Bestücken dann schneller geht.

    Welchen Reflowofen nutzt du und bist du damit zufrieden?

    Wir wollen evtl. auch in die Eigenproduktion für Kleinstserien gehen.

  • Also bei unter einem Euro würd ich sicher mal probeweise 5-10 nehmen. Versand lässt sich bestimmt für 2-3 € machen - stabile Umschläge gibts für 50 Ct. und Porto ist wahrscheinlich mit 85 Ct erledigt, maximal 1,45. Da bleiben auch noch ein paar Cent Trinkgeld für Nurazur.
    Rechnung gibts dann natürlich keine - aber wenn Raspiprojekt das macht, will er sicher auch noch was verdienen und muss Ust. bezahlen, ...


    Wenns sich die Dinger bewähren, könnte es sein, dass ich dutzende einsetze - als Datenlogger und evtl. als Fensterkontakte.

    Einmal editiert, zuletzt von Gnom ()

  • Bidirektionale Datenübertragung. Heisst das, dass der Sensor auch Daten empfangen ung ggf. weiterleiten kann? Oder heisst das, dass er ACK und NAK pakete auswerten kann, falls eine Übertragung nicht geklappt hat? Und dann ggf. Pakete erneut senden kann?

  • Bidirektionale Datenübertragung. Heisst das, dass der Sensor auch Daten empfangen ung ggf. weiterleiten kann?

    ja, so einen Repeater kann man ohne Weiteres verwirklichen. Aber die Reichweite ist so weit dass ich bisher keinen gebraucht habe. Du kannst auch z.B. zwei Raspberries drahtlos miteinander kommunizieren lassen.


    Oder heisst das, dass er ACK und NAK pakete auswerten kann, falls eine Übertragung nicht geklappt hat?

    auch das. Ich verwende z.B einen ACK Mechanismus für mein Garagentor. Die Fernbedienung loese ich bereits unten auf der Strasse aus wo ich das Tor noch nicht sehen kann. Das Tor sendet einen Ack zurück, was auf der Fernbedienung einen kurzen Blip der LED ausloest. Jetzt weiss ich dass das Signal angekommen ist. Wenn kein Blip kommt ist auch kein ACK angekommen


    Und dann ggf. Pakete erneut senden kann?

    Das macht bei meinem Funkprotokoll keinen Sinn. Ein Paket zweimal zu senden ist ja so etwas wie eine Fehlerkorrektur. Bei meinem Protokoll ist eine "Forward Error Correction" (Vorwärts-Fehlerkorrektur) eingebaut. Wenn ein paar bits falsch ankommen, kann der Algorithmus das in der Regel korrigieren. Bitfehler passieren aber im Wesentlichen entweder wenn das Signal bereits sehr schwach, also stark verrauscht ankommt. In dem Moment wo der FEC Algorithmus die Bitfehler nicht mehr korrigieren kann, hilft auch keine Wiederholung mehr. Oder, ein interferirendes Signal stoert die Uebertragung. Dann sind meist mehrere bits hintereinander betroffen. Der Interleaver verstreut die bits so über den Sendepuls dass auch das ausgebügelt werden kann.