Feuchten Keller trocknen

Begonnen von picass, 13.07.2021, 15:47:07 CEST

⏪ vorheriges - nächstes ⏩

picass

Die Vorarbeit für ein weiteres Projekt hat begonnen: die Entfeuchtung eines Kellers. Dies soll via Lüftung erreicht werden, wobei 2 Lüfter für guten Durchzug sorgen. Deren Laufzeit soll u.a. abhängig sein von dem Wassergehalt sowohl der Luft im Keller als auch der angesaugten Außenluft. Also müssten zwei elektronische Hygrometer dies messen und ein PIC das auswerten.

Als Fühler habe ich mit einem Typ von Conrad begonnen. Da sitzt auf einer Seite einer kleinen Platine der eigentliche Fühler, auf der anderen eine Ansteuer-Schaltung mit LM324. Eine Tabelle vermittelt die Luftfeuchtewerte (LF), welche zu der Ausgangsspannung eines der OP's im LM324 passen. Der Bereich geht bis knapp über 90 % LF. Erstes Anliegen: der Versuch einer Kalibirierung. Dazu findet sich im Inet vielfach das immer gleiche Verfahren der Herstellung einer gesättigten Salzlösung. Also z.B. ein Einweckglas nehmen, etwa 100 mL Wasser rein, dann etwa 40 Gr Kochsalz – rsp. soviel Salz, dass Weiteres nicht mehr gelöst wird. Das Hygrometer – hier die Platine – sicher oberhalb der Salzlösung z.B. auf einer Unterlage ablegen, und das Glas obenrum luftdicht mit Folie verschließen. Nach 4 Stunden soll dann eine LF von 74 % sicher anliegen und den Taupunkt exakt widerspiegeln.
Obwohl alle sonstigen Parameter wie die 5 V-Betriebsspannung für das IC und die Lufttemp von 21 ° C peinlichst genau eingehalten wurden, änderte sich die Spannung von 2,95 V ansteigend auf 3,04 (was alleine schon ungut zuviel wäre), sackte dann auf 2,91 Volt und über Nacht auf 2,75 Volt ab. Laut Tabelle wäre das ein Änderung von anfangs ca. 85 % auf 90 % nach den 4 Stunden und dann über Nacht runter auf ca. 72 %. Diese Änderungen wären bei Sturm im Wasserglas erklärbar, aber nicht wirklich überzeugend bei äußerster Einhaltung aller Parameter.
Es sollte möglichst ein Sensor mit Analog-Spannung sein, kein I²C oder sonstiger serieller Ausgang. Anregungungen?
Grüße, picass

picass

#1
Hatte geschlampt! :(  Die Temp der Salzlösung war wohl nicht ausreichend genau eingestellt. Das hatte ich nun nachgeholt und in der Tat bringt schon eine Abweichung von nur 1° C eine Verfälschung des Wertes. Bei genauer Soll-Temp von 21° C stellt sich ein Wert von 2,73 Volt ein, der 74% LF entsprechen müsste. Um das Prozedere noch zu verbessern, hatte ich einen Tipp aus dem Inet aufgenommen, einen Sturm im Wasserglas zu provozieren, sprich: einen Minilüfter dort drinnen zu installieren, der vor einer Messung für Durchmischung der Luft sorgen soll. Wirft man den an, steigt die LF von 74% auf 76%.
Nach exaktem Einstellen der Temperatur und ohne Lüftung hält sich das Ergebnis stabil bei 2,736 Volt entsprechend 74% und das ist ein recht gutes Ergebnis. Es soll ja keine Messstation betrieben werden, sondern nur ein sinnvoller Bereich für das Schalten einer Lüftungsanlage ermöglicht werden. Keine Werbung, nur der Hinweis für Interessierte: der Sensor läuft beim großen ,,C" unter der Bezeichnung HMZ-435CHS1 mit der Best.-Nr. 1170520 und kostet dort 12,60 €.
Grüße, picass

picass

#2
Mein feines Keller-Trocknungs-Projekt ist von der ruppigen Realität kalt, vor allem aber nass überholt worden. Wenige Stunden nach dem Einstellen meines obigen Beitrages entlud sich u.a. an meinem Wohnort ein Starkregen, ne, eine Sindflut, welche/r in der gesamten Region Dutzende von Häusern zerstörte, bei Hunderten die Keller flutete, und leider auch den Tod eines Menschen forderte. Nun ist im Keller keine PIC-Filigrantechnik angesagt, sondern robustes Wasser-Management, will sagen: einen Keller aus dem teilgefluteten und nassen Zustand in einen einigermaßen brauchbaren zu versetzen. Da wir hier in einem Computer-Forum sind, nur sehr kurze Hinweise: So etwas Ähnliches hatte ich schon mal vor drei Jahren erlebt, als ich für ein Haus die Verwaltung übernahm, in welchem mehrere Kellerwände quatsch-nass waren, der Putz deswegen quadratmeter-weise abgefallen war und sich Schimmel breit gemacht hatte.
Abhilfe damals – natürlich nach dem Entfernen alles Flüssigem auf dem Boden: An zwei gegenüberliegenden Positionen in  - hoffentlich vorhandenen – Lüftungsöffnungen, in meinem Haus waren es zwei Kellerfenster, je einen großen Tischlüfter bei Aldi für je 20 € gekauft und über 2 Monate lang 24 Stunden täglich laufen lassen, wass für heiße Lüftung sorgte - die Heizung war dabei kostenlos: die Hitzeperiode im Sommer half, danach war der Keller rappeltrocken und blieb es auch.....bis zum vorgestrigen Wassersturz, bei welchem das Wasser geländebedingt in Lichtschächte gelaufen war.
Also nun erst wieder Wasser raus, wobei auch eine niedliche Tauchpumpe für 20 € half. Die lief nur mit 12 Volt, schaufelte aber über einen Schlauch mit 1 cm Innendurchmesser mehr Wasser weg, als jemand einen Eimer im Keller füllen und die Treppe hoch und draußen ausleeren kann.
Also jetzt eine wetterbedingte Projekt-Pause, aber keine Bange, das PIC-Projekt der Entlüftung ist dadurch ja unerwartet weit aktueller geworden, und ich arbeite auch schon an Platine und Programm.
Nasse Grüße, picass

picass

#3
Es dauert bei meinen Projekten immer, aber irgendwann..... ;)
Gestern kamen die Platinen, heute ist das neue Hygro-Board fertig bestückt. Das Prog fehlt noch, aber das wird schon. Mit diesem Board ist der Umstieg vom PIC18F14K22 auf den PIC18F25K14 eingeleitet – dem Nico mit seinem PIC18-Grundlagenboard sei für die Anregung gedankt.
An dieses Board werden also zwei kleine Platin'chen mit je einem Hygro- und Thermo-Sensor angeschlossen. Angesteuert werden dann zwei Lüfter, welche – ist noch nicht entschieden, wahrscheinlich werden es zwei PC-Gehäuselüfter-Paare werden. Das Netzteil ist auch neu ,,entwickelt" und dem Bedarf exakt angepasst. Oberhalb des Trafos sieht man einen Last-Ausgang für die Ansteuerung eines Lüfter-Paares. Das zweite Paar, welches im Gebäude weiter weg liegt, erhält eine eigene Netz-Platine.

picass

#4
Dieses Projekt hat sich einen ergiebigen Winterschlaf gegönnt. Lag u.a. auch daran, dass in den Wintermonaten die Feuchtigkeit im Keller des genannten Hauses keinen dräuenden Anlass für Aktionen ergab. Per Zufall entdeckte ich über die Osterfeiertage ein ebensolches Projekt, welches von der Redaktion der Zeitschrift ,,make" aus dem Heise-Verlag umgesetzt wurde. In der ,,make" Vers. 1/22 ist der erste Teil des Projektes beschrieben, weswegen ich mir das mal als Download gegönnt hatte. Dort werden auch innen wie außen je ein Thermo- und ein Hygromodul betrieben, für eine Anzeige ist ein LCD-Display vorhanden – is klar, einen Lüfter brauchts eh' – und die Abarbeitung des Progs übernimmt ein Arduino Nano. Dessen Prog incl. Bibliotheken gibts komplett als Download via Github.

