TinyLoRa Node

+ + + Update 24.05.2020 – Alternativer Programmieradapter und Erweiterung um die Messung der Helligkeit + + +

Der TinyLoRa Node steht aktuell in der Version Zwei unter https://ttgw.de zur Verfügung. Dort finden sich neben den Gerber-Files für die Platinen auch die stl-Files für verschiedene Gehäusevarianten zum selbst Drucken und eine BOM für die Teile.

Dabei ist es gar nicht so viel, was sich am Ende auf der Platine wieder findet. Die Arbeit macht ein AT Tiny 84-Chip und für die Kommunikation ist ein RFM95-Modul zuständig.

Dazu noch zwei Widerstände, zwei Kondensatoren, eine LED und eine Batteriehalterung für eine CR2032-Knopfzelle und eine Antenne – fertig ist die Hardware.

Die Platinen habe ich direkt beim Developer des Nodes bezogen, mit den Gerberfiles kann man diese jedoch auch bei den einschlägigen PCB-Herstellern bestellen.

Dem ganzen Kleinkram gibt es beim Elektronikversand oder dem freundlichen Chinesen – je nach Geschmack und Termindruck. Alle Teile sind im SMD-Format 1206.

Alle Bauteile für einen TinyLoRa Node
und los gehts…..

Zuerst werden die Teile aufgelötet. Während es bei den Kondensatoren und Widerstände hinsichtlich Verpolung egal ist, wie sie aufgelötet werden, ist für RFM95, AT-Tiny-84 und die LED auf die richtige Ausrichtung zu achten. Die Batteriehalterung muss ebenfalls richtig rum aufgelötet werden, hier hilft, sofern man die richtige Halterung verwendet der auf die PCB aufgedruckte Umriss der Halterung.      

Links oben die LED – die grüne Markierung links und der AT Tiny84 mit PIN1 rechts unten
Die Batteriehalterung, links unten die abgeschrägte Ecke

 Der Footprint für die Antenne erlaubt neben der Nutzung einer Wire/Coil-Antenne auch die Verwendung eines SMA-Connectors und den Einsatz eines u.fl/ IPEX-Connectors zur Nutzung eines Pigtails.

Für die Nutzung in dem Gehäuse ist die Wire/ Coil-Antenne vorgesehen, sollte diese vor der Montage mit einem Stück Schrumpfschlauch überzogen werden.

Die isolierte Wire/ Coilantenne liegt direkt auf C2 und würde diesen ohne Isolierung kurzschließen

Damit verhindert man, dass die Antenne später im Betrieb C2 bzw. R2 kurzschließt.

Ebenfalls vorgesehen auf der PCB ist der Anschluß für den Programmieradapter. Der Chip wird mittels Platform.io und z.B. einem DIAMEX USB ISP-Programmer Stick für AVR programmiert. (Andere gehen auch, aber mit dem habe ich es gemacht) Soll der Node in dem Gehäuse eingesetzt werden, so wird ein Adapter mit Pogo-Pins benötigt.

Der Programmieranschluss auf der PCB, PIN1 ist rechts oben

Diesen habe ich mir einfach selbst gebaut indem ich die 6 Pogo-Pins in zwei Stücke einer 2,54mm Lochrasterplatine gelötet habe und mit zwei dreipoligen Pin-Leisten verbunden habe. Dort kann ich den Programmieradapter anschließen.

2,54mm Lochraster-PCB’s, 6 PoGo-Pins, 2×3 Pinheader sowie etwas Draht – fertig ist der Programmieranschluss
so vorbereitet kann der Sketch auf den Chip übertragen werden

Update 24.05.2020: Da ich zukünftig die Platinen im Gehäuse flashen möchte war mein Programmieradapter genau falsch herum. Also habe ich mir heute noch einen neuen gebaut, diesmal etwas einfacher als den Ersten.

Ich habe dazu einfach zwei Gehäuse für 6-polige Pin-Header verwendet. Der Vorteil- mit etwas Fingerspitzengefühl kann man die Kontaktierung ohne Lötkolben anpassen.

Dazu habe ich die Pogo-Pins von vorn in das Gehäuse gesteckt, von hinten verlötet und am Ende mit Schmelzkleber im Gehäuse fixiert. Das andere Ende des Kabels wird ganz normal mit Pin-Header (male) konfektioniert und zusammen gebaut.

Im Sketch ist dann die src/secconfig.h anzupassen. Hier müssen neben der DEV-Addr noch der App-Key sowie der NwkSkey eingetragen werden. Dazu sind in der TTN-Console eine neue Application anzulegen und dort ein neues Device zu erstellen. Dieses Device muss im Anschluss angepasst werden.

Die Aktivierungsmethode ist ABP und der Framecounter ist zu deaktivieren.

Seit dem Update der Sketche wird der Framecounter im EPROM des ATTiny’s persistiert – das Deaktivieren des Framecounters ist nicht mehr erforderlich. Der Framecounter muss jedoch auf 16 Bit gestellt werden.

In der platformio.ini muss je nach verwendetem Betriebssystem noch der Port eingestellt werden, an dem der DIAMEX-Adapter angeschlossen ist. Dafür gibt es verschiedene Inhalte der platformio.ini, je nach genutztem OS. Die Variante aus dem Download des GIT’s ist passend für Linux, hier die entsprechende Anpassung für Windows. In meinem Beispiel hängt der Adapter an Port 11.

[env:attiny84]
platform = atmelavr
board = attiny84
framework = arduino
upload_protocol = stk500v2
upload_flags =
-P$UPLOAD_PORT
-b$UPLOAD_SPEED
upload_speed = 19200
UPLOAD_PORT = COM11
monitor_speed = 9600
board_build.f_cpu = 1000000L

platformio.ini für Windows

Der Programmieradapter hat zwei DIL-Schalter, worüber die Optionen der Spannungsversorgung eingestellt werden können. Schalter 1 = Spannungsversorgung des Boards über den Adapter an/aus und Schalter 2 –> an 5V, aus 3,3V. Damit brauchen wir, sofern das Board noch nicht mit einer CR2032 ausgestattet wurde, Schalter 1 an, Schalter 2 aus.

Diamex-Adapter mit passender Config Spannungsversorgung

Im Sketch gibt es Einstellungen für den verwendeten Sensor, möglich ist es aktuell den Node als Bake, mit einem SHT12 oder einem BME280 zu betreiben.

Da der Sensor sehr dicht über dem RFM installiert wird, sollte ein Streifen ISO-Band auf der Rückseite des Sensors verhindern, dass beide Platinen Kontakt haben. Außerdem sollte man beim Einlöten auf etwas Abstand halten.   

Rückseite des BME – mit Isolierband abgeklebt
Wichtig, den Sensor so auflöten das noch etwas Platz zwischen Sensor und RFM95 bleibt

Der so gebastelte Node sendet die Messwerte in dem eingestellten Sendezyklus. Die entsprechenden Werte für die verschiedenen Sensoren finden sich im Repository des Quellcodes.

Update 14.05.2020: Der TinyLoRa-Node hat eine weitere Messgröße erhalten. Mit einer einfachen LED (optimaler Weise eine klare rote oder gelbe LED) kann der Tiny ermitteln, ob es Hell oder Dunkel ist. Das Messverfahren ist nicht drauf ausgelegt, die Helligkeit auf das Lux genau zu ermitteln, aber das war auch nicht der Plan. Ein *.stl-File mit einer Öffnung für eine 3mm-LED ist inwzischen, wie auch der erweiterte Quellcode, auf der https://ttgw.de – Seite verfügbar.

Die Sensoren fallen in verschiedensten Einbausituationen nicht wirklich auf und lassen sich durch die wechselbaren CR2032-Knopfzellen günstig betreiben.

unauffällig auf dem Fensterbrett
oder einfach im Kühlschrank

Infos:

Gerberfiles, BOM, *.stl-Fileshttps://ttgw.de
Quellcodehttps://www.seiichiro0185.org/git/IOT/tinylora/src/branch/master/Firmware
Developer:Stefan Brand aka @seiichiro0185

Fragen rund um den TinyLoRa Node werden hier im Forum diskutiert. Für Rückfragen erreicht Ihr mich auf Twitter unter @thebowmen oder bei TTN Mitteldeutschland.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.