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 :-) )
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.
@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
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)
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 anAndi 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.
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
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.
>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
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/
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 :)