Endlich habe ich wieder Zeit gefunden (genommen), mein eigentlich schon etwas älteres Projekt vorzustellen. Diesmal handelt es sich um eine 2,4GHz-Funk-Bridge basierend auf nRF24L01+, einem Chip von Nordic Semiconductor, die per WLAN gesteuert werden kann. Wer sich dafür interessiert, was dieser Funk-Tranceiver-Chip alles kann, wird auf der Seite des Herstellers fündig: http://www.nordicsemi.com/eng/Products/2.4GHz-RF/nRF24L01P. Eine gute Beschreibung liefert (wie immer) auch mikrocontroller.net: https://www.mikrocontroller.net/articles/NRF24L01_Tutorial

Für alle anderen sei gesagt, dass dieser Chip für die Kommunikation der Geräte verwendet wird, die auf der MySensors-Bibliothek basierend aufgebaut sind. Es sind natürlich auch andere Verwendungen möglich, z.B. gibt es Implementierungen, die es erlauben, MiLight-Lampen zu steuern (mehr dazu hier: https://forum.fhem.de/index.php/topic,58742.0.html,58742.0.html).

 

Mein primäres Ziel war ein MySensors-Gateway für mein Automationserver aufzubauen. Der Schaltplan basiert auf dem Vorschlag auf der MySensorsSeite (https://www.mysensors.org/build/connect_radio#nrf24l01+-&-esp8266) und ergänzt diesen praktisch nur um die Spannungsversorgung. 

Die grundsätzlichen Eigenschaften der Platine sind folgende:

  • Spannungsversorgung über MicroUSB-Buchse (5V) oder über Schraubklemmen (7-12V, mit Verdunstungsschutz), geschützt durch eine selbstrückstellende Sicherung.
  • Verwendung von günstigen und gut verfügbaren Komponenten (ESP12 und nRF24L01+)
  • Verwendung nRF24L01+ als SMD- oder steckbare Version
  • Anschluss für den UART-Adapter zum Debuggen/Flashen, Reset- und Flash-Buttons
  • 3 LEDs und ein Button (Inclusion) für MySensors-Gateway-Sketch
  • Vorbereitung für optionalen CryptoAuthentication-Chip (ATSHA204A)

An dieser Stelle noch mal ein großes Dankeschön an alle, die sich bei der Diskussionen im Forum beteiligt haben: https://forum.fhem.de/index.php/topic,46304.0.html, sowie für alle Ratschläge, Tests und Korrekturen!

 

Schaltplan und Board sind in Eagle-CAD designt worden und auf GitHub hinterlegt: https://github.com/hexenmeister/PCB-Design/tree/master/ESP8266_MySensorsGateway

nRF Bridge sch 01

nRF Bridge brd 01

 

Seit der ersten Version haben Schema und Layout mehrere Korrekturen erfahren und es sind auch mehrere Chargen gefertigt worden.

 

Renders für die aktuelle Board-Version:

nRF Bridge brd bottom

nRF Bridge brd top

 

Verschiedene Versionen und Fertigungschargen:

nRF Bridge PCB 01 k

 

Fertig aufgebaute Platinen:

nRF Bridge 01 k

 


 Anleitung zum Aufbau und Test der Platine:

 Aufbau:

 Den Aufbau der Platine schlage ich in folgender Reihenfolge vor:

  • USB-Buchse
    (Mit den winzigen Buchsen musste ich vorerst ein wenig üben, aber nach ein paar Versuchen (ruhige Hand vorausgesetzt) ging es ganz gut. Die letzte Board-Version verwendet Buchsen mit durchsteckbaren Lötfähnchen, diese sind viel leichter zu handhaben.
    Die Vorgehensweise: auf die Lötflächen etwas Flussmittel (bitte kein Kolophonium oder so was in der Art) auftragen, dann mit etwas (wenig!) Lötzinn die Flächen bearbeiten, ggf. auf die Kontaktflächen wieder etwas Flussmittel (übertriebene Sparsamkeit ist hier fehl am Platz ;D ). Dann die Buchse genau platzieren und die Kontakte leicht anlöten. Wenn alles genau und sauber sitzt, das Gehäuse an den Lötlaschen an die PCB festlöten (kann ruhig viel Lot sein)). Jetzt die Kontakte einzeln und praktisch ohne Lot (was zuerst auf die Kontaktflächen schon aufgetragen war, reicht). Viel Flussmittel verhindert unerwünschte Brücken. Mit viel Licht und einer Lupe überprüfen! Am Besten auch elektrisch kontrollieren - also anschießen und messen. Bei manch einer Platine hatte ich schon einen Wackelkontakt, beim Wackeln am Stecker stürzte ESP ab - es musste nachgelötet werden. Endkontrolle ist also unerlässlich!

  • Widerstände (R1-R2, R4-R14: 13x 10k und R15: 1x 470 (oder 680,oder 1k…), den R3 lässt man am besten weg, dieser ist für die WakeUp-Schaltung, sie macht bei einem Gateway wenig Sinn.

  • SMD Kondensatoren (C1, C4, C5: 3x 100n (104) und C3: 1x 1µF (105))

  • wenn nRF in einer SMD Version verwendet wird, dann kann jetzt dieser angelötet werden (ich klebe ein Stückchen Kaptonband darunter, es sollte zwar auch ohne keine Kurzschlüsse geben, aber sicher ist sicher)

  • Stromregler

  • PolyFuse

  • LEDs (abgeschrägte Ecken zeigen Richtung Platinenmitte)

  • ggf. Diode (falls Versorgung über die Schraubklemmen verwendet werden soll. Polarität beachten! Markierung zeigt Richtung LEDs)

  • Taster

  • ESP12

  • C2: bei älteren Versionen - ELKO (auf die Polarität achten!) (ist etwas blöde gelöst, damit die Platine möglichst flach wird, muss dieser mit angewinkelten Beinchen liegend bestückt werden. Und zwar von der anderen Platinenseite, als angezeichnet!)
    bei neueren Versionen wird eine MLCC 107 verwendet

  • PRG-Leiste (es hat sich herausgestellt, dass diese besser an der anderen Platinenseite platziert werden soll, als angezeichnet!)

  • falls steckbarer nRF verwendet wird, ist der jetzt dran. Entweder gesteckt auf einer 2x8 female PinHeader oder direkt angelötet (damit wird die Platine wesentlich flacher).

  • vor allem bei Verwendung von nRF-Modulen mit Verstärker (PA+LNA) hat es sich bewährt, zusätzlich direkt zwischen den VCC und GND Anschlüssen des nRF-Moduls einen zusätzlichen Kondensator (105) anzulöten.

 Das wär's dann auch schon! 

 

Teileliste:

  • (1x) 00. PCB
  • (1x) 01. µC: ESP-7/ESP-12/ESP-12e/ESP-12f
  • (1x) 02. IC1: AMS1117 3.3
  • (1x) 03. Radio: nRF24L01+ (SMD oder THT)
  • (10x) 04. R1,R2,R4-R11 : 10K (12K tut auch)
  • (3x) 05. R12-R14: 10k (bzw. je nach LED)
  • (2x) 06. R3,R15: 470 (oder 680, oder 1k...)
  • (3x) 07. C1,C4,C5: 100n
  • (1x) 08. C2: 10uF (unkritisch, größer besser, z.B. 100uF)
  • (1x) 09. C3: 1uF
  • (1x) 10. D1: Schottky Diode SS14 (oder andere)
  • (1x) 11. PF1: 500mA max
  • (3x) 12. Taster: 3x SMD 6x2,5mm
  • (1x) 13. MicroUSB-Buchse
  • (1x) 14. Screw Terminal 2 pins: 5,08 mm pitch (W237-02P)
  • (1x) 15. PinHeader male 4 pins: 2,54 mm pitch
  • (1x) 16. PinHeader female 2x4 pins: 2,54 mm pitch (optional, nRF-Modul kann auch direkt angelötet werden)
  • (3x) 17. LED1-LED3 (r,g,y)

Verwendeten SMD-Packages:

  • R1-R15: 0805
  • C1,C3-C5: 0805
  • C2: 1210
  • LEDs: 1206 / 1210
  • PF1: 1206
  • Taster: DTSM-3
  • IC1: SOT223
  • D1: DO214

 Test:

Nach dem Aufbau kann die Platine an die Stromversorgung (per USB oder Schraubklemme, ggf. auch über PRG-Leiste, aber nur, wenn dort genügend Strom geliefert wird (was bei vielen USB-UART-Adaptern nicht der Fall ist). Das ESP-Modul soll sich dabei mit einem kurzen Blinken seiner blauen LED melden.

Über ein USB-UART-Adapter wird die Platine an ein USB-Port eines PCs angeschlossen (bei der Versorgung über USB/Klemmen sind nur Leitungen GND, RX und TX anzuschließen. RX und TX müssen natürlich über Kreuz an den Adapter angeschlossen werden).

 

Zum Flashen wird ArduinoIDE benötigt.

 

Also der Reihe nach:

Wenn man jetzt die serielle Console in IDE öffnet, sollten entsprechende Meldungen sichtbar sein. Die Platine meldet ggf. auch Fehler (radio init failed) und startet dann in einer Endlosschleife neu. In diesem Fall sollte die Bestückung überprüft werden.

Falls alles in Ordnung ist, kann man sich mit dem Gateway per Telnet (z.B. mit PuTTY) verbinden. IP-Adresse wird per DHCP bezogen (im Router-Config nachsehen), Port: 5003

Damit ist es eigentlich sicher, dass die Platine funktioniert. Wer ganz genau wissen will, benötigt jetzt ein MySensor-Device, das auf den gleichen Kanal konfiguriert ist. Die Messages von diesem Device werden sowohl in der seriellen Console, als auch über Telnet-Verbindung ausgegeben. Über Telnet können auch Befehle gesendet werden (Beispielweise: 101;1;1;1;0;TEST).

 

Kommentare (0)

Cancel or