Spisu treści:

Temperatura HRV do OpenHAB przez ESP8266 (przykład kodu seryjnego!): 3 kroki
Temperatura HRV do OpenHAB przez ESP8266 (przykład kodu seryjnego!): 3 kroki

Wideo: Temperatura HRV do OpenHAB przez ESP8266 (przykład kodu seryjnego!): 3 kroki

Wideo: Temperatura HRV do OpenHAB przez ESP8266 (przykład kodu seryjnego!): 3 kroki
Wideo: Honda HR-V Verificando água do radiador e do reservatório 2024, Listopad
Anonim
Temperatura HRV do OpenHAB przez ESP8266 (przykład kodu seryjnego!)
Temperatura HRV do OpenHAB przez ESP8266 (przykład kodu seryjnego!)
Temperatura HRV do OpenHAB przez ESP8266 (przykład kodu seryjnego!)
Temperatura HRV do OpenHAB przez ESP8266 (przykład kodu seryjnego!)
Temperatura HRV do OpenHAB przez ESP8266 (przykład kodu seryjnego!)
Temperatura HRV do OpenHAB przez ESP8266 (przykład kodu seryjnego!)

HRV - Bezprzewodowe do OpenHAB

Ta instrukcja jest przeznaczona specjalnie dla tych, którzy mają system HRV (recyrkulacja ogrzewania) – chociaż części płytki drukowanej, konfiguracja Openhab lub kod Arduino (takie jak odczyt danych szeregowych TTL) mogą być przydatne do własnych projektów lub dobrze służyć do nauki. Zakłada, że masz rozsądną wiedzę na temat Arduino IDE i tego, czym jest układ ESP8266.

Wstęp

Poniżej przedstawiono, jak zbudować ESP8266, który łączy się z systemem HRV i wysyła temperatury dachu i domu, temperaturę panelu sterowania i prędkość wentylatora za pośrednictwem komunikatów MQTT do OpenHAB. Jest przeznaczony do pracy z płytą ESP8266-01 (chociaż powinien działać z dowolną wersją ESP8266 3,3 V) Jeśli masz podobny system typu HRV od alternatywnego dostawcy, musisz określić, czy dane są wysyłane jako szeregowe TTL, a jeśli tak, w jakiej strukturze są przesyłane dane.

OpenHAB i Mosquitto

Kod ESP8266 został napisany specjalnie do pracy z OpenHAB (oprogramowanie do automatyzacji domu o otwartym kodzie źródłowym) i brokerem MQTT, takim jak Mosquitto (protokół typu subskrypcja/publikacja wiadomości, który jest lekki i doskonały do komunikacji między urządzeniami). akronimy cię przerażają, są naprawdę bardzo proste w użyciu, gdy poznasz, jak działają. Używam OpenHAB na komputerze NTC C. H. I. P (9 USD), jednak wiele osób używa Raspberry Pi lub podobnego. Ten samouczek zakłada, że zaimplementowałeś OpenHAB (jeśli potrzebujesz pomocy przy konfigurowaniu OpenHAB, zapoznaj się z tym doskonałym artykułem ze strony makeuseof). Musisz również pobrać i zainstalować Mosquitto (broker MQTT) i powiązane wiązanie OpenHAB. Możesz zainstalować to w innym miejscu w swojej sieci, jednak większość ludzi po prostu instaluje to na tym samym komputerze, co OpenHAB, aby było to proste.

Aby zainstalować Mosquitto, kliknij ten link, a następnie wybierz typ używanego urządzenia i postępuj zgodnie z instrukcjami. Ponieważ C. H. I. P uruchamia Debiana (Jessie), możesz postępować zgodnie z instrukcjami Raspberry Pi, jeśli używasz C. H. I. P dla swojego urządzenia automatyki domowej (należy również pamiętać, że najlepiej jest zmienić konfigurację CHIP, aby uruchomić z CLI. Są na to instrukcje tutaj)

Po uruchomieniu OpenHAB i Mosquitto należy przygotować Arduino IDE dla ESP8266 i kodu. Najpierw musisz dodać bibliotekę „PubSubClient”. W Arduino IDE, z menu przejdź do Sketch, Include Library, Manage Libraries W polu wyszukiwania filtrów wpisz PubSubClient, a następnie zaznacz wynik wyszukiwania i kliknij, aby zainstalować (w chwili pisania tego tekstu najnowsza wersja to 2.6.0). należy również dodać płytę ESP8266 do Arduino IDE, co można zrobić, postępując zgodnie z instrukcjami tutaj

Co mi to daje?

Jak wspomniano wcześniej, ten projekt pozwoli Ci zobaczyć dach panelu sterowania HRV, dom, temperaturę panelu sterowania i prędkość wentylatora w GUI OpenHAB (w czasie rzeczywistym!) Zdjęcia pokazują, jak wygląda z mojego iPhone'a, a także wykresy, które dostanie się przez wiercenie w różnych temperaturach.

Aby uzyskać wykresy, musisz również zainstalować i skonfigurować wiązanie RRD4J (jest to bardzo proste) To pozwoli ci kliknąć „Dom” lub „Dach” i uzyskać historię temperatur HRV dla każdego w przeszłości godzinę, dzień lub tydzień (lub dłużej, jeśli zmienisz konfigurację, aby dopasować) Pokazane obrazy są w stopniach Celsjusza i wyraźnie jest to zima na półkuli południowej, kiedy to zrobiłem!

Dodatkowo stworzyłem widok OpenHAB, który pokazuje porównanie temperatury zewnętrznej (dostarczanej przez dodatek Wiązanie pogody, w moim przypadku przy użyciu Wunderground) z temperaturą dachu i domu, klikając opcję „Sterowanie” (zdjęcie pokazuje wykres z wykreślono temperaturę domu, dachu i na zewnątrz). Planuję wykorzystać te dane w regulaminie, aby włączyć urządzenia grzewcze zgodnie z wymaganiami. Po prostu dodaj element Pogoda do adresu URL obrazu w pliku mapy witryny i umieść go na tym samym wykresie (np. …items=houseTemp, roofTemp, weatherTemp…)

Krok 1: Potrzebne części / Montaż

Potrzebne części/montaż
Potrzebne części/montaż
Potrzebne części / Montaż
Potrzebne części / Montaż
Potrzebne części/montaż
Potrzebne części/montaż

Będziesz potrzebować następujących części

  • Rozgałęźnik RJ11 (rozdziela sygnał ze sterownika na dachu, do centrali i ESP8266)
  • Trochę kabla taśmowego i wtyk RJ11 (do prowadzenia przewodów od rozdzielacza do ESP8266)
  • ESP8266-01 (powinny działać inne wersje 3.3V)
  • Konwerter poziomów logicznych TTL (do zmiany danych z 5V -> 3,3V)
  • Regulator napięcia AMS1117 3,3V (lub podobny, do zmiany napięcia z HRV 5V -> 3,3V do zasilania ESP8266)
  • Dioda Schottky'ego 1N5817 (z jakiegoś powodu pomogła zatrzymać resetowanie panelu sterowania HRV po włączeniu zasilania ESP)
  • Rezystor 10 kiloomów (rezystor podciągający między regulatorem napięcia 3.3 a ESP CH_PD)
  • Kondensator 10V 10uF (lub podobny, aby wygładzić i ustabilizować moc przychodzącą z HRV)
  • Kondensator 10V 1uF (lub podobny, aby wygładzić i ustabilizować moc wychodzącą do ESP)
  • Opcjonalny przycisk suwaka do programowania ESP (w przeciwnym razie należy ręcznie przeciągnąć GPIO0 do GND, aby zaprogramować)
  • Adapter FTDI (do programowania ESP, konwertuje USB na szeregowy)

Zmontuj zgodnie ze schematem

Obraz płytki prototypowej pokazuje, jak należy zmontować części. Zwróć uwagę, że po kablu taśmowym wyprowadzonych jest 6 styków ze sterownika HRV na suficie:

Piny 1 i 6 to 5 V VCC

Piny 2 i 5 to GND

Piny 3 i 4 to dane.

