Forum: Mikrocontroller und Digitale Elektronik Sehr einfache Funkübertragung (8 Bit)


von Andi (Gast)


Lesenswert?

Hallo,

ich möchte eine 1 Byte große Information zyklisch (alle 5 Minuten) über 
Funk übertragen (unidirektional). Die Übertragungssicherheit spielt 
dabei keine Rolle! Der Aufbau soll möglichst Stromsparend sein da ich 
das Gerät über Batterie betreiben möchte.

Wäre euch sehr dankbar wenn ihr ein paar Lösungsvorschläge habt.

Gruß Andi

P.S.:
Über das Gerät möchte ich prüfen ob mein wonungsfenster offen oder 
geschlossen ist (also eine art mini hausautomation :-) )

von Verwirrter Anfänger (Gast)


Lesenswert?

Grundlegende Fragen:
- Wie groß darf das ganze werden?
- Wie willst du das empfangen/anzeigen? PC, Display, LED?
- Was für Vorkenntnise hast du schon? (Programmiersprachen, 
Elektronik,...)
- Wie oft brauchst du das? (Einmal, Einmal pro Fenster in der Wohnung, 
...)
- Die Datenintegrität ist komplett egal? Also auch wenn "Fenster auf" 
statt "Fenster zu" ankommt, oder können nur Pakete zwischendurch 
verloren gehen?

Ich würde das mit einem kleinen Mikrocontroller machen (meine Vorliebe 
avr, aber PIC oder MSP430 sind potentiel stromsparender) und daran ein 
rfm12 Funkmodul hängen. Das Funkmodul schlafen legen und dann mit dem 
rfm12 alle 5 Minuten aufwecken. Das könnte je nach Programmierung mit 
einer Knopfzelle 2-20 Jahre halten.
Ich hab mir einen kleine Temperatur Sensor gebaut, der nach diesem 
Prinzip funktioniert und der sollte mit einer Knopfzelle zumindest 2-3 
Jahre lang laufen. Da du weniger Daten übertragen wills und weniger 
aufwendige Eingabe hast, denke ich, dass das bei dir nochmal ne Ecke 
länger gehen sollte.


Es gibt bestimmt schönere Varianten, aber da ich nur den Hammer als 
Werkzeug kenne, sieht für mich halt alles nach Nägeln aus.

von Andi (Gast)


Lesenswert?

@Verwirrter Anfänger

- Wie groß darf das ganze werden?

-> möglichst klein, vllt wie ne streichholzschachtel (muss halt ans 
fenster montiert werden)

- Wie willst du das empfangen/anzeigen? PC, Display, LED?

-> über einen PIC32, dieser fungiert als Webserver und zeigt die Daten 
dann über HTTP als Webpage an

- Was für Vorkenntnise hast du schon? (Programmiersprachen,
Elektronik,...)

-> Studiere momentan Elektrotechnik...

- Wie oft brauchst du das? (Einmal, Einmal pro Fenster in der Wohnung,
...)

-> Mehrmals (pro fenster, auch für haustür etc. denkbar

- Die Datenintegrität ist komplett egal? Also auch wenn "Fenster auf"
statt "Fenster zu" ankommt, oder können nur Pakete zwischendurch
verloren gehen?

-> Prinzipiell ja, im schlechtes Fall würde dann für 5 min eine falsche 
info anstehen...


Danke für deinen Lösungsvorschlag, gefällt mir :)

P.S.: Mit Hammer und Nägel kann man ein ganzes Haus bauen :P

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Du kannst das Datenbyte einfach 10mal hintereinander senden, und als 
Ergebnis das annehmen, was am häufigsten ankommt. Das reduziert die 
Fehlerhäufigkeit etwas. Im Sleep-Modus brauchen die RFM12 sehr wenig 
Strom (1.5 uA angeblich, laut DB)

von Verwirrter Anfänger (Gast)


Lesenswert?

Niklas Gürtler schrieb:
> Strom (1.5 uA angeblich, laut DB)

Bei mir braucht die Kombination aus avr im power down und rfm im sleep 
mode mit aufwach timer ca. 1.3µA, das stimmt also ziemlich genau.

Andi schrieb:
> -> über einen PIC32, dieser fungiert als Webserver und zeigt die Daten
> dann über HTTP als Webpage an

Andi schrieb:
> -> Studiere momentan Elektrotechnik...

Super, dann hast du ja mehr als genug Vorkentnisse. Mit PICs kenn ich 
mich zwar nicht so aus, aber dann würde ich dir empfehlen einen der 
kleineren PICs zu nehmen
- Als Takt entweder den integrierten oder den aus dem RFM12 nehmen.
- 5 Pins für den RFM (CLK, MOSI, MISO, SELECT, Interrupt) + 1 für den 
Fensterkontakt.
- Der PIC und der RFM12 schlafen und werden alle 300 Sekunden von dem 
RFM12 aufgeweckt -> ca. 1.5µA Verbrauch
- Wenn die wach sind wird der Kontakt eingelessen, Die ID des Senders, 
der Wert des Kontakts und evtl. Zusatzinfos (Batteriespannung, 
Redundanz, Checksummen, fortlaufende Nr., ...) werden gesendet. Das 
sollte ca. 2mS dauern und verbraucht 20 mA für den RFM12 + Verbrauch des 
PIC
- alle gehen wieder schlafen.

Verbrauch:
(300 000ms * 1,5µA + 2mS * ~30 000µA) / 300 002 ms = 1,7 µA
Bei einer Knopfzelle mit 220 mAh gibt das ca. 15 Jahre Laufzeit.
Die tatsächliche Laufzeit hängt natürlich davon ab, wie stark du die 
Knopfzelle entladen kannst, aber ich denke 5 Jahre könnten drin sein.

- Wenn du wirklich sparsam sein willst schließt du den Fensterkontakt 
mit einen Widerstand zwischen zwei pins.:
1
PIN1 ---\
2
        |
3
       | |  optional um Kurzschluss zu vermeiden 1-10k
4
       | |
5
        |
6
        \----o Kontakt
7
8
9
        /----o Kontakt
10
        |
11
PIN2 ---+
12
        |
13
       | |  Pulldown 10-100k
14
       | |
15
        |
16
        |
17
       --- Erde
PIN2 ist input, PIN1 output.
Während der PIC schläft PIN1 low. Wenn er wach ist wird PIN1 auf high 
gestellt, und PIN2 guckt ob bei ihm auch high anliegt.


Andi schrieb:
> -> möglichst klein, vllt wie ne streichholzschachtel (muss halt ans
> fenster montiert werden)
Das ist gut machbar siehe:
Beitrag "Re: Bestimmung des Verbrauchs bei Strömen 1000 µA - 0,1µA"

Andi schrieb:
> -> Mehrmals (pro fenster, auch für haustür etc. denkbar
Ich würde mit Kosten von:
5€ RFM12 + 1,50€? PIC + 50 Cent Kleinkram + evtl. 1€ Platine = 8 Euro 
pro Sensor rechnen. Die Platinen lohnen sich natürlich nur wenn du viele 
Fenster hast. Wenn du dich mit AVRs auch auskennst könnt ich dir mal 
eine unbstückte zuschicken, ich hab davon noch ein paar hier rumliegen.

P.S.
Mir fällt gerade ein, das der RM70 evtl. auch interessant sein könnte. 
Der Standbyverbrauch ist allerdings ein bischen höher, angeblich 3µA. 
Ich bin mir auch nicht ganz sicher, ob der auch den wakeup timer drin 
hat. Dafür hat der schon eine Antenne integriert, falls die 
Platzprobleme machen sollte.

von Andi (Gast)


Lesenswert?

vielen Dank für die schnelle Antwort!!

Klingt alles sehr gut. Ich mache mir gerade nur noch über die 
Funkübertragung gedanken... Wenn ich mehrer Sender verwenden möchte (für 
jedes fenster eines) müsste ich noch ein zeitduplex verfahren oder so 
einbauen oder?!?

Gruß
Andi

von Verwirrter Anfänger (Gast)


Lesenswert?

Andi schrieb:
> Wenn ich mehrer Sender verwenden möchte (für
> jedes fenster eines) müsste ich noch ein zeitduplex verfahren oder so
> einbauen oder?!?

Naja, wenn du 5 sekunden lang schläfst und 2mS lang sendest, dann hast 
du dein Zeitduplex ja einfach dadurch, dass du nicht alle Sender zur 
exakt gleichen Zeit einschaltest.

Als Anhaltspunkt: für ca. 20 Bytes sende ich maximal 4ms.

Du könntest auch jeden Sender minimal unterschiedlich Lange schlafen 
lassen. damit garantierst du, das irgendwann mal alle kolidieren, aber 
gleichzeitig sollte jeder irgendwann mal frei sein. (Angenommen du hast 
weniger als 75 000 Fenster in deiner Wohnung)

Oder du wartest nach allen x mal senden auf eine Antwort vom Server, der 
dir sagt wie lange du jetzt schlafen sollst.

Aber solange du unter hundert Sendern bist, würde ich mir darüber keine 
Sorgen machen.

von Andi (Gast)


Lesenswert?

>Oder du wartest nach allen x mal senden auf eine Antwort vom Server, der
>dir sagt wie lange du jetzt schlafen sollst

Ja das wäre dann ne Master Slave beziehung aber dann muss mein "Fenster" 
bidirektional kommunizieren können...

Da ich keine 75000 Fesnter in meiner Wohnung habe sonder nur 500 denke 
ich das ich eine kollision in kauf nehme :)

Ich schaffe mir jetzt mal diesen RFM02 als sendemodul und den RFM12 als 
empfangsmodul an....

Damit ich mit dem Modul schnell zurecht komme wäre mir eine kurze 
"To-Do" Liste sehr hilfreich mit der ich das modul schnell zum laufen 
bekomme (externer Schaltungsbedarf, Konfiguration, Daten 
Senden/Empfangen)

Gruß und schonmal danke für die Hilfe
Andi

von Verwirrter Anfänger (Gast)


Lesenswert?

Andi schrieb:
> Ich schaffe mir jetzt mal diesen RFM02 als sendemodul und den RFM12 als
> empfangsmodul an....

Zum Testen würde ich mir nur ein paar RFM12 anschaffen (besser 3 oder 4, 
falls man mal eins kaputt macht). Die RFM02 sind zwar 1,50€ billiger, 
aber die haben eine andere Pinanordnung als die RFM01 und RFM12 und ein 
bischen andere Features. Für die ersten Tests ist es sinnvoll zwei 
gleiche Module zu haben, die beide über irgendeine andere 
Kommunikationsmöglichkeit verfügen (UART, LEDs, Web, ...) damit man 
einfacher debuggen kann. Da macht man sich mit zwei verschiedenen 
Modulen nur das Leben noch unnötig schwerer.
Wenn man dann eine stabile Library fertig hat, kann man für die 
Massenproduktion immer noch auf RFM02 umsteigen.

Andi schrieb:
> Damit ich mit dem Modul schnell zurecht komme wäre mir eine kurze
> "To-Do" Liste sehr hilfreich mit der ich das modul schnell zum laufen
> bekomme (externer Schaltungsbedarf, Konfiguration, Daten
> Senden/Empfangen)
Da würde ich den Artikel:
http://www.mikrocontroller.net/articles/RFM12

und dann die unzähligen Beiträge hier im Forum empfehlen. Die hier Tuts 
hier sind auch ganz gut:
http://blog.strobotics.com.au/2008/01/08/rfm12-tutorial-part1/

von Andi (Gast)


Lesenswert?

Habe beim pollin ein programming guide gefunden mit nem PIC example 
code...

Leider bin ich unfähig den code aus dem PDF zu kopieren. Beim einfügen 
zeigts nur vierecke an.

Wie bekomme ich den Code da raus (außer abtippen)?? Kann das mal jemand 
probieren und schauen obs funktioniert?

Hier ist die PDF (code fängt ab seite 10 an):


http://www.pollin.de/shop/downloads/D810072D.PDF

Wäre echt super wenn des jemand hinbekommen würde :)

von Andi (Gast)


Lesenswert?

niemand??

von Rainer (Gast)


Angehängte Dateien:

Lesenswert?

Versuch es mal hiermit:

(s. Anhang)

Rainer

von Andi (Gast)


Lesenswert?

funktioniert! Vielen Dank!!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.