DHT11 Sensor automatisieren auf Raspberry Pi

Gast #5005593
Lesenswert?

Hallo liebes Forum,

ich habe bisher mit Python ein Script geschrieben, welches die 
Luftfeuchte und Temperatur durch den DHT11 Sensor ermittelt. Mein 
nächstes Ziel ist es den DHT11 Sensor Plug & Play fähig zu machen. Ich 
hab im Internet gelesen das der DHT11 Sensor eine 1-Wire Komponente ist. 
Falls ich mich nicht irre sollte der Sensor doch eine eindeutige ID 
besitzen. Ich weiß aber nicht wie man diese ermitteln kann. Bitte um 
Unterstützung. Denn wenn ich die ID habe denke ich, dass ich den 
Raspberry PI sagen kann, dass sobald dieser Sensor angeschlossen ist 
mein Skript automatisch starten soll.

Beste Grüße

Stefan
Gast #5005616
Lesenswert?

Hallo 50c,

link: 
https://www.laub-home.de/wiki/Sensorino_-_Auslesen_verschiedener_Sensoren_mit_Arduino 
ist der DHT11 aufgelistet. Dort steht unter Vorteile : 1-Wire Bus 
(Sensor ID, Reihenschaltung möglich). Hab ich etwas falsch verstanden? 
Um welche Schnittstelle handelt es sich denn dann? Ich lasse mich 
ebenfalls gerne von euch belehren! Ich bin noch ein Anfänger in dem 
Gebiet.

Beste Grüße

Stefan
Gast #5005629
Lesenswert?

Hi

>Dort steht unter Vorteile : 1-Wire Bus
>(Sensor ID, Reihenschaltung möglich). Hab ich etwas falsch verstanden?

Ja. Das was du gelesen hast, steht beim DS1820.

Abgesehen davon würde ich nur den Original Datenblättern trauen.

MfG Spess
Gast #5005688
Lesenswert?

Stefan309 schrieb:
> immer freundlich bleiben ok :-) Ja ist ja gut da steht Communication
> Process: Serial Interface (Single-Wire Two-Way). So und was machen wir
> nu in Richtung automatisieren?

gar nichts, denn, wie weiter im Datenblatt nicht (zu finden ist), würde 
man dazu eine eineindeutige ID benötigen...

Bin doch freundlich und versuche dich in die richtige Vorgehensweise zu 
"schubsen" --> RTFM
Gast #5005707
Lesenswert?

Alles klar Meister. Hmm also ein anderer Gedanke.. Ist es möglich den 
Raspberry Pi beizubringen, dass sobald gewisse GPIO Pins belegt sind 
eine Aktion ausgeführt wird? Dazu müsste man ja nur die Belegung einmal 
abscannen und tadaaa Problem gelöst :-) ... Meinungen und Kritik??
Gast #5005770
Lesenswert?

Stefan309 schrieb:
> Ist es möglich den
> Raspberry Pi beizubringen, dass sobald gewisse GPIO Pins belegt sind
> eine Aktion ausgeführt wird? Dazu müsste man ja nur die Belegung einmal
> abscannen und tadaaa Problem gelöst :-) ... Meinungen und Kritik??

...und warum nicht einen Temperatur-/Luftfeuchtigkeits-Sensor verwenden, 
der busfähig ist?
Gast #5005799
Lesenswert?

Weil ich hier den SunfounderKit mit Anzahl > 30 Sensoren hab und so wie 
es aussieht diese alle nicht Bus Fähig sind :-) Also eine Alternative 
wäre da sehr gut. Ja ich weiß ich hätte mich besser informieren sollen 
aber damals wollte ich das ja noch gar nicht um Plug & Play 
erweitern....

@Lothar ich glaub das bringt mich jetzt aus dem Konzept gibt es da 
Beispiele für??
Niemals geb ich auf!!
#5005840
Lesenswert?

> Ist es möglich den
> Raspberry Pi beizubringen, dass sobald gewisse GPIO Pins belegt sind
> eine Aktion ausgeführt wird? Dazu müsste man ja nur die Belegung einmal
> abscannen und tadaaa Problem gelöst :-) ... Meinungen und Kritik??

Dein Sensor unterstützt eine Checksum. Du könntest also periodisch eine 
Liste von Pins abfragen (d.h. den im Datasheet spezifizierten 40-bit 
Dialog ausführen) und die Checksum prüfen.
Gast #5006895
Lesenswert?

51c schrieb:
> ...wusste gar nicht, dass man keine C-Programme für einen Raspberry
> schreiben kann, wieder etwas dazugelernt ;-)

Der Frager hat es aber doch in Python angefangen, vermutlich auf Linux 
:-)

Wobei wohl das Linux für Latenz sorgen wird, egal ob in Python oder in C
#5007013
Lesenswert?

Bit-Banging für das langsame und kurze DHT11-Protokoll sollte mit C 
(Userland) völlig unkritisch sein.

Bit-Banging auf dem Pi wird ab ca. 1us Signalen (pro Level) und mit 
zunehmender Länge der Signalfolge kritisch. Timerabfrage und 
Leveländerunge benötigen im Mittel ca. 100ns. Man benötigt aber mehrere 
(mindestens 2) Timerabfragen pro Edge und ein bisschen C-Code (der auch 
mal auf einen 160ns Cache Fault laufen kann).

Sollte es einmal zu Verzögerungen kommen, kann man bei vielen 
Protokollen den Dialog einfach wiederholen. Das gleich gilt, wenn das OS 
dazwischenfunkt. Die Grenze ist bspw. bei der WS2812b  Ansteuerung 
erreicht (ein paar LEDs geht gerade noch so, wobei da schon viele Retrys 
notwendig sind).
Gast #5007141
Lesenswert?

Mikro 7. schrieb:
> Bit-Banging auf dem Pi wird ab ca. 1us Signalen

Unter Linux. Daher wurde ja schon auf ein RTOS BASIC verwiesen (pico: 
ziemlich verbreitet, ähnlich BASCOM, sehr einfach). Es gibt auch noch 
ein Bare Metal Pascal (Ultibo). Bare Metal in C ist hingegen schon ein 
ziemlicher Aufwand. Damit treten aber z.B. auch keine PWM Glitches auf.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren