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();
}