Szkic do nodeMcu na esp8266 do garażu.

SOYER
Posts: 840
Joined: Wed Aug 10, 2022 12:29 pm
Location: Kryry

Post

Ja wiem, że to wszystko można zrobić na GUIGeneric ale może komuś się przyda.
Szkic do urządzenia garażowego, steruje bramą, sygnalizuje stan bramy, włącza oświetlenie po pełnym otwarciu, po zmroku do wschodu. Ustawiane w cloud.
Możliwość ustawienia danych sieci i klienta )po naciśnięciu przycisku i wejście w tryb konfiguracji) przez WebInterface, możliwość aktualizacji firmware również przez sieć, pomiar temperatury w garażu.
Czyli 4 przekaźniki, 2 krańcówki, tact switch i jeden czujnik DS18B20.
W razie pytań lub wskazówek proszę pisać.
Szkic:

Code: Select all

#include <SuplaDevice.h>
#include <supla/sensor/DS18B20.h>
#include <supla/control/relay.h>
#include <supla/control/button.h>
#include <supla/sensor/binary.h>
#include <supla/network/esp_wifi.h>
#include <supla/device/status_led.h>
#include <supla/storage/littlefs_config.h>
#include <supla/network/esp_web_server.h>
#include <supla/network/html/device_info.h>
#include <supla/network/html/protocol_parameters.h>
#include <supla/network/html/status_led_parameters.h>
#include <supla/network/html/wifi_parameters.h>
#include <supla/device/supla_ca_cert.h>
#include <supla/events.h>
#include <supla/storage/eeprom.h>
#include <ESP8266HTTPUpdateServer.h>                     //OTA

Supla::Eeprom eeprom;
Supla::ESPWifi wifi;
ESP8266HTTPUpdateServer httpUpdater;                  //OTA

#define kran_otw_gar 2   //D4
#define kran_zamk_gar 14   //D5
#define ONE_WIRE D1
#define STATUS_LED_GPIO LED_BUILTIN
#define BUTTON_CFG_RELAY_GPIO 4       //D2


Supla::LittleFsConfig configSupla;
Supla::Device::StatusLed statusLed(STATUS_LED_GPIO, true); // inverted state
Supla::EspWebServer suplaServer;
Supla::Html::DeviceInfo htmlDeviceInfo(&SuplaDevice);
Supla::Html::WifiParameters htmlWifi;
Supla::Html::ProtocolParameters htmlProto;
Supla::Html::StatusLedParameters htmlStatusLed;

void setup() {
  Serial.begin(9600);
  httpUpdater.setup(suplaServer.getServerPtr(), "/update");
  
   auto buttonCfgRelay =
    new Supla::Control::Button(BUTTON_CFG_RELAY_GPIO, true, true);

  buttonCfgRelay->configureAsConfigButton(&SuplaDevice);
 // configure defualt Supla CA certificate
  SuplaDevice.setSuplaCACert(suplaCACert);
  SuplaDevice.setSupla3rdPartyCACert(supla3rdCACert);
  
  auto re1 = new Supla::Control::Relay(D6, false);
  auto re2 = new Supla::Control::Relay(D7, false);  

  new Supla::Sensor::DS18B20(ONE_WIRE);
  new Supla::Sensor::Binary(kran_zamk_gar, true);   //D5
  new Supla::Sensor::Binary(kran_otw_gar, true);//D4 pullUp

  SuplaDevice.begin();          // Authorization key
}

void loop() {
   SuplaDevice.iterate();

}
Last edited by SOYER on Mon Jan 29, 2024 6:15 am, edited 1 time in total.
bicker
Posts: 469
Joined: Tue Feb 02, 2016 8:18 am

Post

Witam, ciekawe
właśnie przymierzałem sie do zrobienia sterowania w garazu
dzieki za projekt

podesłałbyć wygenerowan wsad do Wemosa

dzięki
SOYER
Posts: 840
Joined: Wed Aug 10, 2022 12:29 pm
Location: Kryry

Post

Cześć, a co mam Ci wygenerować? Przecież jest wklejony kompletny kod. Wystarczy skompilować pod odpowiednią płytkę, ew. pozmieniać piny i wgrać. Wemos?, starczy Ci tych pinów?
User avatar
wojtas567
Posts: 2216
Joined: Sun Apr 03, 2016 7:16 pm
Location: Olsztyn

Post

Już nie aktualne :)
Last edited by wojtas567 on Mon Jan 29, 2024 4:29 pm, edited 1 time in total.
Pozdrawiam
Wojtek
SOYER
Posts: 840
Joined: Wed Aug 10, 2022 12:29 pm
Location: Kryry

Post

wojtas567 wrote: Sun Jan 28, 2024 8:23 pm Usuń hasło do swojej sieci wifi :)
Dzięki, zapomniałem. Ona dość ograniczony zasięg ma, ale to nieostrożność była.
Fryga
Posts: 54
Joined: Tue Oct 13, 2020 5:57 pm
Location: Mińsk Mazowiecki

Post

SOYER wrote: Sat Jan 20, 2024 2:46 pm Ja wiem, że to wszystko można zrobić na GUIGeneric ale może komuś się przyda.
Szkic do urządzenia garażowego, steruje bramą, sygnalizuje stan bramy, włącza oświetlenie po pełnym otwarciu, po zmroku do wschodu. Ustawiane w cloud.
Możliwość ustawienia danych sieci i klienta )po naciśnięciu przycisku i wejście w tryb konfiguracji) przez WebInterface, możliwość aktualizacji firmware również przez sieć, pomiar temperatury w garażu.
Czyli 4 przekaźniki, 2 krańcówki, tact switch i jeden czujnik DS18B20.
W razie pytań lub wskazówek proszę pisać.
Szkic:

Code: Select all

#include <SuplaDevice.h>
#include <supla/sensor/DS18B20.h>
#include <supla/control/relay.h>
#include <supla/control/button.h>
#include <supla/sensor/binary.h>
#include <supla/network/esp_wifi.h>
#include <supla/device/status_led.h>
#include <supla/storage/littlefs_config.h>
#include <supla/network/esp_web_server.h>
#include <supla/network/html/device_info.h>
#include <supla/network/html/protocol_parameters.h>
#include <supla/network/html/status_led_parameters.h>
#include <supla/network/html/wifi_parameters.h>
#include <supla/device/supla_ca_cert.h>
#include <supla/events.h>
#include <supla/storage/eeprom.h>
#include <ESP8266HTTPUpdateServer.h>                     //OTA

Supla::Eeprom eeprom;
Supla::ESPWifi wifi;
ESP8266HTTPUpdateServer httpUpdater;                  //OTA

#define kran_otw_gar 2   //D4
#define kran_zamk_gar 14   //D5
#define ONE_WIRE D1
#define STATUS_LED_GPIO LED_BUILTIN
#define BUTTON_CFG_RELAY_GPIO 4       //D2


Supla::LittleFsConfig configSupla;
Supla::Device::StatusLed statusLed(STATUS_LED_GPIO, true); // inverted state
Supla::EspWebServer suplaServer;
Supla::Html::DeviceInfo htmlDeviceInfo(&SuplaDevice);
Supla::Html::WifiParameters htmlWifi;
Supla::Html::ProtocolParameters htmlProto;
Supla::Html::StatusLedParameters htmlStatusLed;

void setup() {
  Serial.begin(9600);
  httpUpdater.setup(suplaServer.getServerPtr(), "/update");
  
   auto buttonCfgRelay =
    new Supla::Control::Button(BUTTON_CFG_RELAY_GPIO, true, true);

  buttonCfgRelay->configureAsConfigButton(&SuplaDevice);
 // configure defualt Supla CA certificate
  SuplaDevice.setSuplaCACert(suplaCACert);
  SuplaDevice.setSupla3rdPartyCACert(supla3rdCACert);
  
  auto re1 = new Supla::Control::Relay(D6, false);
  auto re2 = new Supla::Control::Relay(D7, false);  

  new Supla::Sensor::DS18B20(ONE_WIRE);
  new Supla::Sensor::Binary(kran_zamk_gar, true);   //D5
  new Supla::Sensor::Binary(kran_otw_gar, true);//D4 pullUp

  SuplaDevice.begin();          // Authorization key
}

void loop() {
   SuplaDevice.iterate();

}
Jak zarządzasz warunkiem ciemności tutaj w tym sketch'u? Widzę powoływane 2 przekaźniki ale nie widze ich warunkowania od światła. Moze coś masz podpięte pod sceny zdefiniowane np. otwieranie bramy?
Ale można pójść dalej:
(o) Nie zrobiłeś sobie lokalnego włącznika na wypadek padu modułu albo wifi.
(o) Nie zrobiłeś sobie np. czasowego odpalenia swiatla w garazu jak otwierasz bramę po samochod lub wjechałeś samochodem, np. przy wyjezdzaniu potrzebujesz swiatła na 2minuty a po wjechaniu na 5 minut.
(o) nie zintegrowałeś sobie z modułem np. odczytywania odległości do wspomagania parkowania

Sprawa komplikuje się jak garaz ma dwie bramy i oddzielnie zarządzasz swiatlem i krańcówkami, do tego otwierasz bramy na oścież w przypadku wykrycia dymu lub ognia :-)

ps. czegoś mi w tym kodzie brakuje (gdzie klucze AUTH i GUUID?)

Wiem wiem, mało czasu, ale po to masz ESP abyś mógł poprawiać kod zgodnie z potrzebami.
Nie zrobiłeś sobie
SOYER
Posts: 840
Joined: Wed Aug 10, 2022 12:29 pm
Location: Kryry

Post

Po kolei:
wiem kiedy ciemno bo ustawiłem reakcję na drugą krańcówkę, włącza światło po zachodzie, a przed wschodem,
mam lokalny włącznik fizyczny niezależny od esp, mam też radiówkę niezależną od włącznika fizycznego i esp,
nie mam podtrzymania światła po zamknięciu bramy, bo jak wyjadę to mi nie potrzebne, a jak wjadę to po zamknięciu świeci jeszcze lampaz napędu i światła z auta,
nie mam odczytywania odległości przy parkowaniu bo mam bardzo duży garaż , a samochody są wyposażone w takie czujniki,
mam jedną bramę garażową,
nie trzeba auth i guid bo to szkic z webinterface i OTA.
Dziękuję, że pomogłem. Urządzenie zbudowałem dla siebie, pod swoje wymagania.

Return to “Projekty użytkowników”