Der Master-Branch ist als Entwicklungsbranch gedacht, die Verwendung, auch einzelner Dateien, ist auf eigenes Risiko. Die Releases sind jedoch gründlich getetstet. Doch auch hier gilt: ich übernehme keine Garantie dass die Software frei von Fehlern ist.
"TIny NOde" : Batteriebetriebener Funksensor oder Funk-Aktor. Dies ist die zweite Generation des TiNo mit zahlreichen Verbesserungen. Hauptsächlich hat der TiNo2 mehr Flash Speicher, und der Stromverbrauch wurde weiter reduziert. Die Antenne ist jetzt auf der leiterplatte untergebracht. TiNo2 basiert auf der neuen Generation von AVR Prozessoren, zunaechst dem ATmega4808. Die Kernpunkte des TiNo2 sind (immer noch)
- geringst mögliche Kosten (Stückkosten unter 5 EUR, Stand 2020, ca. 8 EUR Stand 2023)
- kleinst möglicher Form Faktor (Streichholzschachtel)
- geringst möglicher Stromverbrauch, maximale Batterielebensdauer (5 Jahre oder mehr)
- möglichst grosse Reichweite
- moeglichst einfachster Nachbau
- Plug&Play Firmware
Als Sensor kann man so ziemlich alles verwenden, ob Temperatur, Luftfeuchtigkeit, Luftdruck, Höhenmesser, Lichtintensität, UV Index, Anwesenheitssensoren, Magnetschalter, Erschütterungs-Sensoren, Feuchtigkeitsmesser usw also im Prinzip alle Arten von Sensoren. Voraussetzung ist dass der Sensor bis mindestens 2.2V Betriebsspannung spezifiziert ist. Sonst kann die Batterieladung nicht voll ausgenutzt werden.
Die Leiterplatten passen zu im Handel erhältlichen PVC Gehäusen, welche in etwa die Grösse einer Streichholzschachtel haben. Die verwendeten Komponenten sind am Markt eingeführt und jederzeit erhältlich.
- 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
- HTU21D
- SHT21, SHT20, SHT25
- SHT30, SHT31, SHT35
- SHTC3
- SHT40, SHT41, SHT43, SHT45
- BME280 Luftdruck Sensor
- DS18B20 (beliebter Temperatursensor, da auch in wasserdichten Versionen verfügbar)
- MAX31865 (PT100 Temperatur Sensor)
- AM312 PIR Bewegungssensor
- MAX6675, MAX31855K, MAX31856, ADS1120 ADC IC's für Thermoelemente
- LDR als Helligkeitssensor
- I2C oder SPI basierte Sensoren leicht konfigurierbar
- genug digitale GPIOs
- genug analoge GPIOs
- RFM69HCW Modul oder RFM95 (LoRa) Modul
- bidirektionale Kommunikation
- ISM Band (Europa: 433MHz oder 868MHz, US:315MHz oder 915Mhz)
- 2GFSK Modulation oder LoRa
- Frequenz abstimmbar
- Frequenzkorrektur kalibrierbar
- Sendeleistung -18 dBm (typ.) bis 20dBm (max)
- Link Budget bis 125dB
- Empfindlichkeit -105 dBm typ.
- Reichweite t.b.d., ist aber sehr weit!
- HF Kommunikation verschlüsselt
- FEC (Forward Error Correction) und Interleaver
- Microchip ATMega4808-au
- auch für Micropchip AVR64DD28 and AVR64DD28 MCU's
- 48kByte Flash (64kByte Flash on AVR64DD)
- Ruhestrom < 2uA
- Ruhestrom ca. 1uA mit TPL5110 (extern)
- 1 MHz oder 4 MHz Takt Sender erlaubt Betriebsspannung bis 1.8V
- 16 MHz Takt Empfänger
- I2C oder SPI für Sensoren
- 11 weitere GPIO's
- Serielles Interface zum Programmieren und Konfigurieren
- Open Source Software C++
- Software kann einfach individuell angepasst werden
- Programmierung mit Arduino IDE, und/oder
- Programmierung mit PLatformIO
- Konfiguration der Nodes über serielles Interface (FTDI Adapter)
- Konfigurations- und Kalibrierdaten im EEPROM gespeichert (verschlüsselt)
- Flashen
- mit UPDI Programmer (z.B. ATMEL ICE) oder
- seriell mit FTDI Adapter über Bootloader
- bis zu 4 externe Interrupts (z.B. 4 Tasten) konfigurierbar
- Interface zu IOBroker
Die gesamte Installation geht in 3 Schritten und benötigt nur einige Minuten. MegaCoreX ist der Kernel den man für den Atmega4808 braucht und der leider nicht in der Arduino IDE mitgeliefert wird.
- Installiere MegaCoreX
- Installiere TiNo2 Bibliotheken
- Installiere Sensor Bibliotheken
- Arduino IDE starten.
File->Preferences
öffnen.- Unter
Additional Boards Manager URL's
diesen Link eintragen:https://mcudude.github.io/MegaCoreX/package_MCUdude_MegaCoreX_index.json
- Einträge mit einem Komma ( , ) trennen, wenn es mehr als einen URL Eintrag gibt.
- Boards Manager öffnen: Auf Tools > Board > Boards Manager... Klicken.
- Jetzt werden die vorhandenen Platformen heruntergeladen. Warte bis der Vorgang beendet ist.
- Suche den Eintrag MegaCoreX und klicke drauf.
- Klick Install.
- Nachdem der Installationsvorgang beendet ist, schliesse das Boards Manager Fenster.
- Öffne die Seite https://github.com/mcudude/megacorex
- Im
Code
Menu klicke aufDownload ZIP
- Extrahiere die ZIP Datei.
- Bewege den extrahierten Ordner zu "~/Documents/Arduino/hardware". Wenn der "hardware" Ordner noch nicht existiert, erstelle ihn.
- Öffne die Arduino IDE, im Boards Menu erscheint eine neue Kathegorie "MegaCoreX". Dies zeigt die erfolgreiche Installation an.
- Öffne die Arduino IDE.
- Öffne das File > Preferences Menu.
- Unter
Additional Boards Manager URL's
diesen Link eintragen:https://raw.githubusercontent.com/nurazur/TiNo2/master/package_nurazur_TiNo2_index.json
- Einträge mit einem Komma ( , ) trennen, wenn es mehr als einen URL Eintrag gibt.
- Boards Manager öffnen: Auf Tools > Board > Boards Manager... Klicken.
- Jetzt werden die vorhandenen Platformen heruntergeladen. Warte bis der Vorgang beendet ist.
- Suche den Eintrag nurazur TiNo2 Boards.
- Klicke Install.
- Nachdem der Installationsvorgang beendet ist, schliesse das Boards Manager Fenster.
Kopiere folgende ZIP Dateien in den libraries
Ordner deines Arduino Sketch Verzeichnisses:
BME280
SHTxx
OneWire
DallasTemperature
Wenn ein Thermoelement eingebunden werden soll, muss man die folgenden Bibliotheken ALLE installieren:
ADS1120
MAX6675
Installiere die Bibliotheken mit der Arduino IDE:
sketch -> Include Library -> Add .Zip library
- Installiere PlatformIO IDE mit Visual Studio Code oder Installiere nur die PlatformIO CLI (Command-Line-Interface).
- Auf Windows: füge folgende zwei Pfade zur
path
Variable der Umgebungsvariablen hinzu:
<User>.platformio\penv\Scripts
<User>.platformio\penv\Lib\site-packages
wobei "User" der Pfad zum PLatformIO Installationsordner ist.
- Herunterladen des TiNo2 Bereichs von Github als zip Datei. Kopieren der Ordner
libraries
,sensor
undreceiver
in einen Projektordner freier Wahl. - Wenn Verwendung von VS Code mit PlatformIO IDE, neues Projekt eröffnen, navigiere zum
sensor
oderreceiver
Ordner. Arbeite weiter von hier aus mit der PlatformIO. - Bei Verwendung der PlatformIO CLI vom Command-Prompt, wie folgt vorgehen:
a. Konsole öffnen (Windows: cmd.exe)
b. Zumsensor
oderreceiver
Ordner des TiNo2 Projekts wechseln mitcd <path>
.
c. Zum Kompilierenpio run
eingeben. Deratmelmegaavr
Kernel wird installiert falls noch nicht auf dem PC vorhanden. Alle vom Projekt benoetigten Bibliotheken werden automatisch heruntergeladen und installiert. Dies ist einer der grossen Vorteile gegenüber der Arduino IDE.
d. Um einen Sketch auf den TiNo2 zu übertragen, das Kommandopio run -t upload
eingeben.
Falls ein anderer Port benutzt wird als derjenige, der in derplatform.ini
voreingestellt ist, Option-upload-port <port>
zum Kommando hinzufuegen.
e. Die PLatformIO Dokumentation konsultieren um dieplatformio.ini
Konfigurationsdatei zu personalisieren.
Kommando pio run -e fuses_bootloader -t fuses
in der Konsole eingeben. Wie das in VS Code funktioniert, weiß ich nicht.
Kommando pio run -e fuses_bootloader -t fuses
in der Konsole eingeben. Wer Platformio vor dem 20.Februar2024 installiert hat, beachtet bitte diesen Bug: platformio/platform-atmelmegaavr#67