Der Luftfeuchte-Sensor DHT11 misst relative Luftfeuchtigkeit und Temperatur, und sendet diese als digital codiertes Signal an einen Microcontroller, wozu bloß eine Datenleitung benötigt wird. Ausserdem kostet das Teil nur 80ct oder so bei chinesischen Händlern. Das ist so ein blaues Kästchen mit Löchern drin, Es ist als Arduino-Zusatzteill beliebt. Wer den Sensor mit einem 16 Microcontroller von Microchip betreiben möchte (PIC24F , DIC30F ) kann die folgende in ASM30 geschriebene Ausleseroutine verwenden. Die File läuft auf meiner Hardware einwandfrei.
Auch wer geistig noch nicht
so abgebaut hat, wie ich, braucht vermutlich etliche Stunden, um so
eine File selber zu schreiben und ans Laufen zu bringen. Man braucht
noch die p30F4011.gld und die p30F4011.inc -file, die fügt man
zum Projekt hinzu sowie diese dht11.s -Datei, buildet das mit MPLAB
IDE als release und brennt es in einen DSPIC30F4011 mit der üblichen
Grundbeschaltung und 4 LED. Für einen anderen Prozessor muss man
die Bezeichnungen in der File und die Portauswahl eben entsprechend
ändern. Das Auslese-Programm lässt sich auch als
Subroutine irgendwo einbringen, wo ASM30 läuft. Wer überhaupt
mit ASM30 klarkommt wird keine Probleme damit haben, zumal ja auch
alles gründlich kommentiert ist. Der Code ist nicht
„relocatable“ , man muß ihn also von Hand
relozieren, was aber keine Mühe machen sollte. Man kann dann mit
den ausgelesenen Werten machen, was man will. Der 4011-Controller
hat den Vorteil, dass es den (bei Reichelt) auch in DIP gibt, also in
großem bequem zu lötendem Gehäuse.
Im hier
gegebenen Auslieferungszustand schaltet das Modul eine LED ein, wenn
Luftfeuchte über 55% ist und eine andere LED bei Temperaturen
über 26Grad. (Die Stelle suchen, wo #55 und #26 im Programm
stehen, so einfach ist das dann.)
DHT11
Routine als Source-file für ASM30