Ist aber auch klar, dass ich aus diversen, gerade auch grundsätzlichen Erwägungen heraus nun nicht beabsichtige, mich in die Arduinowelt einzuarbeiten. Das Trockenlegen des Kellers soll natürlich ein PIC übernehmen. Aber die eine oder andere Anregung darf schon sein. Insbesondere war die Maker-Redaktion in einem Punkt deutlich weiter: das Kriterium der Auswertung der ermittelten Daten läuft bei denen auf die Ermittlung der Taupunkte für innen und außen hinaus. Ist es draußen trockener, wird gelüftet. Die Taupunkte werden aus diversen Formeln berechnet und gettz gehts zur Sache.
Wer keine Angst vor mathematischen Formeln hat, den bitte ich um einen Blick auf meinen Auszug aus dem öffentlich zugänglichen Vortrag über die verwendeten Formeln. Meine Frage  für den Anfang: Ist einem schlichten 8-bit-PIC wie einem PIC18F25K22 die Bewältigung dieser Rechnungen zuzutrauen? Wobei es aus meiner Sicht ziemlich Wurscht ist, ob der sich 5 Minuten nur mit der Formel beschäftigt. Aber ist das grundsätzlich ,,drin"?
Grüße, picass

Der nachfolgende Test ist ein Auszug aus dem Beitrag über die verwendeten Formeln und unter dem Link:  make-magazin.de/x2yt    zu finden. Der Autor für die Formeln ist Vladimir Poliakow, siehe auch: ,,Luftentfeuchter mit Rasip steuern" in  ,,make" 6/21 S.18

Beginn Auszug:
----------------------------------------
Bezeichnungen:
r = relative Luftfeuchte
T = Temperatur in °C
TK = Temperatur in Kelvin (TK = T + 273.15)
TD = Taupunkttemperatur in °C
DD = Dampfdruck in hPa
SDD = Sättigungsdampfdruck in hPa

Parameter:
a = 7.5, b = 237.3 für T >= 0
a = 7.6, b = 240.7 für T < 0 über Wasser (Taupunkt)
a = 9.5, b = 265.5 für T < 0 über Eis (Frostpunkt)

R* = 8314.3 J/(kmol*K) (universelle Gaskonstante)
mw = 18.016 kg/kmol (Molekulargewicht des Wasserdampfes)
AF = absolute Feuchte in g Wasserdampf pro m3 Luft

Formeln:
    1. SDD(T) = 6.1078 * 10^((a*T)/(b+T))
    2. DD(r,T) = r/100 * SDD(T)
    3. r(T,TD) = 100 * SDD(TD) / SDD(T)
    4. TD(r,T) = b*v/(a-v) mit v(r,T) = log10(DD(r,T)/6.1078)
    5. AF(r,TK) = 10^5 * mw/R* * DD(r,T)/TK; AF(TD,TK) = 10^5 * mw/R* * SDD(TD)/TK

picass

Wenn ich das jetzt nicht falsch sehe - könnte sein, das Kaffee-Trinken steht erst noch bevor - , dann läuft das gesamte Formelwerk auf die Berechnung des Bruches raus:
4.199,3942 / (T + 273,15)  Wobei der Nenner die aktuelle Temp in Kelvin enthält, und mein Beispiel unten mit 17°C angenommen wurde.

Das gäbe den Bruch 4.199,3942 / 290,15
Das wiederum könnte man ohne Verlust runden auf 4.200 / 290
Diese Rechnung gälte es letztlich, zu bewerkstelligen.
Nimmt man einen Fehler in Kauf in der Größe von max. 0,5°C, dann ginge auch 420 / 29

Das ergäbe über alles eine Taupunkt-Temp von 14,48°C
Grüße, picass

picass

Nach dem Kaffeetrinken:
Nicht richtig gesehen! :(
Grüße, picass

picass

Mathematiker an die Front!
Gibt es eine Formel, nach welcher man den dekadischen Logarithmus, also den zur Basis 10 "zu Fuß", also in hatten Fällen mit Papier und Bleistift berechnen kann? Natürlich sollte die Formel ohne Funktionen auskommen, die nur in Hochsprachen verfügbar sind, letztlich soll sie ja der PIC in Assembler berechnen.
Grüße, picass

Peter

Wenn du nur ganze Zahlen haben willst, dann teile z.b log1000 immer durch 10.
Das machst du solange bis du auf 0 kommst. Die Anzahl wie oft du geteilt hast
ist dan dein Ergebniss. Hier also 3.

picass

Zu ermitteln wären als Beispiele die Logarithmen zur Basis 10 von diesen Zahlen:
0,6031 oder 3,6835 oder 10,8668  :(
Habe bislang im Inet nur ein Misch-Verfahren gefunden. Da wird zunächst aus einer Tabelle für die nächst niedrige "ganze" Zahl der Logaritmus ausgelesen und dann interpoliert. Das könnte zu einer Lösung führen. Habe das aber noch nicht versucht, in ein Programm umzusetzen.... per Papier klappt es. Ist aber halt keine Formel. Wobei es ja eh' fraglich ist, ob die sich in Assembler überhaupt bearbeiten lassen würde.
Mist, mein Mathezeit am Gimmy ist viel zu lange her, früher konnte ich das vermutlich mal. Leider sind meine entsprechenden Mathe-Bücher schon längst entsorgt..... und im Inet findet man massenhaft "automatische Rechner", aber keiner hinterlegt eine griffige Formel.
Grüße, picass

picass

Fundamentaler Rückschlag in meinem Projekt: seit Tagen versuche ich, für das Microgehäuse des als vermeintlich gut ausgeschauten Sensors SHT31-ARP, dem Sensor für Temp und Feuchte von Sensirion, welcher zwecks des DFN-Gehäuses nur für Reflow-Lötung vorgesehen ist, ein Layout zu erstellen, welches doch händisches Löten ermöglicht. Auf dem Weg zu diesem Layout bin ich auch recht weit gekommen, aber nu' dieses hier: beim Einsortieren der Rechnung fiehl mir - heute ! - auf, dass diese nicht für den bestellten -ARP - Typ, also den mit analogem Ausgang ausgestellt ist, sondern für den - DIS -Typ, den mit I²C-Ausgang!
Voll der Horror, das kann ich nicht! Habe nun schon derart viel Zeit in die Verwendung der analogen Version gesteckt, dass allein dadurch der Ärger auch quadratisch zunimmt.
Da müsste jetzt ein Wunder passieren und ein fertiges Programm in Assembler zu Auswertung via I²C erscheinen, und mir zudem die Einarbeitung in diese Übermittlungsart sehr schnell gelingen, ansonsten....
Da ich an Wunder nicht glaube, werde ich versuchen, die gekauften Sensoren zu retournieren. Was ein Mist! Da möchte man nach langem Bemühen endlich wieder einen Erfolg erarbeiten, und dann sowas! Voll die Deprise!
Grüße, picass

vloki

#11
Hi, (lange hier nichts mehr von mir hören lassen)

ein sehr ausführliches Tutorium für I2C mit PIC18xxK22 in Englisch wäre z.B. das hier:
(sorry, bekomme keinen funktionsfähigen Link hin)
Guckst du Youtube->I2C coding tutorial in assembly for PIC18 microcontrollers


Das sollte eigentlich genügen um dich abzuschrecken ;-)

Falls nicht - für den SHT21 hatte ich vor einiger Zeit mal ein rudimentäres Programm geschrieben.
Natürlich in "C". Bringt dir wenig aber hier mal der Main-Code, damit du die Komplexität abschätzen kannst:
void main(void)
{
    int8_t temp_int, temp_dec;
    uint16_t valT, valRH;
    float temperature;

//--------------------------------------------------------------------- __init()
    OSCCONbits.IRCF = IRCF_16MHZ; OSCTUNEbits.PLLEN = 0;

    LCD_Init();
    LCD_ConstTextOut(0,0," SHT_21 ");
    LCD_ConstTextOut(1,0," ??.?? C");

    ANSELCbits.ANSC3 = ANSELCbits.ANSC4 = 0;    // I2C pins
    SSP1ADD = 39;                               // I2C baudrate 100kHz
    initSHT21(MODE_RH12_T14_BIT | DIS_OC_HEATER | DIS_OTP_RELOAD);
//----------------------------------------------------------------------- main()
    wrSHT21(CMD_TRIG_T);
    __delay_ms(TMAX_14BIT);

    while(1){
        rdSHT21((uint8_t *)(&valT));
        wrSHT21(CMD_TRIG_T);
        temperature = -46.85 + (175.72 * valT)/65536;
        if(temperature > 0){
            temp_int = (int)temperature;
            temp_dec = (int)((temperature - temp_int)*100);
            LCD_ValueOut_00(1,1,temp_int,2);
            LCD_ValueOut_00(1,4,temp_dec,2);
        }
        __delay_ms(TMAX_14BIT); 
    }
}

Verwendet natürlich Funktionen, welche ich mir speziell für den SHT21 geschrieben habe (im Anhang).
Auch ohne C-Kenntnisse müssten diese sich recht einfach nach Assembler konvertieren lassen,
da wirklich nur sehr einfache Statements wie if/else/while Verwendung finden die mehr oder weniger selbsterklärend sind:

Dazu bräuchte man dann noch Bibliotheksfunktionen und Makros, welche ich aus der anfangs im XC8
enthaltenen Bibliothek vom C18 Compiler zusammen kopiert habe. (Auch im Anhang)

MPLABX  XC8  KiCAD

picass

Zitat von: vloki am 08.06.2022, 14:20:25 CESTHi, (lange hier nichts mehr von mir hören lassen)
Sehe ich auch so! >:(
>:D
Aber schön zu sehen, dass es dich noch gibt. Danke für deine Beispiel-Programme. Habe mal kurz reingeschaut, aber erst kurz. Dies deshalb, weil ich gerade wie ein Halm im Wind schwanke, ob ich im Bereich des I²C überhaupt weiter gehen sollte, was ja überhaut erstmal auf ein Einarbeiten rausliefe.
Das Paket ist gepackt und mit Adressaufkleber versehen! Drinnen liegen die drei bei Conrad gekauften Exemplare des SHT21-DIS, von denen ich annahm - siehe oben - , ich hätte die analoge Version bestellt. Was da schief gelaufen ist, man weiß es nicht, man weiß es nicht. Retoure ist schon fast auf dem Weg, muss nur noch auf meinen E-Roller und zur Post.
Wenn ich mir das Datenblatt zu der aus meiner Sicht irre aufwendigen Kommunikation mit so'nem Sensor-Typ beschaue mit Checksum und zahlreichem weiteren Gewusel, dann ist mir nicht klar, ob ich diesen Aufwand stemmen kann. Und auch will. Zudem spuckt ja auch dieses Teil nur eine 16-bit-Zahl aus! Auch hier muss - genauso wie beim analogen Brüderchen - erst eine Umrechen-Formel zum Einsatz kommen, und die ist komplizierter als die für das Brüderchen. Da stellt sich mir die Sinnfrage für den Aufwand.

Kann sein, dass ich diesen Aufwand nicht wirklich einschätzen kann, aber wenn ich da eine Woche brauchen sollte, während bei dem analogen Gerät nur noch 'ne Stunde für das Einsetzen der Formel ins Programm nötig ist, dann..... ich weiß es nicht, etc.. :(
Tut mir leid für deine Bemühungen, dieser Beitrag soll keine Unhöflickeit darstellen und natürlich würde ich gerne vermeiden, dass du dich ärgern musst zwecks deiner Bemühungen. Es fällt mir halt schwer, das alles in Assembler umzusetzen, rsp. da immer wieder von Grund auf gänzlich mich einarbeiten zu müssen. Dazu kommt, dass meine Frau mich bedrängt, endlich die Steuererklärung in Angriff zu nehmen....
Vloki, das Leben ist nicht immer einfach.... , nicht mal das Micro-Prozessieren! :(
Grüße, Bernd 



Schnellantwort

Name:
Verifizierung:
Bitte lassen Sie dieses Feld leer:

2 Beeren und 2 Bananen. Welche Farbe hat die Banane ?:
Tastenkürzel: Alt+S Beitrag schreiben oder Alt+P für Vorschau