ESP8266/MQTT Aktoren/Sensoren Bridge (AktSen)

Begonnen von Pf@nne, 22 Dezember 2015, 00:49:10

Vorheriges Thema - Nächstes Thema

Pf@nne

Moin,

ich habe dieses Thema parallel zu Alexanders Beitrag aufgemacht.
http://forum.fhem.de/index.php/topic,45853.0.html
Auch wenn das Ziel sehr ähnlich ist wollte ich seinen Beitrag nicht unnötig durcheinander bringen.

Meine Vorstellungen gehen eher in Richtung eines universal Aktors/Sensors (AktSen) im UP-Dosen-Format.
Ich bin schon seit einiger Zeit mit folgenden Bauteilen auf den BreadBoard unterwegs:


  • ESP8266 12e
  • MCP23017 Portexpander
  • HC-SR501 Bewegungsmelder
  • BMP180 Luftdrucksensor
  • GY-21 Temperatur-/Feuchtigkeitssensor
  • DS18B20 (bisher ohne Busmaster, der sollte aber noch folgen)
  • I2C Multiplexer für Bausteine mit gleicher Adresse (ist noch in der China-Post)
  • I2C A/D-Wandler (ist auch noch in der China-Post)

(http://www.s6z.de/cms/images/content/test/Homeautomation/Hardware/ESP8266/BreadBoard_01.jpg) (http://www.s6z.de/cms/images/content/test/Homeautomation/Hardware/ESP8266/TMP/AktSen_BreadBoard_V011.png)

Der zugehörige Sketch ist unter GitHub zu finden:
https://github.com/Pfannex/AktSen
Der Code ist noch überarbeitungswürdig, läuft aber erstmal.
Wobei sich die Tastereinkopplungen über den MCP23017 und die DS18B20 ein wenig zu beißen scheinen.
Der DS18B20 mißt realativ lange, Tasterereignisse während dieser Zeit werden nicht zu 100% sauber erkannt.
Hier besteht noch Handlungsbedarf.

Wie bereits erwähnt, möchte ich eher in Richtung UP-Schalterdose entwickeln, der Prototyp ist noch recht groß, kann aber deutlich verkleinert werden.

(http://www.s6z.de/cms/images/content/test/Homeautomation/Hardware/ESP8266/Sensor1.jpg) (http://www.s6z.de/cms/images/content/test/Homeautomation/Hardware/ESP8266/Sensor2.jpg)
(http://www.s6z.de/cms/images/content/test/Homeautomation/Hardware/ESP8266/Sensor3.jpg) (http://www.s6z.de/cms/images/content/test/Homeautomation/Hardware/ESP8266/Sensor4.jpg)


Auch die FHEM-Ankopplung über MQTT läuft ohne Probleme.

(http://www.s6z.de/cms/images/content/test/Homeautomation/Hardware/ESP8266/FHEM_01.PNG) (http://www.s6z.de/cms/images/content/test/Homeautomation/Hardware/ESP8266/FHEM_02.PNG)
define ESP8266_AktSen MQTT_DEVICE
attr ESP8266_AktSen IODev MQTT_Broker
attr ESP8266_AktSen autoSubscribeReadings 36/#
attr ESP8266_AktSen publishSet_OUTPUT01 36/DIGITAL/OUTPUT/01
attr ESP8266_AktSen publishSet_OUTPUT02 36/DIGITAL/OUTPUT/02
attr ESP8266_AktSen publishSet_OUTPUT03 36/DIGITAL/OUTPUT/03
attr ESP8266_AktSen publishSet_OUTPUT04 36/DIGITAL/OUTPUT/04
attr ESP8266_AktSen publishSet_OUTPUT05 36/DIGITAL/OUTPUT/05
attr ESP8266_AktSen publishSet_OUTPUT06 36/DIGITAL/OUTPUT/06
attr ESP8266_AktSen publishSet_OUTPUT07 36/DIGITAL/OUTPUT/07
attr ESP8266_AktSen publishSet_OUTPUT08 36/DIGITAL/OUTPUT/08
attr ESP8266_AktSen room ESP8266
attr ESP8266_AktSen stateFormat transmission-state
attr ESP8266_AktSen subscribeReading_DS18B20_01 36/DS18B20/01
attr ESP8266_AktSen subscribeReading_DS18B20_02 36/DS18B20/02
attr ESP8266_AktSen subscribeReading_INPUT01 36/DIGITAL/INPUT/01
attr ESP8266_AktSen subscribeReading_INPUT02 36/DIGITAL/INPUT/02
attr ESP8266_AktSen subscribeReading_INPUT03 36/DIGITAL/INPUT/03
attr ESP8266_AktSen subscribeReading_INPUT04 36/DIGITAL/INPUT/04
attr ESP8266_AktSen subscribeReading_INPUT05 36/DIGITAL/INPUT/05
attr ESP8266_AktSen subscribeReading_INPUT06 36/DIGITAL/INPUT/06
attr ESP8266_AktSen subscribeReading_INPUT07 36/DIGITAL/INPUT/07
attr ESP8266_AktSen subscribeReading_INPUT08 36/DIGITAL/INPUT/08
attr ESP8266_AktSen subscribeReading_humidity 36/humidity
attr ESP8266_AktSen subscribeReading_movement 36/movement
attr ESP8266_AktSen subscribeReading_pressure 36/pressure
attr ESP8266_AktSen subscribeReading_temperature 36/temperature


Topic-Tree
(http://www.s6z.de/cms/images/content/test/Homeautomation/Hardware/ESP8266/Topic_02.PNG)






Meine Vorstellung geht in Richtung einer Shield-Technik.
Drei Shields (zusammen ca. 3cm) sollten prima in eine flache UP-Dose passen.
So könnte z.B. das mittlere Shield mit dem ESP, der Spannungsversorgung und dem I2C-Busmaster bestückt werden.
Die erste Shield-Ebene könnte dann je nach Bedarf mit unterschiedlichen Sensorenkombinationen bestückt werden.
Je nachdem was erfasst werden soll.
Die hintere Ebene könnte dann bei Bedarf mit einem MCP23017 Portexpander ausgerüstet werden.
Als Spannungsversorgung sollten kleine Step-Down-Regler zum Einsatz kommen, das vergrößert den Einsatzbereich,
da ich gerne mit vorhandenen 24VDC einspeisen möchte.


Später könnten dann weitere Features wie z.B.:

  • Erstinstallation über WIFI-AP mit WEB-IF
  • Ändern von Konfigurationsparametern über MQTT
  • Flashen über WLAN
implementiert werden.


Hier könnte man sich bestimmt ergänzen.
Über FeedBack und Anregungen würde ich mich natürlich freuen.
Vieleicht hat ja der Ein oder Andere Lust mitzumachen.

Gruß
Pf@nne




Der aktuelle Arbeitsstand ist immer hier zu finden

GitHub: https://github.com/Pfannex/AktSen

22.12.2015  -  Arbeitsstand master  -  upload
02.01.2016  -  alpha 0.30  -  DS2482 Busmaster ergänzt
06.01.2016  -  alpha 0.40  -  Interrups für BM und Input unterbricht Messung
07.01.2016  -  alpha 0.41  -  Das publish für den BM hatte ich vergessen :-)
07.01.2016  -  alpha 0.42  -  Anpassung GPIOs
FHEM auf: DS415+ (Master), Raspberry Pi 2

SpenZerX

Und warum gerade UP-Dosen-Format?

Wäre nicht eine 2- Teilung, also Deckensensor im Rauchmelder-Gehäuse für jeden Raum und (nach Bedarf) Aufputz Wandsensoren mit SPI-LCD-Touchscreen sinnvoller?

hexenmeister

Finde ich interessant. Vor allem, weli ich so etwas änhliches mache bzw. vor habe :)
Auch UP finde ich genau richtig. Auf der Decke sind z.B. Temperatursensoren nicht sinnvoll. Außerdem wüsste ich nicht, woher ich dort Strom nehmen soll. Und UP ist so schön 'unsichtbar' integriert. Man kann aber parallel beide Platinenvarianten entwickeln.

Touchscreen ist natürlich cool, aber recht aufwendig und nicht ganz billig. Ich werde eher auf Tablets an der Wand setzen.

Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

yamfhem

... interessantes Projekt - UP-Format genau richtig, in die Richtung will ich auch.

yam

hexenmeister

Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Pf@nne

Moin SpenZerX,

ich habe beim Hausbau in jedem Zimmer eine Leerdose unter dem Lichtschalter vorgesehen, daher soll diese Entwicklung in Richtung UP-Dose gehen.
Das PCB-Format ist ja aber auch nur ein Aspekt, Software und Schaltung können ja auch in deinem Rauchmelder eingesetzt werden.
Wobei ich die Temperatursensoren unter der Decke auch nicht für besonders sinnvoll halte,
nebenbei hätte ich auch das Problem mit der Spannungsversorgung an der Decke.
Batteriebetrieb fällt bei den aktuellen ESPs noch aus.

Gruß
Pf@nne
FHEM auf: DS415+ (Master), Raspberry Pi 2

Bapt. Reverend Magersuppe

Das sieht sehr toll aus! Wie ist in der kleinen Dose die Stromversorgung sichergestellt?
Neulich habe ich dieses interessante Projekt gefunden: www.esp8266.nu
Die Firmware macht schon einen guten Eindruck. Da kann man sich sicher einige Inspirationen holen.
--
If I was born in 1453, Leonardo da Vinci would be jealous of me.
Reverend Paul Egon Magersuppe
Aus versicherungstechnischen Gründen sind sämtliche Beiträge von mir rein spekulativer und theoretischer Natur und sollten nicht in die Tat umgesetzt werden!
Bin hier selten DRIN. AUS GRÜNDEN!

Pf@nne

ZitatDas sieht sehr toll aus! Wie ist in der kleinen Dose die Stromversorgung sichergestellt?
In meinen Dosen stehen 24VDC zur Verfügung, die 3V3 bzw. 5V werden dann über fertige StepDown-Module vom freundlichen Chinesen realisiert werden.

http://de.aliexpress.com/item/New-Mini-Converter-Adjustable-DC-DC-Step-down-Power-Supply-Module-replace-LM2596/2047085628.html?detailNewVersion=2
FHEM auf: DS415+ (Master), Raspberry Pi 2

hexenmeister

Ich mache mir gerade Gedanken bezüglich Schielde... vor allem technischer Natur.

Man wird ein paar Festlegungen vornehmen müssen... Muss es sein, dass man die Dinger unendlich und beliebig aufeinander stecken kann, oder reicht es ein vor und in hinter dem 'Mainboard' mit dem ESP?

Ich würde ungerne die Headerleisten mit langen Stiften (wie bi Arduino-Shields) verwenden, so was hat kein Schwein herumliegen.

Ansonsten hier ist der erste (grobe) Vorschlag...
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Pf@nne

Man bist du fix!

Wahscheinlich reichen 3 Ebenen, die langen Stifte müssten ja zumindest in der mitleren Ebene eingesetzt werden.
Sonst wären doch die Stecker versetzt.....

Bei den "kurzen" gibt es doch Stecker und Buchsen, wie würdest du die verwenden wollen?

http://de.aliexpress.com/item/40PCS-2-54MM-6Pin-8Pin-10MM-Long-Needle-Female-Header-Strip-Stackable-Header-for-arduino-W5100/1800595507.html?ws_ab_test=searchweb201556_1,searchweb201644_3_79_78_77_82_80_62_61,searchweb201560_5
FHEM auf: DS415+ (Master), Raspberry Pi 2

hexenmeister

#10
Zitat von: Pf@nne am 22 Dezember 2015, 22:52:43
Man bist du fix!

Wahscheinlich reichen 3 Ebenen, die langen Stifte müssten ja zumindest in der mitleren Ebene eingesetzt werden.
Sonst wären doch die Stecker versetzt.....

Bei den "kurzen" gibt es doch Stecker und Buchsen, wie würdest du die verwenden wollen?

Naja, einfach ein altes Projekt etwas bereinigt...

Genau diese Stecker/Buchsen würde ich ungerne nutzen. Wenn unbenutzt, stehen die nadeln blank hervor und führen nur zu Kurzschlüssen.
Natürlich sind die Schilde versetzt, daher die zwei Reihen. In der Mitte nur Buchsen, Schilde mit Pinleisten. Der Vorderschild passt dann nicht hinter und umgekehrt. Die Platinen sind jedoch gleich, nur je nach dem müssen die Leisten anders gelötet werden.
Ich hab auch überlegt, die Leisten im Quadrat anzuordnen (also die Schilde jeweils um 90° drehen). Ich aber Platz- und Layout-technisch unschön.

Wie viele Kontakte wird man brauchen? Mit zwei 8er Leisten sind es immerhin 16. Erscheint mir schon fast zu viel. Welche Signale wollen wir weiterreichen?
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Pf@nne

Wenn die Stifte oben rausschauen und  z.B. in der oberen Ebene nicht genutzt werden kneift man sie ab.
Mit den langen würde man wie beim Arduino universell bleiben, für warum auch immer 4-Ebenen....

Welche Bauteile müssen denn untergebracht werden?

obere Ebene (Sensoren)

  • GY-21
  • HC-SR501
  • BMP180
  • Helligkeit
  • LEDs für Anzeige 4x?
  • ....

mittlere Ebene (Grundebene)

  • ESP8266 12e
  • 2x Taster
  • 2 x StepDown
  • Anschluss für Spannungsversorgung (2-pol)
  • 1-Wire Busmaster + Levelshifter
  • Vogelfutter

untere Ebene (Aktoren)

  • MCP23017
  • Anschlüsse für IO
  • ....

Nur mal so als Gedankenansatz....

Zur Belegung:


  • 5V
  • 3V3
  • GND
  • I2C SDA
  • I2C SCL
  • 1-WIRE
  • ESP GPIO
  • ESP GPIO
  • ESP GPIO
  • ESP GPIO
  • ESP GPIO
  • MCP IO
  • MCP IO
  • MCP IO
  • MCP IO
  • MCP IO
  • ..
  • ..
FHEM auf: DS415+ (Master), Raspberry Pi 2

hexenmeister

Die Stifte abzuknipsen ist schon eine recht zerstörerische Aktion ;)
Wenn Du schon dazu bereit bist, was sprich gegen mein Vorschlag? Dann hast Du auf 'Mainboard' immer zwei Buchsen, können immer so bleiben. Für die Schilde lötest Du einfach die Stifte in die linke oder rechte Lochleiste und kannst sie einsetzen vorne oder hinten. Auch vierte Ebene ich  möglich. Einfach female Version zusätzlich einlöten.

Mit de3r mittleren Ebene bekommen wir, fürchte ich, bei dieser Befüllung ein Problem. Eine Seite ist bereits praktisch mit dem ESP und seiner Ansteuerung voll. Der zweite Spannungsregler muss vermutlich schon auf die Rückseite. Für 1wire wird shon verdammt eng. Man kann natürlich eine kleine, schmale Platine vertikal einlöten (geht auch mit den chinesischen Sensorplatinchen, wie bmp180, si7021...). Ist nicht so doll, aber die Miniaturisierung hat halt ihren Preis. ;)
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

hexenmeister

Habe mir gerade den Schaltplan von NodeMCU genauer angesehen. Da wird ein anderer Regler verwendet: SPX3819. 500mA als SOT-23! Incl. Reverse voltage protection. Gibt es für 5V und für 3,3V. Ca. 30 Cent/Stück bei ALI. Sollten wir nehmen.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Pf@nne

Zitatwas sprich gegen mein Vorschlag?
Da du ja das Layout machst nix........ :D
Die lange Variante wäre zwar platzsparender, sollte aber nicht wirklich kriegsentscheidend sein.

Die Spannungsversorgung könnte ggf. auch in die untere Ebene.
Den I2C-Multiplexer habe ich auch noch vergessen.

Hochkant wäre für die Sensoren ggf. sogar besser. ich bin mir noch nicht so ganz schlüssig ob ein einfaches Lock in der Blindabdeckung reicht
oder ob die Sensoren im Luftstrom sitzen sollten/müssen.
Dann müsste man noch so einen kleinen Drahtkäfig/Gitter im Netz forschen.

FHEM auf: DS415+ (Master), Raspberry Pi 2