Entwicklung einer 1wire-zu-WLAN-Bridge

Begonnen von hexenmeister, 18 Dezember 2015, 01:03:45

Vorheriges Thema - Nächstes Thema

hexenmeister

----------------------------------------------------------------------------------------------------------------------------------
Status:
- 05.12.2016: Die erste Charge ist (bis meine Testplatinen und drei Stück Rest) verteilt. Zweite Charge wurde gerade geliefert und wird auch aufgeteilt. ESD-Protection-Chips sind gerade knapp  >:(
- 14.09.2016: Leerplatinen (ca. 20 Stück) sind bereit zum Verteilen. Zum Bestücken fehlen derzeit noch viele Bauteile. Daher schreibe ich zunächst die Vorbesteller der Leerplatinen an.
- 14.09.2016: Text des Erstbeitrages angepasst.
- 05.09.2016: Test mit LevelShifter erfolgreich
- 01.09.2016: TODO: 5V Bus mit LevelShifter testen
- 31.08.2016: Test erfolgreich: 26 DS18b20 Sensoren laufen stabil mit einem 3,3V Bus (einfachste konfiguration).
- 29.08.2016: Test Stromversorgung: 5V (direkt über USB-Buchse des WeMos Mini) - OK; 7-12V über AMS1117 - OK (bei Versorgung mit 12V wird der 1117 spürbar warm - ESP8266 ist doch recht gefräßig (bis 300mA)).
- 23.08.2016: Platinen sind eingetroffen. Werde sie jetzt an die Tester verteilen und auch selbst Zeit suchen zum Aufbauen und Testen.
- 30.07.2016: Verbindungsplatinen sind da.
- Juni 2016: Redesign (die Beschreibung unten muss ich bei Gelegenheit aktualisieren) und Bestellung der Controller- und Verbindungsplatinen
- 03.01.2016 : PCB-Design

----------------------------------------------------------------------------------------------------------------------------------

unverbindliche Interessentenliste (Sensorplatine/Verbindungsplatine):
- hexenmeister           : 5x ---
- reserve                    : 5x ---
- zentis666 (Sven)      : 3x (ggf. mit Gehäuse)
- Hauswart                 : 1x
- trebron106              : 2x (ggf. mit Gehäuse)
- Papaloewe               : 1x / 1x => bestückt
- PeMue                     : 2x
- DannyP (Daniel)       : 1x
- Omega (Holger)       : 2x (ggf. mit Gehäuse)
- Pf@nne                    : 2x
- HomeAlone              : 2x
- deltaac                    : 2x
- yamfhem                 : 2x
- ThomasW                : 5x (PCB)
- VB90                       : 3x / 3x => bestückt
- SvenJust                 : 5x
- hagbard (Andre)      : 2x
- Omega-5                 : 2x
- ucm73 (Alexander)   : 2x
- wbini:                      : 2x
- habeIchVergessen  : 2x
- Mario67                 : 1x (ggf. mit Gehäuse)
- matthias soll          : 2x
- JoeALLb                 : 1x (ggf. mit Gehäuse, ggf. bestückt)
- carlos                    : 2x (ggf. mit Gehäuse, ggf. bestückt)
- peter49                 : 1x (ggf. mit Gehäuse, ggf. bestückt)
- TeeVau                 : 1x
- justme1968           : 4x
- AitschPin                : 2x (Bausatz)
- erwin                     : 2x  (ggf. bestückt)
- thosch                   : 2x
- oli82                      : 2x
- Peter_64               : 2x (Bausatz)
- pc1246 (Christoph) : 2x (Bausatz)
- Maxel                     : 2x (Bausatz)
- tiwo85                    : 2x  (ggf. bestückt)
- thunder                  : 2x  (ggf. bestückt)
- ergerd                    : 2x  (ggf. bestückt)
- Tbone                    : 3x  (ggf. bestückt)
- Rince                     : 2x  (ggf. bestückt)
- StefanL                  : 1x  (ggf. bestückt)
- mi.ke                     : 2x (Komplettset, ggf bestückt, ggf. mit Gehäuse)
- avg123-de            : 1x (Komplettset)
- bloodybeginner    :  1x (Komplettset)
- bloodybeginner    :  4x (PCB only)
- devo                      : 3x (Bausatz)
- kvo1                      : 2x (ggf. Komplett)
- Lucky2k12              : 3x (ggf. Komplett)
- sua                       : 3x (ggf. Komplett)
- Chris_Worms        : 3x (Bausatz, 1 davon ggf. Komplett)
- bloodybeginner     : 1x Bausatz + 2 PCB
- santalaus              : 5x
- Christian Uhlmann : 2x (ggf. Bausatz)
- sentinel1               : 2x
- olsen                     : 3x (ggf. bestückt)
- maci                       : 1x (ggf. bestückt)
- Jo                          : 4x
- Starkstrombastler   : 2x
- maci                      : 2-3x
- ThomasW               : 4x
- MillyHarry               : 2 x Verbindungsplatine: 2 EUR (nur PCB), 2 x Sensor-Platine: 3 EUR (nur PCB), 2 x Variante 1: 5 EUR

Summe: 143 Stück

Unterstützer beim Bestücken:
- (hexenmeister)
- oli82

----------------------------------------------------------------------------------------------------------------------------------

Probleme / Einschränkungen mit V1.0:
- Ist Linearregler bestückt, sollte die Platine nicht über USB-Port des Wemos versorgt werden. Durch die "Rückwertsversorgung" wird der Regler sehr warm (hält aber, jedoch vermutlich nicht dauerhaft).
- Bug auf der Platine (Beschriftung): OPT_LED ist im Schema falsch herum integriert. Daher ist der Aufdruck auf dem Board auch falsch. Wer also eine LED braucht, muss sie beim Einlöten 'drehen'.
- Kein Bug, aber bei der Entwicklung nicht berücksichtigt: bei Tests mit ESPEasy ist mir aufgefallen, dass man die "sleep"-Feature mangels Verbindung zw. RST und GPIO16 nicht nutzen kann (ESP wird niemals wieder aufwachen). Ist für den angedachten Haupteinsatzscenarion nicht wirklich notwendig, könnte aber dennoch interessant werden. Ich werde das in späteren Layout-Versionen entsprechend berücksichtigen. Falls da jemand sofort brauchen sollte, kann man die fehlende Verbindung leicht (auf der Unterseite der Platine) mit einem (bedrahteten) Widerstand nachrüsten.
- Auf mehrfachen Wunsch habe ich möglichst Viele GPIOs auf Lötpunkte herausgeführt, daher passt Die Platine leider nicht in das zuerst ins Auge gefasste Gehäuse.

----------------------------------------------------------------------------------------------------------------------------------

Bestückungsvarianten:

Grundkonfigurationen:
0: nur PCB

1: minimal : 3,3V-Bus direkt am GPIO, Stromversorgung über WeMos-USB-Buchse, 1wire-Pullup, Steckleisten (female) für WeMos und Schraubklemmen für den Bus-Ausgang

2: standard : 5V-Bus am GPIO mit LevelShifter, Stromversorgung über WeMos-USB-Buchse, 1wire-Pullup, Steckleisten (female) für WeMos und Schraubklemmen für den Bus-Ausgang

3: busmaster:  5V-Bus mit Busmaster und LevelShifter, Stromversorgung über WeMos-USB-Buchse, 1wire-Pullup, Steckleisten (female) für WeMos und Schraubklemmen für den Bus-Ausgang

Zusatzoptionen:
P0: Zusätzlich Schraubklemme zum Versorgen des WeMos mit stabilen (!) 5V
P1: Zusätzlich Stromversorgung über ams1117 mit Verpolungsschutz und Selbstrückstellender Sicherung (7-12V)
P2: Zusätzlich Stromversorgung über LM7805 mit Verpolungsschutz und Selbstrückstellender Sicherung (12-24V)
E: Zusätzlich ESD-Protection-Chip
S: Zusätzlich StrongPullup-Schaltung (nur Busmaster)
F: mit Federklemmen anstatt Schraubklemmen
A: Zusätzlich Anschlussleiste für die Verbindungsplatine
O: Zusätzlich LED und Taster (derzeit keine Verwendung dafür)

----------------------------------------------------------------------------------------------------------------------------------

Preisvorstellungen:
Versand (DE, unversichert, bis 10 PCBs oder bis 2 aufgebaute Platinen): 2,-
Verbindungsplatine: 2 EUR (nur PCB)
Verbindungsplatine: (vollbestückt mit Schraubklemmen 8,-)
Sensor-Platine: 3 EUR (nur PCB)
Variante 1: 5 EUR
Variante 2: 8 EUR
Variante 3: 12 EUR
(Wemos-Module sind jeweils nicht miteingerechnet)
Zusatzoptionen:
P0: +0,5 EUR
P1, P2: +2 EUR
E: +2 EUR
S: +1 EUR
F: +2 EUR
A: ist dabei bei gleichzeitigem Bestellen der Verbindungsplatine
O: +1 EUR

Bausätze möchte ich nicht ausliefern, das Sortieren von SMD-Teilen kostet zu viel Zeit. Federklemmen habe ich fast keine mehr, die sind teuer und umständlich zusammenzustecken, ESD ist eigentlich nur für längere Busse (vor allen outdoor) wirklich interessant, Busmaster (besonders mit StrongPullup) ebenso. Daher schlage ich folgende Kombinationen vor (den Rest kann sich ja jeder selbst nach belieben zusammenbauen): 0 (3 EUR), 1 (5 EUR), 2 (8 EUR), 2P (10 EUR). Wemos-Module sind hier nicht mitberechnet und müssen von jedem selbst besorgt werden (aufgrund von fallenden Preisen möchte ich diese Teile nicht horten).
Reichen diese Kombinationen, oder welche wären noch für viele Einsatzszenarien von Interesse?

----------------------------------------------------------------------------------------------------------------------------------

Teileliste:

(Alle Widerstände sind SMD 0805, ebenso die Kondensatoren)

Variante 1:
PCB
WeMOS D1 mini
PF1 500mA 1206
R17 100
C1 470pF
R1 1k-2K2
2x 8er Pinliste (female, pitch 2,54)
3er oder 4er Schraubklemme (pitch 3,5mm)

Variante 2:
PCB
WeMOS D1 mini
PF1 500mA 1206
R17 100
C1 470pF
R1 1k-2K2
2x 8er Pinliste (female, pitch 2,54)
3er oder 4er Schraubklemme (pitch 3,5mm)
R21 10K
R22 10K
Q4 BSS138 SOT-23-3

Variante 3:
PCB
WeMOS D1 mini
PF1 500mA 1206
R17 100
C1 470pF
R1 1k-2K2
2x 8er Pinliste (female, pitch 2,54)
3er oder 4er Schraubklemme (pitch 3,5mm)
IC3 DS2482-100S
R13 4K7
R14 4K7
R15 4K7
R16 4K7
Q2 BSS138 SOT-23-3
Q3 BSS138 SOT-23-3

P0:
2er-Klemme (pitch 3,5mm)

P1:
D1 DO214
C3 105
C4 104
IC2 AMS1117 SOT-223
2er-Klemme (pitch 3,5mm)

P2:
D1 DO214
C3 105
C4 104
IC1 LM7805
2er-Klemme (pitch 3,5mm)

E:
ZD1 DS9503

S:
Q1 BSS84 SOT-23-3
R18 50-100

F:
(pitch 3,5mm)
2er Federklemme
3er oder 4er Federklemme

A:
3er Pinleiste (male, pitch 2,54, z.B. Dupont oder KF2510 p3)

O:
: PushButton DTSM-3
: R20 470
: R19 10k
: LED 1206 / 1210

----------------------------------------------------------------------------------------------------------------------------------

Platinenkonfiguration:

Spannungsversorgung:
=>5V: SJ1 geschlossen, IC1, IC2 (C3, C4)
unbestueckt
=>7-12V:  SJ1 offen,
IC2 bestueckt (AMS1117 5.0),
C3, C4 bestueckt, IC1 unbestueckt
=>13-24V: SJ1 offen, IC2 unbestueckt,
IC1 bestueckt (7805), C3, C4 bestueckt

Bus Konfiguration:
generell:
- SJ3 regelt die Spannngsversorgung
des Busses (gilt nicht für parasitaer
versorgte Devices).
- ZD1 (ESD protection) kann
ueberbrueckt werden.
- R17 und C1 bilden einen
optionalen Filter.

=>ohne Busmaster:
- Pullup R1 bestueckt
(i.d.R. zwischen 1k und 2k2).
- i2c-LevelShifter
(R13, R14, Q2, Q3, R15, R16)
ist optional (wird ggf. benoetigt, wenn
5V-I2C-Bus anderweitig verwendet wird).
- BusMaster-Chip (IC3)
StrongPullup-Schaltung (Q1, R18) unbestueckt
==> 3.3V-Bus: SJ2 geschlossen,
1w-LevelShifter (R21, R22, Q4) unbestueckt
==> 5V-Bus: SJ2 offen, 1w-LevelShifter bestueckt

=>mit Busmaster:
SJ2 offen, 1w-LevelShifter unbestueckt,
i2c-LevelShifter bestueckt,
StrongPullup optional

----------------------------------------------------------------------------------------------------------------------------------

Eagle-Sources: https://github.com/hexenmeister/PCB-Design/tree/master/ESP8266_1wire_Gateway_WeMosD1Mini

----------------------------------------------------------------------------------------------------------------------------------


========================================================================
Folgende Klarstellung dürfte zwar selbstverständlich sein, dennoch ...

Das Projekt
----------------------
Es handelt sich hierbei um ein gemeinsames Hobbyprojekt.
Es wird weder eine Dienstleistung noch ein fertigen Produkt angeboten.
Vor dem Einsatz muss das Ergebnis ggf. noch zusammengebaut, mit der Firmware versorgt, oder konfiguriert werden.
Unterstützung wird auf freiwilliger Basis im Forum angeboten. Hilfestellung beim Zusammenbau kann nur
in begrenzten Maße und gegen eine Aufwandsentschädigung angeboten werden.

Zeitrahmen
----------------------
Da die Entwicklung als Hobby und neben dem Beruf, Familie und allen Anderem stattfinden,
können keine verbindlichen Termine zugesichert werden.

Fertigungsmengen
----------------------
Die Fertigungsmengen werden anhand der Interessentenzahlen bestimmt.
Bei großem Interessen werden mehrere kleinere Chargen nacheinander beauftragt.
Vor Allem die erste Bestellung wird zum Minimieren des wirtschaftlichen Risiko überschaubar gehalten.
Wo es sinnvoll und kosten- bzw. aufwandsmäßig vertretbar ist, kann eine Sammelbestellung der
notwendigen Komponenten organisiert werden.

Kosten
----------------------
Es wird kein Gewinnerzielungsabsicht verfolgt. Die Kosten und Preise setzen sich aus Material- und
sonstigen anfallenden Kosten ggf. zuzüglich einer Aufwansentschädigung zusammen.

Haftung
----------------------
Trotz aller erforderlichen Sorgfalt können Fehler leider nicht vollständig ausgeschlossen werden.
Es kann daher weder Funktionsgarantie gegeben, noch eine Haftung für etwaige Schäden jeglicher
Art übernommen werden.

Beteiligung
----------------------
Eine Beteiligung (als Ideengeber, Tester, QS, Hard- und Softwareentwickler etc.) unter Anerkennung
den o.g. Bedingungen ist erwünscht. :)

========================================================================

Ursprungsbeitrag

Moin!
Ich habe festgestellt, dass ich eine 1wire-zu-WLAN-Brücke gut gebrauchen könnte :)
Mit einem ESP, einem 1wire-Busmaster-Chip und etwas Kleinkram sollte das sich (relativ) leicht verwirklichen lassen.
Ich werde mich mit der Schaltung beschäftigen und eine PCB dafür erstellen.
An diesem Stadium kann ich sowohl Wünsche berücksichtigen, als auch Verbesserungsvorschläge gebrauchen.
Hat jemand noch Interesse?

Was ich bis jetzt überlegt habe:
- als µC/WLAN soll ein ESP-12 verwendet werden
- 1wire-Bus wird mit einem I2C-Busmaster (DS2482S-100) realisiert und bekommt eine ESD-Protection (DS9503P)
- 1wire-Bus soll mit 5V laufen, also muss ein LevelShifter her
- möglichst kleine Platine, max 50x50mm
- um Gehäuse habe ich mir keine Gedanken gemacht, ist mir auch relativ unwichtig
- SMD-Bauweise, jedoch kein Reflow
- Softwareseitig stelle ich mir einen MQTT-Client vor und auch einen (einfachen) WebServer für die Konfiguration
- ich plane lediglich Temperatursensoren zu verwenden, habe aber natürlich nichts gegen weitergehende Unterstützung