Wystarczy użyć pinów 1, 2, 3 i 6 (1 i 6 VCC zasila ESP8266 i wysoką stronę konwertera logicznego TTL, 2 to wspólna masa, a 3 do odczytu danych szeregowych TTL)

Potrzebny rozdzielacz będzie po prostu rozdzielaczem RJ11, po prostu upewnij się, że jest to rozdzielacz, w którym styki są proste (np. pin 1 idzie do pinu 1, pin 2 do pinu 2 itd.) Zauważ, że dodatkowe styki żeńskie (jak pokazane na zdjęciach) służą do podłączenia FTDI w celu późniejszego przeprogramowania ESP, a pokazany przełącznik przełącza go w tryb "programowania". Są one opcjonalne, ale zalecane (np.: jeśli zmienisz hasło WiFi, ponieważ punkt dostępu WiFi i hasło są na stałe zaprogramowane w kodzie, który będziesz musiał przesłać po zbudowaniu ESP8266)

Krok 2: Przesyłanie kodu i testowanie

Przesyłanie kodu i testowanie
Przesyłanie kodu i testowanie
Przesyłanie kodu i testowanie
Przesyłanie kodu i testowanie
Przesyłanie kodu i testowanie
Przesyłanie kodu i testowanie
Przesyłanie kodu i testowanie
Przesyłanie kodu i testowanie

Zmiany w kodzie

Alternatywny link do pobrania kodu Arduino TUTAJ

Otwórz w Arduino IDE, upewnij się, że płyta ESP jest zainstalowana, a także PubSubClient i że wybrałeś płytę ESP8266 (Narzędzia, Płyta, Ogólna płyta ESP8266) Edytuj kod i zmień nazwę i hasło AP WiFi oraz adres IP Twój broker MQTT (są to jedyne rzeczy, które powinieneś zmienić), jak pokazano poniżej. Kliknij przycisk „Zweryfikuj”, aby upewnić się, że kompiluje się poprawnie, a następnie upewnij się, że wybrano właściwy port COM (Narzędzia, Port) i prześlij kod do swojego ESP8266. Istnieje wiele artykułów na temat tego, jak to zrobić, nie będę tutaj wymyślał koła na nowo.

// Wi-Fi

const char* ssid = "tutaj_twój_identyfikator_wifi"; const char* hasło = "twoje_hasło_wifi_tutaj"; // Adres IP brokera MQTT MQTT_SERVER(192, 168, 222, 254);

Testowanie MQTT

Do testów możesz pozostawić podłączony adapter FTDI i otworzyć Serial Monitor w Arduino IDE, powinieneś zobaczyć komunikaty drukujące informacje o temperaturze w konsoli. Jeśli musisz rozwiązać problemy z przychodzącymi wiadomościami MQTT z ESP8266 do brokera MQTT, na serwerze Mosquitto uruchom jedno z następujących poleceń, aby zasubskrybować przychodzące wiadomości:

mosquitto_sub -d -t openhab/hrv/status

Powinieneś widzieć przychodzące wiadomości PUBLISH przychodzące z ESP8266 co około 30 sekund z liczbą „1” (co oznacza „żyję”) Jeśli widzisz stałe „0” (lub w ogóle nic), oznacza to brak komunikacji. Gdy zobaczysz nadchodzący numer 1, oznacza to, że ESP8266 komunikuje się z brokerem MQTT (wyszukaj „MQTT Last Will and Testament”, aby uzyskać więcej informacji o tym, jak to działa, lub zobacz ten naprawdę dobry wpis na blogu)

Możesz teraz śledzić dane dotyczące temperatury i prędkości wentylatora, zasubskrybuj jedno z poniższych. Należy jednak pamiętać, że kod wysyła dane temperatury tylko w przypadku zmiany danych. Śledzi ostatnią temperaturę, prędkość wentylatora itp., które zostały wysłane, więc możesz nie widzieć informacji przychodzących od razu.

mosquitto_sub -d -t openhab/hrv/rooftemp

mosquitto_sub -d -t openhab/hrv/housetemp

