RFM12-Funkbrücke

Aus BraLUG-Wiki

Wechseln zu: Navigation, Suche


...kommt demnächst...

Inhaltsverzeichnis

Motivation

Einige der Sensoren zur Aufzeichnung von Wetterdaten sind bei mir etwas ungünstig platziert. Die Sensoren müssten eigentlich an einem Ort angebracht werden, der draussen und nicht der direkten Sonneneinstarhlung ausgesetzt ist. Dieser Ort ist bei meinen örtlichen Gegebenheiten nur schwer mit Kabel erreichbar. Aber wozu gibt es Funkübertragung? Entsprechende Funkmodule sind leicht beschaffbar.

Weiterhin bestand dann gleich mal die Gelegenheit ein paar andere Sensorentypen für Helligkeit, Feuchtigkeit und Temperatur auszuprobieren. Sonst wird es ja langweilig...

Funkbrücke

RFM12-Module

In der hier vorgestellten Funkbrücke kommen zwei RFM12-Module der Firma Hoperf zum Einsatz. Diese Module vereinen Sender und Empfänger in einer Baugruppe. Gesendet wird auf dem ISM-Band mit 433MHz. Die Beschaffung kann über die üblichen Elektronikversender zu einem halbwegs erträglichen Preis erfolgen.

Elektrische Verschaltung und programmtechnische Ansteuerung sind im Datenblatt und in zahlreichen Projekten im Internet ausführlich beschrieben. Als Ausgangsbasis für meine Funk-Experimente war eine längliche Diskussion zu diesem Thema auf mikrocontroller.net. Man muss ja das Rad nicht immer neu erfinden...

Eine nette Eigenschaft des RFM12-Modul vereinfacht die Steuerung des kontinuierlichen Programmablaufes des Senders: es kann per Kommando in Tiefschlaf versetzt werden, aus dem es, nach einer vorkonfigurierbaren Zeit, wieder allein aufwacht. Dieses "Aufwachen" wird auch an einem Ausgang als Impuls ausgegeben. Ist dieser Ausgang mit einem sinnvollen Eingang der, zur Steuerung verwendeten, MCU angeschlossen, ergeben sich ein paar interessante Möglichkeiten. Mein erstes Experiment mit RFM12/MCU war eine "Blinkschaltung", bei der die MCU das RFM12-Modul und danach sich selbst Schlafen geschickt hat. Nach Ablauf der Ruhezeit wachten beide Teile in umgekehrter Reihenfolge auf und das Spiel begann wieder von vorn...

Sender

RFM12 Sender

Sensoren

TSL45315 (Helligkeit)

TSL45316

SHT15 (Temperatur/Luftfeuchtigkeit)

SHT15

TMP36 (Temperatur)

TMP36

Versorgungsspannung Sender ermitteln

Messwerte senden

...
// Funkmessage...
struct msg_t {				// Offset
	uint16_t counter;		// --> 0
	uint16_t vcc;			// --> 2
	uint32_t brightness;		// --> 4
	uint16_t sht15_humidity;	// --> 8
	uint16_t sht15_temperature;	// --> 10
	uint16_t tmp36;			// --> 12
} msg;
...

Empfänger

RFM12 Empfänger
> i2cdetect -y 0

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- 12 13 -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- 28 -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- 49 -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- 77 
> i2cdump -y 0 0x28        

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: af 00 72 13 22 01 00 00 9d 16 05 09 d9 02 00 00    ?.r?"?..??????..
10: 00 00 00 00 00 af af af af af af af af af af af    .....???????????
...
> tclsh rfm12.tcl 

Counter...........: 256
Vcc (Sender)......: 4.978V
Helligkeit........: 484lux
SHT15-Feuchtigkeit: 58.27%
SHT15-Temperatur..: 21.99°C
TMP36.............: 21.4°C
********************


Software

In dem hier verlinkten Softwarearchiv ist die Firmware des Senders und Empfängers der Funkbrücke sowie ein kleines Tcl-Script zur Abfrage der empfangenen Daten via I²C-Bus zu finden. Im Tcl-Script muss natürlich die Adresse des entsprechenden I²C-Bus angepasst werden. Der Zugriff auf den I²C-Bus erfolgt über eine selbstgeschriebene Tcl-Erweiterung, deren C-Quelltext ebenfalls im Softwarearchiv zu diesem Projekt enthalten ist und für die eingesetzte Zielplattform übersetzt werden muss.

Kontakt

Uwe

'Persönliche Werkzeuge