Naciśnij ESC, aby zamknąć

Home Assistant: Instalacja czujnika BME280 poprzez ESPHome

Spis treści

Cześć!

Inteligentne rozwiązania domowe stają się coraz bardziej popularne, oferując wygodę, oszczędność energii i lepszą kontrolę nad naszym otoczeniem. Jednym z narzędzi, które ułatwia tworzenie takich systemów, jest ESPHome – potężna platforma oparta na układach ESP. Pozwala ona na programowanie różnych czujników i urządzeń, aby zyskać pełną kontrolę nad inteligentnym domem.

W dzisiejszym poradniku skorzystamy z ESPHome do stworzenia prostej, ale niezwykle przydatnej stacji pogodowej na balkon. Wykorzystamy do tego czujnik BME280, który umożliwi pomiar temperatury, wilgotności i ciśnienia atmosferycznego. Dzięki temu będziesz mógł na bieżąco monitorować warunki pogodowe w najbliższym otoczeniu.

Tworzenie stacji pogodowej przy użyciu ESPHome jest nie tylko praktyczne, ale także stanowi doskonałą okazję do nauki podstaw programowania systemów domowej automatyki. Krok po kroku przeprowadzimy przez cały proces – od konfiguracji środowiska, poprzez podłączenie czujnika, aż po wizualizację danych na przykładowym interfejsie.

Gotowy? Zapnij pasy bezpieczeństwa, bo czas wprowadzić nieco inteligencji do twojego domu! Zaczynajmy przygodę z ESPHome i stacją pogodową na balkonie. 🚀

Czym jest ESP8266 NodeMCU?

ESP8266, płytkaESP8266 NodeMCU to niewielka, ale niezwykle wszechstronna płytka rozwojowa oparta na popularnym układzie ESP8266 firmy Espressif. Wyposażona w zintegrowany moduł Wi-Fi działający w standardzie 802.11 b/g/n, umożliwia łatwe podłączenie do istniejących sieci bezprzewodowych i komunikację z innymi urządzeniami przez Internet.

Sercem płytki jest 32-bitowy procesor Tensilica L106 o częstotliwości 80-160 MHz oraz 64 KiB pamięci instrukcji i 96 KiB pamięci danych. NodeMCU posiada wbudowany konwerter USB-UART (CP2102), dzięki czemu można ją w prosty sposób podłączyć do komputera i zaprogramować przy użyciu Arduino IDE lub innego środowiska.

Kluczową zaletą jest obecność aż 17 wyprowadzeń GPIO (General-Purpose Input/Output), które można swobodnie wykorzystać jako cyfrowe wejścia/wyjścia lub przypisać im inne funkcje, takie jak I2C, SPI, UART itp. To pozwala na komunikację i sterowanie wszelkiego rodzaju czujnikami, wyświetlaczami i urządzeniami wykonawczymi.

Pomimo kompaktowych wymiarów i niskiej ceny, ESP8266 NodeMCU ma ogromny potencjał w projektach DIY oraz Internetu Rzeczy dzięki dużym możliwościom, niskim kosztom i doskonałemu wsparciu społeczności.

Czym jest ESPHome?

ESPHome, ikona

ESPHome to potężne, open source’owe środowisko programistyczne stworzone specjalnie z myślą o urządzeniach opartych na popularnych mikro-kontrolerach ESP8266 i ESP32. Jego głównym celem jest ułatwienie tworzenia inteligentnych urządzeń z zakresu Internetu Rzeczy (IoT), które można następnie w pełni zintegrować i kontrolować za pośrednictwem platformy Home Assistant.

Konfiguracja urządzeń w ESPHome odbywa się poprzez przyjazne pliki w formacie YAML, które pozwalają na definiowanie działania różnych komponentów, czujników, wyświetlaczy czy elementów wykonawczych. Dzięki temu programowanie staje się intuicyjne i przystępne nawet dla osób bez dogłębnej znajomości kodowania.

Oprócz natywnej integracji z Home Assistant, ESPHome wspiera również szeroką gamę gotowych modułów i bibliotek, pozwalając na obsługę wielu popularnych innych podzespołów. 

Przygotowanie

Zanim zanurzymy się w adaptację pilota do naszego systemu przy użyciu ESP8266 i ESPHome, warto odpowiednio się przygotować. Poniżej znajdziesz kluczowe kroki, aby rozpocząć projekt:

Upewnij się, że masz wszystkie niezbędne materiały:

  • Płytka ESP8266 NodeMCU (lub ESP32, jeśli zdecydujesz się na nowszy model),
    • Warto zweryfikować przed zakupem płytki ESP, czy zasięg sieci Wi-Fi dociera w miejsce naszej instalacji. Może się okazać, że będziemy potrzebować zakupić płytkę z możliwością podłączenia zewnętrznej anteny.
  • Waveshare BME280 – czujnik temperatury, ciśnienia oraz wilgotności (Link do sklepu),
  • Źródło zasilania dla płytki ESP8266 (5V DC),
  • Kostki elektryczne,
  • Puszka, w której schowamy płytkę (odporna na warunki atmosferyczne),
  • Klatka meteorologiczna, 
  • Przewody połączeniowe do wszystkich elementów.

Instalacja ESPHome w Home Assistant

Zainstaluj ESPHome w swoim środowisku Home Assistant, aby móc łatwo konfigurować i zarządzać urządzeniem ESP8266. Skorzystaj z dokumentacji ESPHome i postępuj zgodnie z instrukcjami.

Przygotowanie przestrzeni pracy

Zorganizuj miejsce pracy, gdzie będziesz montować układ. Upewnij się, że masz dostęp do narzędzi i jesteś w stanie swobodnie pracować nad projektem.

Krok 1 – VLAN IoT

Jako praktykę bezpieczeństwa zalecam utworzenie osobnej sieci dla urządzeń IoT, odseparowanej od głównej sieci domowej. W tym celu warto skorzystać z funkcji VLAN (Virtual Local Area Network), która pozwala na fizyczną separację urządzeń, takich jak te oparte na ESPHome, od innych urządzeń w domowej infrastrukturze.

Korzyści

Tworzenie dedykowanej sieci dla urządzeń IoT oferuje kilka korzyści:

  • Bezpieczeństwo: Odseparowanie urządzeń IoT od głównej sieci pomaga zminimalizować potencjalne ryzyko ataków. W przypadku ewentualnej kompromitacji urządzenia IoT, dostęp do głównej sieci domowej jest utrudniony.
  • Kontrola Komunikacji: Utworzenie osobnej sieci pozwala na bardziej precyzyjną kontrolę, kto i jak komunikuje się z urządzeniami IoT. Można zdefiniować reguły komunikacyjne, które pozwalają jedynie konkretnym urządzeniom (na przykład serwer czy wirtualna maszyna z Home Assistant) na interakcję z urządzeniami IoT.
  • Optymalizacja Ruchu Sieciowego: Oddzielenie ruchu urządzeń IoT od ruchu głównej sieci może przyczynić się do optymalizacji wydajności sieci.

Wdrożenie

W celu implementacji takiej separacji, warto skonsultować się z dokumentacją i ustawieniami routera. W przypadku Home Assistant, korzystając z odpowiednich reguł firewalla na routerze, można dostosować dostęp do urządzeń IoT. To podejście wprowadza warstwę dodatkowego bezpieczeństwa do naszej infrastruktury smart home.

Krok 2 – Instalacja i konfiguracja firmware do pracy z Home Assistantem

Kiedy już uruchomiony zostanie dodatek ESPHome na serwerze Home Assistant, czas przejść do dodania pierwszego urządzenia opartego na ESPHome.

Podłączenie do komputera

  • Podłącz płytkę przy użyciu przewodu USB do swojego komputera. Ważne jest, aby korzystać z przewodu USB z transmisją danych, ponieważ wiele tanich przewodów dostarcza jedynie zasilanie.
    • Dla pewności co do poprawnego działania, zalecam używanie przeglądarki Chrome lub Edge (następuje przekazywanie transmisji danych za pośrednictwem portu COM do przeglądarki przy użyciu WebSerial).

Home Assistant

  • Po zakończeniu tych kroków, zaloguj się do Home Assistant,

Home Assistant, ekran logowania

  • Z panelu bocznego przechodzimy do zakładki ESPHome,
  • Następnie klikamy New Device,

ESPHome, Button New device

  • Po wybraniu opcji dodania nowego urządzenia, możemy napotkać komunikat o niekompatybilności przeglądarki, szczególnie w przypadku przeglądarek, które nie obsługują WebSerial. Alternatywnie, możemy również natrafić na komunikat informujący o braku bezpiecznego połączenia (HTTPS) do dashboardu. W takiej sytuacji możemy kliknąć Continue, aby kontynuować proces dodawania urządzenia.

ESPHome, New device

  • W kolejnym oknie wprowadzamy nazwę dla naszego urządzenia (może to być utworzona przez nas nazwa lub alias) oraz dane naszej sieci Wi-Fi.
    • Wprowadzanie danych do sieci Wi-Fi jest konieczne jedynie przy pierwszym dodawaniu urządzenia. Kolejne dodawane urządzenia oparte o ESPHome nie będą wymagały tego kroku.
  • Następnie, aby ESPHome zainstalował firmware na płytce ESP8266 kliknij przycisk Connect.

ESPHome, Installation

  • Po chwili w przeglądarce pojawi się okno wyboru urządzenia do komunikacji po porcie szeregowym. Znajdź swoje urządzenie, którego nazwa powinna zawierać CP210x UART, i kliknij Connect.
  • Następnie zaczekaj, aż firmware zostanie zainstalowany na płytce.

Zakończenie procesu

Po pomyślnej instalacji powinieneś otrzymać komunikat potwierdzający zakończenie procesu. Na dashboardzie pojawi się także Twoje urządzenie z opisem ONLINE. To oznacza, że płyta została poprawnie skonfigurowana i jest gotowa do dalszych działań.

Krok 3 – Wgraj kod w ESPHome

W tej sekcji wgramy teraz dodamy odpowiednie wpisy dotyczące implementacji czujnika. Skopiuj niezbędne elementy kodu do swojej instalacji.
esphome:
  name: esp01-loggia

esp8266:
  board: esp01_1m

# Enable logging
logger:

web_server:
  port: 80

# Enable Home Assistant API
api:
  encryption:
    key: "HERE WILL BE THE CODE GENERATED BY ESPHOME"

ota:
  password: "HERE WILL APPEAR THE PASSWORD GENERATED BY ESPHOME"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp01-Loggia Fallback Hotspot"
    password: "1234567890"

captive_portal:

i2c:
  - id: bus_a
    sda: 5
    scl: 4
    scan: true

binary_sensor:
  - platform: status
    name: "Status"
    id: status_sensor

sensor:
  - platform: bme280_i2c
    temperature:
      name: "Ambient temperature"
      oversampling: 16x
    pressure:
      name: "Atmospheric pressure"
    humidity:
      name: "Air humidity"
    address: 0x77
    update_interval: 300s
    i2c_id: bus_a
  - platform: wifi_signal
    name: "Wi-Fi Signal"
    update_interval: 60s
    icon: mdi:wifi  
  • Czekamy, aż oprogramowanie zostanie skompilowane i wgrane na płytkę. Jeśli proces instalacji przebiegnie pomyślnie, w podglądzie logów zostanie Ci pokazane podsumowanie konfiguracji Twojej płytki.

Krok 4 – Podłącz wszystkie elementy do płytki

Pamiętaj, aby wykonywać te czynności z zachowaniem najwyższych standardów bezpieczeństwa elektrycznego. Upewnij się, że wszystkie połączenia są odpowiednio zabezpieczone.

Instalacja

Zacznijmy od podłączenia czujnika BME280 do płytki ESP8266. BME280 komunikuje się za pomocą interfejsu I2C, dlatego musimy połączyć odpowiednie piny:

  • Pin D1 (GPIO5) na ESP8266 to linia SCL (Serial Clock)
  • Pin D2 (GPIO4) na ESP8266 to linia SDA (Serial Data)

Połącz następująco:

  • Pin SCL czujnika BME280 z pinem D1 (GPIO5) na ESP8266
  • Pin SDA czujnika BME280 z pinem D2 (GPIO4) na ESP8266
  • Połącz masy (GND) czujnika i ESP8266
  • Podłącz zasilanie (VCC) czujnika do 3.3V na ESP8266

Końcowa weryfikacja

Po skonfigurowaniu ESPHome i połączeniu czujnika BME280, czas na weryfikację działania naszej stacji pogodowej. Podłącz płytkę ESP8266 do zasilania i poczekaj na uruchomienie. W logach ESPHome powinny pojawić się komunikaty informujące o wykryciu czujnika BME280 i odczytach temperatury, wilgotności i ciśnienia atmosferycznego.

Możesz teraz przetestować działanie stacji, obserwując zmiany parametrów pogodowych lub wyświetlając je na wybranym przez Ciebie interfejsie, np. przez przeglądarkę internetową lub aplikację mobilną współpracującą z Home Assistant.

Dużo więcej możliwości

Ikona zapowiadająca artykuł do płytki ESP - SzlabanWarto wspomnieć, że ta sama płytka ESP8266, którą wykorzystaliśmy do stworzenia stacji pogodowej, może posłużyć również do innych zastosowań w inteligentnym domu. Jednym z nich jest sterowanie szlabanem osiedlowym.

Wyobraź sobie możliwość otwierania i zamykania szlabanu za pomocą smartfona lub asystenta głosowego – to nie tylko wygoda, ale również dodatkowe bezpieczeństwo. Wykorzystując ESPHome i moduł przekaźnika, można w prosty sposób zintegrować szlaban z systemem automatyki domowej.

Jeśli interesuje Cię ten temat, polecam zapoznać się z moim poradnikiem dotyczącym instalacji i konfiguracji zdalnego sterowania szlabanem osiedlowym przy użyciu ESP8266 i ESPHome. Znajdziesz tam wszystkie niezbędne informacje krok po kroku.

Krok 5 – Reverse proxy na Synology przy pomocy Nginx Proxy Manager

Czy korzystasz z Synology i chcesz usprawnić dostęp do swojego serwera Home Assistant? Oto szybki przewodnik krok po kroku, jak skonfigurować logowanie przy użyciu nazwy domeny i subdomeny, na przykład ha.xyz.com, zamiast wprowadzania adresu IP. Wszystko to możesz osiągnąć za pomocą Docker Compose w Portainerze.

👉 Sprawdź teraz i przygotuj swoje środowisko do kolejnych usprawnień!

Dzięki temu, korzystając z nazwy domeny, zamiast adresu IP, upraszczasz proces logowania do swojego serwera Home Assistant na Synology

Krok 6 – Dodawanie urządzenia do Home Assistant

  • W sekcji powiadomień Home Assistant powinna pojawić się informacja, że nasz serwer automatyki domowej wykrył nowe urządzenie,
  • Przejdź do Ustawień, a następnie do Integracji i urządzeń
  • Nowe urządzenie będzie opatrzone błękitną ramką. Zatwierdzamy nowe urządzenie do integracji.
  • Ustaw obszar, gdzie będzie znajdować się dane urządzenie. W naszym przypadku będzie to Loggia.
  • Gratulacje! Osiągnąłeś ten etap, co oznacza, że sukcesywnie przeszedłeś przez proces konfiguracji. Aby sprawdzić działanie nowego urządzenia, możesz bezpośrednio przejść do niego i z poziomu Home Assistant kontrolować parametry czujnika. 🚀

Home Assistant - Czujnik BME280 poprzez ESPHome

Jeśli masz dodatkowe pytania dotyczące konfiguracji, śmiało zostaw komentarz pod tym artykułem lub skontaktuj się ze mną bezpośrednio. Chętnie odpowiem na wszelkie wątpliwości i pomogę rozwiązać ewentualne problemy. Twoje pytania mogą pomóc w ulepszeniu tego poradnika dla innych użytkowników.

Dodatkowe materiały i informacje

W celu dalszego zgłębienia tematu i uzyskania szczegółowych informacji, polecam sprawdzenie poniższych linków. Są one wartościowymi źródłami, które zostały wykorzystane podczas opracowywania tego poradnika.

Przeczytaj także

Filip Chochół

Filip Chochol runs two blogs: personal “chochol.io” and together with his girlfriend “Warsaw Travelers” about travel. He specializes in IT resource management and technical support, and has been active in the field of cyber security awareness for almost two years. A proponent of open-source technologies, he previously worked in the film and television industry in the camera division (2013-2021). After hours, he develops interests in smart homes and networking.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *


This site uses Akismet to reduce spam. Learn how your comment data is processed.