Der RF-Transceiver RFM12B ist ein ideales Bauteil für die Realisierung von kostengünstigen drahtlosen Anwendungen über das ISM-Band. Das RFM12B-Modul kann sowohl als Sender wie auch als Empfänger betrieben werden. Im Elektronik-Handel sind diese Module für die Frequenzbereiche 433 Mhz und 868 Mhz verfügbar.
Bei meinen Experimenten mit den Attiny Sensor Nodes und dem RF Sensor Shield mit LCD kommt diese Komponente auch zum Einsatz.
Da diese RF-Module für die direkte Oberflächenmontage auf einer Leiterplatte ausgelegt sind, ist der Einsatz auf einem Steckbrett oder Protoshield etwas kompliziert da keine Anschlussbeine-oder Drähte vorhanden sind. Für erste Experimente habe ich mir dazu eigene Breakout Boards mittels Lochrasterplatine und Anschlusspins aufgebaut.
Der Aufbau auf diese DIY Breakout Boards ist aber weiterhin zeitaufwändig und erfordert eine feine Hand und saubere Lötstellen. Darum habe ich nun ein eigenes Breakout Board erstellt und bei iteadstudio produzieren lassen.
Version 1.0
Version 1.01
Stromlaufplan:
Stückliste:
1 Leiterplatte RFM12B Breakout Board
2 Stifleiste 7 polig (ST1, ST2)
1 RFM12B
Mit den Stiftleisten angelötet kann das Breakout Board nun für Anwendungen auf dem Steckbrett oder auf einer Lochrasterplatine oder Protoshield eingesetzt werden.
Leiterplatte:
Download Fritzing-Projekt V1.0 (.fzz, 58 kB)
Download Fritzing-Projekt V1.01 (.fzz, 17 kB)
Hinweis:
Die Ansteuerung und Pegelwandler für 5V-Anwendungen sind auf dem Breakout Board nicht vorhanden uns müssen in der jeweiligen Schaltung aufgebaut werden.
Upate 21.06.2015 – Drahtlose Wetterstation mit RFM12B
Der Benutzer Urs hat mir Bilder von seiner entwickelten RFM12B-Anwendung mit einem Arduino Mega geschickt. Die Photos zeigen den Einsatz des RF Shields auf dem Mega sowie ein drahtloser Sensornode mit einem DHT22-Sensor.
15 Responses to “RFM12B Breakout Board”
- 1 Pingback on Mai 1st, 2014 at 14:31
- 2 Trackback on Feb 28th, 2016 at 10:48
Leave a Reply
Suchen
Aktuelles
- Arduino Praxiseinstieg, 5. Auflage erschienen
- Arduino UNO R4 offiziell vorgestellt
- Review: PCB Service von WellPCB
- Review: SMD-Bestückungs-Service von JLCPCB
- Portable Power Supply – VoltBot
- Leiterplatten-Panel bei JLCPCB
- Arduino Praxiseinstieg, 4. Auflage erscheint am 29.04.2019
- Klein, kleiner, ganz klein – ATtiny10
- Review – Leiterplatten (PCB) von JLCPCB
- Arduino Day 2018
Kommentare
- Review: PCB Service von WellPCB 2
ArduinoPraxis [...] - Arduino UNO R4 offiziell vorgestellt 2
ArduinoPraxis [...] - Review - Leiterplatten (PCB) von JLCPCB 4
Werner Smidt [...] - Review: SMD-Bestückungs-Service von JLCPCB 2
ArduinoPraxis [...] - Projekt: drahtloses Display für Oregon Scientific Wetterstation 3
Oliver [...]
Kategorien
Archive
- Dezember 2023
- Juni 2023
- Juli 2020
- Dezember 2019
- Oktober 2019
- Juni 2019
- April 2019
- Juli 2018
- Mai 2018
- November 2017
- Oktober 2017
- September 2017
- Juli 2017
- April 2017
- März 2017
- Februar 2017
- Dezember 2016
- November 2016
- September 2016
- Mai 2016
- Januar 2016
- Dezember 2015
- August 2015
- Mai 2015
- März 2015
- Januar 2015
- Dezember 2014
- September 2014
- August 2014
- Juli 2014
- Juni 2014
- Mai 2014
- April 2014
- März 2014
- Februar 2014
- Januar 2014
- Dezember 2013
- Oktober 2013
- September 2013
- August 2013
- Juni 2013
- Mai 2013
- April 2013
- März 2013
- Februar 2013
- Januar 2013
- Dezember 2012
- November 2012
- Oktober 2012
- September 2012
- August 2012
- Juli 2012
- Juni 2012
- Mai 2012
- April 2012
- Februar 2012
- Januar 2012
- Dezember 2011
- November 2011
- Oktober 2011
- September 2011
- August 2011
- Juli 2011
- Juni 2011
- Mai 2011
- April 2011
- März 2011
- Januar 2011
- Dezember 2010
- November 2010
- Oktober 2010
- September 2010
- August 2010
- Juli 2010
- Juni 2010
- Mai 2010
Schönes Projekt! Wie lange läuft so ein kleiner Knoten mit diesen Batterien? Grüsse, Thomas
@tamberg
Ich habe die Sensor Nodes seit Mitte November im Einsatz und die Batteriespannungen sind erst geringfügig gesunken. Ein paar Monate sollten diese also noch halten.
Die Sensor Nodes senden alle 60 Sekungen Daten an die Basis.
Gruss
Thomas
Überall sieht man so tolle Projekte, Libraries gibt es zu Hauf zum Herunterladen. Aber nirgendwo wird beschrieben, wie man den RFM12B mit dem Arduino ans Laufen bekommt. Libraries sind fast überhaupt nicht kommentiert, das meiste funktioniert mit der neuesten Arduino-Software nicht…
Wir hatten es mal funktionstüchtig, aber Windows benötigt ja auch ab und zu einen Reset und die Arduino-Software ist so nett, das Sketchbook standardmäßig auf C zu legen.
Hätte vielleicht mal jemand Zeit und Lust, einem armen Deppen zu erklären, wie ich das Teil ans Arudino anschließen muss, welche Libraries ich benötige und wie zum Teufel man dann senden und empfangen kann?
@DerVerzweiflungNahe
Mit der Library JeeLib hat man relativ schnell eine Lösung aufgebaut.
http://jeelabs.net/pub/docs/jeelib/index.html
Die Library selbst kann man hier runterladen:
https://github.com/jcw/jeelib
Die JeeLib Library hat viele Beispiele auf welche man aufbauen kann und die Beispiele sind recht gut dokumentiert.
Die Verbindung eines Arduino-Boards mit dem RFM12B Transceiver ist auf diesem Bild dargestellt.
http://openenergymonitor.org/emon/sites/default/files/Cookbook_RFM12B_connections.png
Für die Kommunikation sind mindestens 2 Arduino nötig, ein Sender und ein Empfänger.
Ich hattte bisher keine Probleme mit den verschiedenen Arduino-Versionen. Von welcher Version sprichst du hier?
Die Einstellung wo die Sketch-Dateien liegen kann in der Arduino-IDE unter Datei, Einstellungen in der Option „Sketchbook Speicherort“ definiert werden.
Nachtrag:
für die Inbetriebnahme verwendet man am besten das Beispiel „“:
https://github.com/jcw/jeelib/tree/master/examples/RF12/RF12demo
Hier ist recht ausführlich beschrieben wie man die Kommunikation aufbauen muss.
Die in diesem Beispiel verlinke Beschreibung zeigt wie man den RFM12B mit dem ATmega verbinden muss.
http://jeelabs.org/2009/02/10/rfm12b-library-for-arduino/
Diese Schaltung ist aber nur möglich wenn die Betriebsspannung 3 oder 3.3V ist. Beim Einsatz eines Standard-Arduino, bspw. Arduino Uno, müssen einzelne Signalleitungen mit Widerständen (10k und 4,7k) auf 3.3V angepasst werden, siehe dazu Bild aus vorherigem Kommentar.
Ich hoffe dass diese Erklärungen zu einem erfolgreichen Einstieg verhelfen.
Viel Erfolg.
Ich hab da mal ne Frage.
Kennst du eine Library für dieses Funkmodul die mit dem Arduino Micro kompatibel ist?
Der Atmega 32u4 benutzt nicht D10-D13 als SPI Schnittstelle, sondern zusaätzliche Pins auf der Platine (siehe hier: http://forum.arduino.cc/index.php?action=dlattach;topic=148734.0;attach=90679;image ; die obersten 2 pins links und rechts)
Ich habe die Module bisher an einem A. UNO und einem Micro testen können, der Uno erkennt den rfm12b, der Micro nicht.
Die Vermutung liegt also nahe das die Library nicht die SPI Ausgänge des Micros anspricht.
Gibt es sonst vielleicht eine Möglichkeit innerhalb der Library (Ich verwende ebenfalls die von JeeLab) die Pins zu definieren?
Ich werde mich nochmal auf Fehlersuche (BreakoutBoard des Funkmoduls) machen, sonst weiß ich nicht weiter.
mfg
ps. es ist mir wichtig den Micro zu verwenden da mir beim UNO D10-13 fehlen
Hallo Martin
Der RFM12B Transceiver wird via SPI-Kommunikation angesprochen. Beim Arduino Uno sind die nötigen Signale (SS, MOSI, MISO, SCK) an den Pins D10 bis D13.
Der Arduino Micro hat als Microcontroller einen ATmega32U4. Die SPI-Schnittstelle ist bei diesem Board direkt auf die 2×3-polige Stiftleiste herausgeführt. Du kannst die SPI-Signale also direkt dort abgreifen.
Für die Ansteuerung mit der Jeelib ist auch der ATmega32U4 vorgesehen. Die Pinkonfiguration ist in der Datei RF12.cpp abgelegt. Dieser Teil sieht wie folgt aus. Es werden also die digitalen Pins D14-D17 verwendet.
#elif defined(__AVR_ATmega32U4__) //Arduino Leonardo
#define RFM_IRQ 0 // PD0, INT0, Digital3
#define SS_DDR DDRB
#define SS_PORT PORTB
#define SS_BIT 6 // Dig10, PB6
#define SPI_SS 17 // PB0, pin 8, Digital17
#define SPI_MISO 14 // PB3, pin 11, Digital14
#define SPI_MOSI 16 // PB2, pin 10, Digital16
#define SPI_SCK 15 // PB1, pin 9, Digital15
Somit sollte eigentlich alles ohne Anpassungen in der Library lauffähig sein. Einfach den Arduino Micro als Board auswählen und die nötigen Signale am ICSP-Anschluss abgreifen.
Gruss
Thomas
Sind die beiden Fritzing-Platinen irgendwo als files erhältlich?
Ahh, hier: http://arduino-praxis.ch/projekte-2/arduino-rf-sensor-shield/
Hallo Clemens,
einzelne Boards sind auch in meinem Tindie-Shop verfügbar.
https://www.tindie.com/stores/arduinopraxis/
Gruss
Thomas
hallo
nach einigem üben hab ich das attiny84 sensor board mit einem DHT22 und einem UNO mit dem rf12-shield als receiver zum laufen gebracht.
den atttiny84 hab ich separat mit arduino 1.0.6 & jeelib & tiny kompilliert, beim UNO bin ich auf 1.6.4 geblieben.
zusätzlich hab ich zum debuggen auf dem attiny84 ein RGBmodul mit eingebauten widerständen auf einer sockelleiste angebracht und mit pin6 & 10 des 84er verbunden. nicht funktioniert hat pin11 (wer weiss warum?). auch das sendeintervall hab ich auf 5 sekunden runter geschraubt. so blinkt er schön, wenn er sendet und ich weiss, dass dann was ankommen sollte.
das eigentliche problem war dann die umstellung auf den arduino MEGA.
der umbau mit der abzweigung vom shield 10..13 –> mega 50..53 sieht ziemlich abenteuerlich aus und wird noch etwas ansehnlicher gemacht werden.
es gibt dazu bei jeelab einige threads, aber es hat nichts nicht wirklich geholfen. es hat zwar den rf12 initialisiert, aber keine daten angezeigt.
dann ist mir aufgefallen, dass die LED13 auf dem mega dauernd brannte, obwohl ich sie nicht gesetzt hatte.
das initialisieren der led13 und das setzen auf LOW brachte die lösung!
der MEGA empfängt nun seit stunden ohne einen einzigen retransmit.
der nächste challenge wird das hinzufügen des ethernet boards sein …
@thomas: zwei fotos folgen per mail 🙂
… nun läufts auch mit dem ethernet-shield; momentan noch ohne SD card, da scheint der select noch nicht zu stimmen.
… und nun läuft alles zusammen
Arduino MEGA, Arduino Ethernet shield mit SD card, RFM12B shield und der Aussensensor aus ATtiny84, RFM12B und DHT22.
entwickelt wird nun an einem Aussensensor der zusätzlich einen Licht(vis & IR) und einen UV-Sensor enthält. Dazu wechsle ich evt. vom ATtiny84 zum 328er, da dieser das I2C direkt eingebaut hat.
Nun also mal beides aufbauen und austesten.