1-Wire Slave Devices auf AVR und PIC Microcontrollerbasis

Begonnen von locutus, 01 Januar 2016, 14:00:18

Vorheriges Thema - Nächstes Thema

locutus

Hallo,

im Welt-Weiten-Web findet der Bastler einige Beispielschaltungen für 1-Wire Slave Devices. Ich habe mal aus reiner Neugier die PIC16 Schaltung von fabiszewski.net neu gestaltet und auf eine kompakte Platine untergebracht.
Der Temperatur-/Luftfeuchtesensor (SHT11 oder SHT21) ist via Busmaster an meinem Raspberry Pi 2 angeschlossen.

Besteht hier im Forum Interesse an diesem Sensor? Ich habe noch einen kleinen Bestand an bestückten Platinen und werde einige davon entbehren können. Allerdings muss ich dazu anmerken, dass der Sensor nur in Verbindung mit dem Patch für owfs-2.8p13 funktioniert. Derzeit ist der Betrieb mit fhem nicht möglich.

Schaltplan und Gerberdaten im Anhang.
Die Verwendung der Daten für kommerzielle Zwecke, Herstellung oder gewerblichen Vertrieb ist untersagt.

Prof. Dr. Peter Henning

Äh - warum ist denn der Betrieb mit FHEM nicht möglich ? Was ist denn die Spezialität des 1-Wire Slave in diesem Fall ?

LG

pah

ritchie

Hallo Zusammen,

so wie ich das sehe, wurde hier nur ein weiteres (eigenes) 1- wire Device angelegt, welches der Standard OWFS nicht erkennen kann und daher einen Patch benötigt. Die ID "BF" ist laut : http://owfs.sourceforge.net/family.html nicht vergeben und daher auch nicht unterstützt.

Vermutlich auch der Grund, warum Fhem hier streikt.

Die hier abgelegt Patches ist meiner Meinung nach keiner vom offiziellen Pfad, sondern eine persönliche Erweiterung des 1-wire Bus mit allen seinen Vor und Nachteilen.
http://www.fabiszewski.net/1-wire-slave/

Heisse Sache bei Problemen, würde ich mal sagen.

Gruss R.




IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

locutus

Dafür ist das Modul OWID gedacht aber im Logfile tauchen keine brauchbaren Daten auf.

2016.01.02 17:47:36 1: OWX: 1-Wire bus OWio1: interface master DS2480 detected for the first time
2016.01.02 17:47:45 3: OWID:    Device OWX_BF_54594D454B00 defined.
2016.01.02 17:47:45 1: OWX: 1-Wire devices found on bus OWio1 (OWX_BF_54594D454B00)
2016.01.02 17:52:55 1: OWX: Search CRC failed
2016.01.02 17:57:55 1: OWX: Search CRC failed
2016.01.02 18:02:55 1: OWX: Search CRC failed

Prof. Dr. Peter Henning

Klar, OWID kennt nur die ID.

Ist aber kein Problem, beliebige Register per eigenem Modul auszulesen.

LG

pah

locutus

#5
Hallo zusammen,

hier ein weiterer 1-Wire Sensor zur Feuchte- und Temperaturmessung. Die Schaltung besteht im Wesentlichen aus einem AVR ATtiny, einem Spannungsregler, einem Pegelumsetzer und dem SHT21 Feuchtesensor. Auf dem ATtiny84A wird der 1-Wire DS2438 Smart Battery Monitor emuliert.

Einbindung in FHEM mit OWMULTI:
define OWX_26_A2D984000005 OWMULTI DS2438 A2D984000005
attr OWX_26_A2D984000005 VName relHumidity|rH
attr OWX_26_A2D984000005 VUnit percent|%


Formel zur Berechnung der Feuchte:
attr OWX_26_A2D984000005 VFunction ((V / VDD - 0.16) / 0.0062) / (1.0546 - 0.00216 * T / 256.0)


Einbindung in FHEM mit OWFS und OWDevice:
define DS2438_A2D984000005 OWDevice 26.A2D984000005 60

Berechnung der Feuchte:
attr DS2438_A2D984000005 userReadings humidity {sprintf("%.1f", ((ReadingsVal("$name", "VAD",0) / ReadingsVal("$name", "VDD",0) - 0.16) / 0.0062) / (1.0546 - 0.00216 * ReadingsVal("$name", "temperature",0) / 256.0))}

Fertiggeräte sind im Marktplatz verfügbar.

locutus

Hallo zusammen,

hier die Weiterentwicklung des 1-Wire Sensors zur Feuchte- und Temperaturmessung. Die Schaltung wurde zusätzlich mit einem BMP280 Luftdrucksensor bestückt. Auf dem ATtiny84A wird der 1-Wire DS2450 Quad A/D Converter emuliert.

Einbindung in FHEM mit OWAD:
define OWX_20_A2D984001602 OWAD DS2450 A2D984001602

Formel zur Berechnung der Temperatur, Feuchte und Luftdrucks:
attr OWX_20_A2D984001602 userReadings Temperatur {sprintf("%0.1f",(ReadingsVal("$name","A",0)-2.56)*128)},Feuchte {sprintf("%0.2f",ReadingsVal("$name","B",0)*128)},Luftdruck {sprintf("%0.1f",ReadingsVal("$name","D",0)*400)}

Schaltplan, HEX-Datei für ATtiny84 und Gerberdaten für OSH Park im Anhang.
Die Verwendung der Daten für kommerzielle Zwecke, Herstellung oder gewerblichen Vertrieb ist untersagt.


Fertiggeräte sind demnächst im Marktplatz verfügbar.

tpm88

Hallo Locutus,

hast du für den Triplesensor auch eine Gehäuseempfehlung?

Gruß
Tobias
Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on Odroid HC1, HM-USB, JeeLink
Devices: diverse HM, IT1500, 1wire, LaCrosse, MQTT

Deckoffizier

Hallo  locutus,

bei mir sieht das userReading so aus

Temperatur:A.* {(ReadingsVal("Wettersensor","A",0)-2.5674)*128 }, Feuchte:B.* { ReadingsVal("Wettersensor","B",0)*128.55}, Luftdruck:D.* { (ReadingsVal("Wettersensor","D",0)*400)*1.007000581}

beim Luftdruck ist noch die Höhe über Meeresspiegel mit eingeflossen ca. 65m.

Gruß
Hans-Jürgen
FHEM 5.8 auf "yakkaroo Emu A1FL.1" mit CUL 868MHz, SIGNALduino,2 1Wire USB Busmaster, diverse 1 Wire Sensoren,Landroid,Aeotec USB Dongle Z-Wave Plus

Bartimaus

Hallo,

bei OWAD gibt es verschiedene Attribute. Mit "AName" kann man dem TempBaustein (=A) einen Namen geben, mit "AFunction" z.B. "(VA-2.56)*128" die Berechnung des Temperaturwertes.

Dies gilt für die "Ports" A,B,C,D" des Moduls. Somit kann man sich das "Userreading" sparen.

JustMy2Cents
LG
B.


FHEM@Intel-J4105@Debian-LXC, CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly