Nettigo dodanie grzałki do czujnika luftdaten

#41

Pytanie o czujnik SHT30 , w opisie napisano że on bezpośrednio steruję grzałką bez użycia ESP, za pomocą wyjścia “alert”, tzn że pomiary z tego czujnika nie są używane w programie.
W jaki sposób jest programowany SHT30, po przez i2c z ESP ?

#42

Dokładnie tak. Logika SHT się tym zajmuje.

Firmware ma dostęp do tych danych i wysyła je do internetu jak każde inne odczyty. Wyświetla je też w panelu u na LCD.

Jest prosty przez I2C. A logikę alertu ustawia się przy inicjalizacji. I później SHT sobie sam tego pilnuje zupełnie niezależnie od tego co robi ESP. Polecam datasheet od SHT3x. Tam wszystko jest ładnie opisane.

#43

Dzięki za szczegółową odpowiedź , przeglądałem dokumentacje ale nie kumam , przejrzę źródła programu , to powinno rozwiać wątpliwości

#44

Tak wygląda inicjacja HECA w firmware

bool initHECA() {

	debug_out(F("Trying HECA (SHT30) sensor on 0x44"), DEBUG_MIN_INFO, 0);
	heca.begin(0x44);
	if (heca.periodicStart(SHT3XD_REPEATABILITY_HIGH, SHT3XD_FREQUENCY_1HZ) != SHT3XD_NO_ERROR) {
		debug_out(F(" ... not found"), DEBUG_MIN_INFO, 1);
		debug_out(F(" [HECA ERROR] Cannot start periodic mode"), DEBUG_MIN_INFO, 1);
		return false;
	} else {
		// temperature set, temperature clear, humidity set, humidity clear
		if (heca.writeAlertHigh(120, 119, 63, 60) != SHT3XD_NO_ERROR) {
			debug_out(F(" [HECA ERROR] Cannot set Alert HIGH"), DEBUG_MIN_INFO, 1);
		}
		if (heca.writeAlertLow(-5, 5, 0, 1) != SHT3XD_NO_ERROR) {
			debug_out(F(" [HECA ERROR] Cannot set Alert LOW"), DEBUG_MIN_INFO, 1);
		}
		if (heca.clearAll() != SHT3XD_NO_ERROR) {
			debug_out(F(" [HECA ERROR] Cannot clear register"), DEBUG_MIN_INFO, 1);
		}
		return true;
	}
}

Kluczowe jest tutaj jest

heca.writeAlertHigh(120, 119, 63, 60)

Te wartości oznaczają: temperature set, temperature clear, humidity set, humidity clear
Czyli w jakiej temperaturze ma być włączana grzałka, w jakiej wyłączana (zauważ że przedział jest wpisany odwrotnie aby taki warunek nie mógł zaistnieć, no chyba że grzałka chłodzi). Zaś jeżeli chodzi o wilgotność to włącz w 63% wyłącz jak będzie 60%.

To ustawienia górnego przedziału. Dolny przedział jest z kolei ustawiony na (heca.writeAlertLow(-5, 5, 0, 1) co oznacza że grzałka się włączy poniżej -5C bez względu na wilgotność a wyłączy w 5C. Chodzi o to aby SDS011 pracował w zakresie temperatur, który jest sprecyzowany w datasheet. Ta opcja w teorii może powodować problem w przypadku gdy jest umiarkowanie wilgotno, a jest mroźno. Teoretycznie ciepłe powietrze może się skondensować na czujniku. Teoretycznie, bo zazwyczaj ten przedział temperatur wiąże się z dużą wilgotnością powietrza. W każdym razie przy dużych mrozach bardziej zależy nam na tym aby czujnik nie umarł niż na idealnym odczycie pyłu.

Niemniej dotychczasowe testy pokazują, że przez umieszczenie SDS011 w bliskiej odległości ESP8266 w miarę zamkniętej obudowie obudowa czujnika ma wyższą temperaturę niż otoczenie o te kilka stopni. Z kolei przy duuuużych mrozach, powietrze jest już ekstremalnie suche.

Tyle logiki - czyt. pokrętnego tłumaczenia.

#45

Właśnie przeglądałem już źródła , wszystko jasne , użyta biblioteka chyba jako jedyna umożliwia ten bajer .
Bardzo dziękuje za rozjaśnienie wątpliwości

#46

Przed dodaniem biblioteki do kodu przejrzałem możliwości wszystkich jakie są dostępne. I to prawda. Tylko ta obsługuje wyjście alert. Ma ładnie połapane błędy, które może zwrócić czujnik. I bez problemu obsługuje całą rodzinę SHT3x czyli SHT30, SHT31 i SHT35. 31 jest już bardzo dokładnym czujnikiem, a 35 to po prostu kosmos. Podejrzewam że 30, 31 i 35 na etapie produkcji to jeden i ten sam czujnik. Na etapie testów są sortowane na odpowiednie partie w zależności jak dobre parametry mają. Ponadto dodanie obsługi SHT3x jako zewnętrznego czujnika to teraz już banał. Bo to ta sama biblioteka tylko inny adres: 0x45. Co znaczy że trzeba linię adresową SHT3x podciągnąc do VCC a nie do GND tak jak ma to miejsce w hecy. W niedalekich planach chcemy wypuścić combo sensor z SHT31 i czymś co mierzy ciśnienie (prawdopodobnie BMP280) plus może jakieś VOC. BME680 aż się prosi… ale binarny blob od boscha do liczenia AIQ dyskwalifikuje ten sensor w projekcie.

#47

Kiedy można się spodziewać dostępności samego modułu heca bo reszta już czeka :grin:

#48

Moduł już jest dostępny w takiej postaci:

https://nettigo.pl/products/nettigo-air-monitor-heca-kit-komora-grzalki-ptc-z-modulem-sterujacym

lub takiej:

#49

Ten zestaw mnie nie interesuje , tylko sama zmontowana płytka

Pozdrawiam Dariusz Szymański

#50

Cześć,
Ja dopiero zaczynam przygodę z SDS011.
Stworzyłem swój zestaw od podstaw i do podgrzania powietrza używam bloku wodnego do którego przykleiłem grzałkę.
Do sterowania grzałką używam espeasy która załącza się na minutę przed pomiarem gdy wilgotność wzrośnie do 50% wilgotności.
Dam znać czy ma to sens :slight_smile:

#51

Witam, wczoraj złożyłem do kupy całość, wraz z płytką HECA i grzałką.
Właczam zasilanie - czuć że grzałka zaczyna grzać aż do pierwszego pomiaru - zakładam że to normalne.
Po pierwszym odczycie - mam dane z HECA wilgotność ok 50% - ale nadal czuję że grzałka jakby “trochę” grzała.
Czy ona tuż przed pomiarem się też włącza jak wentylator na SDS? to by tłumaczyło dlaczego jest ciągle trochę ciepła.

#52

SHT30 po inicjalizacji sam powinien dbać o to kiedy grzałka ma się włączać.

#53

w takim razie jakieś przypuszczenia dlaczego po włączeniu zasilania grzałka się grzeje aż do pierwszego odczytu ? i dlaczego potem po dłuższym czasie nadal jest cieplejsza ?

#54

Domyślnie jeżeli SHT30 nie zostanie zainicjalizowany po podłączeniu zasilania grzałka jest w stanie włączonym. Pozwala to na używanie HECA w trybie ciągłego grzania w urządzeniach bez wsparcia FW. Odczyty nie mają tu nic wspólnego. Inicjalizacja jest dokonywana przy uruchomieniu sensora zaraz po procedurze auto update. I do jej zakończenia będzie pracowała grzałka.

#55

Dzięki za info.
Sytuacja sama się rozwiązała. Działa jak powinno.

#56

dla potwierdzenia:
image
image

pięknie pracuje.