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