Den PCA9306 werde ich vermutlich doch nicht verwenden, ist etwas zu hard zu löten per Hand. Evtl. nehme ich einfach zwei Mosfets und vier Widerstände ;)

Grüße,
Alexander

P.S. Ach ja, ich bestelle Teile und Fertigung in China, das wird also eher günstig (10-15 Euro für PCB und alle Bauteile), wird aber dauern... Und zeittechnisch kann ich leider auch nicht so viel aufwenden, wird also auch nicht ganz schnell ;)

PeMue

Dann hänge ich mich mal als Mitleser bzw. potentieller PCB-Checker  8) mit dran ...

Gruß Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Kuzl

Ich hab vor ein paar Monaten auch mal genau das gebaut, allerdings ohne Busmaster, da ich ebenfalls nur Temperatursensoren auslesen wollte.
Der ESP liegt direkt über einen Levelshifter am 1W-Bus und legt für jeden Temperatursensor einen Topic an.

hexenmeister

#3
Hier paar Bilder von bestückten Platinen

hexenmeister

#4
Zitat von: Kuzl am 18 Dezember 2015, 07:42:58
Ich hab vor ein paar Monaten auch mal genau das gebaut, allerdings ohne Busmaster, da ich ebenfalls nur Temperatursensoren auslesen wollte.
Der ESP liegt direkt über einen Levelshifter am 1W-Bus und legt für jeden Temperatursensor einen Topic an.
Ah, interessant! Wie es die Erfahrung, läuft alles dauerhaft stabil?
Was verwendest Du als LevelShifter?
Code-technisch habe ich noch nichts, magst Du evtl. Dein Code offenlegen?

Grüße,
Alexander


Wuppi68

Habe auch großes Interesse :-)

Kannst Du bei der Platine alle nicht benutzten Pins vom ESP auf eine Leiste oder Lötpunkte legen? Hat den charmanten Vorteil, man kann dann relativ einfach Erweiterungen dran dängeln :-)
Jetzt auf nem I3 und primär Homematic - kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

hexenmeister

Zitat von: Wuppi68 am 18 Dezember 2015, 08:10:22
Kannst Du bei der Platine alle nicht benutzten Pins vom ESP auf eine Leiste oder Lötpunkte legen? Hat den charmanten Vorteil, man kann dann relativ einfach Erweiterungen dran dängeln :-)

Das ist immer ein Kompromiss zw. Erweiterbarkeit und Platinengröße. Da ich 50x50mm nehmen will, sollten 1-2 Leisten samt PullUp-Widerstände noch Platz haben (viele freie GPIOs hat ESP je nicht mehr und die Rückseite der Platine ist noch komplett frei).
Für I2C-Schiene hatte ich das sogar schon vor.
Widerstände werden aber alle SMD sein (0805 oder 0603).


hexenmeister

Ach, ja... Was denkt ihr, was soll man am Besten als 1wire-Bus-Ausgangsbuchse nehmen? Schraubklemmen? RJ45-Buchse?

Für Stromversorgung habe ich jetzt eine USB-B-Micro Buchse (Handy-Ladegerät) und Schraubklemmen. Weitere Ideen dazu?

Wuppi68

Zitat von: hexenmeister am 18 Dezember 2015, 08:25:42
Ach, ja... Was denkt ihr, was soll man am Besten als 1wire-Bus-Ausgangsbuchse nehmen? Schraubklemmen? RJ45-Buchse?

Für Stromversorgung habe ich jetzt eine USB-B-Micro Buchse (Handy-Ladegerät) und Schraubklemmen. Weitere Ideen dazu?

ich würde eine nicht bestückte Schraubklemme nehmen, wenn es passt kannst Du auch RJ45 und Schraubklemme an der gleichen Stelle im Layout vorsehen und jeder kann sich entscheiden:
Kabel einlöten - Schraubklemme - RJ45
Jetzt auf nem I3 und primär Homematic - kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

Solala0815

Hallo Hexenmeister,

ich bekunde mal ein großes Interesse an diesem Projekt.
Bei meinen 1-Wire-Teile habe ich Schraubklemmen
oder aber die Wago-Klemmen 2060 (SMD) benutzt.
Habe mir schon überlegt ob ich es nach diesem Plan nach baue.
http://forum.fhem.de/index.php/topic,38024.0.html
Einen ESP mit abgesetzter Antenne würde ich bevorzugen oder
hat schon jemand den ESP-12 auf ext. Antenne umgebaut?

Olly

Hallo,

ich bekunde auch mal Interesse an so einer Platine. Wäre genau das Richtige, um damit ein paar Temperaturen meiner Heizungsanlage zu erfassen.
Tüftele gerade mit einem ESP-12E mit DHT22 und MQTT.

Gruß

   Olly
BananaPi 1GB;NetCSM 868MHz, miniCUL 433MHz, LaCrosseGateway, 2x SignalESP; FHEM 6.2

hexenmeister

Zitat von: Solala0815 am 18 Dezember 2015, 09:01:43
ich bekunde mal ein großes Interesse an diesem Projekt.
Bei meinen 1-Wire-Teile habe ich Schraubklemmen
oder aber die Wago-Klemmen 2060 (SMD) benutzt.
Habe mir schon überlegt ob ich es nach diesem Plan nach baue.
http://forum.fhem.de/index.php/topic,38024.0.html
Einen ESP mit abgesetzter Antenne würde ich bevorzugen oder
hat schon jemand den ESP-12 auf ext. Antenne umgebaut?
Ich meine, ein ESP-07 sollte zu dem ESP-12 pinkompatibel sein, der hätte eine Antennenbuchse.
Hast Du eine günstige Einkaufsquelle für Wago 2060? Bei Aliexpress gibt es sie schon, allerdings immer Hunderterweise...

hexenmeister

Zitat von: Olly am 18 Dezember 2015, 09:13:40
ich bekunde auch mal Interesse an so einer Platine. Wäre genau das Richtige, um damit ein paar Temperaturen meiner Heizungsanlage zu erfassen.
Genau mein Anwendungsfall ;D

hexenmeister

Wie ist die Meinung zu der ESD-Protection? Macht die Platine immerhin fast ein Euro teurer ;D Optional machen (Lötjumper)?

Solala0815

Hallo,

Nein, leider habe ich keine günstige bezugsquelle für die 2060 Klemmen.
Wollte mir schon welche bei einem deutschen Händler bestellen, nun brauche ich eine Kreditkarte. 8)

Wegen der ESD-Protection, wie lange wird der Bus? 2m ... 5m ? Welche Spannung kann hier max. Induktiert werden?
Würde hier auch ein Wid. z.B 33 ohm und eine Z-Diode 5V1 genügen? oder gleich ganz vergessen?
Im schlimsten Fall kann die ganze Platine abrauchen - sind dann ca. 10€
Habe hier im Haus einen Bus mit 30m ohne Protection, läuft seit 3 Jahren ohne größere Ausfälle.