mosquitto_sub -d -t openhab/hrv/controltemp

mosquitto_sub -d -t openhab/hrv/fanspeed

Wskazówka: zasubskrybuj powyższą temperaturę panelu sterowania, a następnie naciśnij przycisk temperatury na samym panelu sterowania, powinieneś zobaczyć nowe ustawienie temperatury.

Kiedy przystąpisz do lutowania, płytka drukowana o wymiarach 3 cm x 7 cm ładnie pasuje do puszki podtynkowej za panelem sterowania HRV. Polecam robić to tylko wtedy, gdy jest to plastikowa skrzynka podtynkowa, ponieważ metalowa skrzynka może zakłócać sygnały Wifi lub ewentualnie zwierać połączenia na płytce PCB. Alternatywnie można wydrukować plastikową obudowę 3D, w której można zamontować tablicę.

Krok 3: Zmiany w OpenHAB

Konfiguracja OpenHAB

Wymagane zmiany OpenHAB są następujące:

plik „przedmioty”:

/* Numer HRV hrvStatus "Status HRV [MAP(status.map):%d]" (gHRV) { mqtt="<[mqttbroker:openhab/hrv/status:state:default]" }Numer houseTemp "Dom [%.1f C]" (gHRV) { mqtt="<[mqttbroker:openhab/hrv/housetemp:state:default]" }Numer houseTemp_Chart_Period "Okres wykresu"Numer roofTemp "Dach [%.1f C]" (gHRV) { mqtt=" <[mqttbroker:openhab/hrv/rooftemp:state:default]" }Numer roofTemp_Chart_Period "Okres wykresu"Numer controlTemp "Kontrola [%.1f C]" (gHRV) { mqtt="<[mqttbroker:openhab/hrv/controltemp: state:default]" }String fanSpeed "Prędkość wentylatora [%s]" (gHRV) { mqtt="<[mqttbroker:openhab/hrv/fanspeed:state:default]" }*/

plik „mapa witryny”:

Frame label="HRV Temperature" {Text item=roofTemp {Frame { Switch item=roofTemp_Chart_Period label="Period" mappings=[0="Godzina", 1="Dzień", 2="Tydzień"] Image url="https://localhost:8080/rrdchart.png" refresh=6000 visible=[roofTemp_Chart_Period==0, roofTemp_Chart_Period=="Niezainicjowany"] Image url="https://localhost:8080/rrdchart.png" refresh=30000 widoczność= [roofTemp_Chart_Period==1] Image url="https://localhost:8080/rrdchart.png" refresh=30000 visible=[roofTemp_Chart_Period==2] } } Tekst item=houseTemp { Frame { Przełącz item=houseTemp_Chart_Period label="Okres " mapowania=[0="Godzina", 1="Dzień", 2="Tydzień"] Image url="https://localhost:8080/rrdchart.png" refresh=6000 widoczność=[houseTemp_Chart_Period==0, houseTemp_Chart_Period =="Niezainicjowany"] Image url="https://localhost:8080/rrdchart.png" refresh=30000 widoczność=[houseTemp_Chart_Period==1] Image url="https://localhost:8080/rrdchart.png" refresh =30000 widoczność=[houseTemp_Chart_Period==2] } } Tekst item=controlTemp { Ramka { Przełącz item=Połącz ed_Chart_Period label="Okres" mappings=[0="Godzina", 1="Dzień", 2="Tydzień"] Image url="https://localhost:8080/rrdchart.png" refresh=6000 widoczność=[Combined_Chart_Period ==0, Combined_Chart_Period=="Niezainicjowany"] Image url="https://localhost:8080/rrdchart.png" refresh=30000 widoczność=[Combined_Chart_Period==1] Image url="https://localhost:8080/ rrdchart.png" refresh=30000 widoczność=[Combined_Chart_Period==2] } } Tekst item=fanSpeed }

Dołączone są dodatkowe ikony dla OpenHAB (kliknij prawym przyciskiem myszy i zapisz obrazy)

Zapisz te pliki w folderze..\OpenHAB Home\webapps\images na serwerze OpenHAB

Zalecana: