Modyfikacja przykładu WebInterface Arduino

Awatar użytkownika
veeroos
Posty: 271
Rejestracja: ndz mar 20, 2022 9:30 am
Lokalizacja: Głogów

Hej. Chciałbym małej pomocy. Tak jak w temacie. Przyklady z biblioteki Arduino przerobiłem prawie wszystkie, o dziwo chodzą :) . Czy mógłby mi ktoś podpowiedzieć, co musiałbym dodać, jaką komendę, aby moduł mi się zgłaszał do serwera pod moją nazwą, a nie esp32 lub esp8266. Czy mógłby mi ktoś podpowiedzieć też, czy można ten przykład zmodyfikować tak, aby w jakiś łatwy sposób dodać opcję resetu modułu z poziomu webserwera? Wiem, że mogę sobie wygenerować oprogramowanie w GUI Generic Builder i tam będę wszystko miał, ale chciałbym się pobawić i może w jakiś prosty sposób dodać te funkcje do programu.
Zamel Mew-01, Wemos D1 mini Pro + Ikea vindriktning + BME280, 3x - SonOff mini, 3x - SonOff Basic, 3xGosund SP111, SonOff S55, 2x GOSUND WB4
Awatar użytkownika
klew
Posty: 8184
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

Nazwę możesz ustawić tą metodą:
https://github.com/SUPLA/supla-device/b ... ice.h#L100

Trzeba wywołać przed metoda begin.

Odnośnie resetowania, to standardowo powinien być przycisk save&restart
Widzimy się na Supla Offline Party vol. 2 :!:
Awatar użytkownika
veeroos
Posty: 271
Rejestracja: ndz mar 20, 2022 9:30 am
Lokalizacja: Głogów

Dobra będę kontynuował tutaj. No więc tak dodałem w sekcji setup:
SuplaDevice.setName("Moja nazwa"); oczywiście przed SuplaDevice.begin();
No i tak urządzenie rozgłasza sieć wifi o nazwie takiej jaką ustawiłem, jak chcę dodać urządzenie do serwera poprzez aplikację, to aplikacja nie wykrywa modułu. Jak podłączę się poprzez webserwer do urządzenia i ustawię wszystkie parametry to urządzenie łączy się normalnie z serwerem. załączam kod może ktoś znajdzie co żle zrobiłem

Kod: Zaznacz cały

#define Dioda_Led 2
#define Przycisk_Konfiguracja 3
#define DHT1PIN 5
#define DHT1TYPE DHT11
#define RELAY_GPIO1 16
#define RELAY_GPIO2 14
#define RELAY_GPIO3 13
#define RELAY_GPIO4 0

#include <SuplaDevice.h>
#include <supla/network/esp_wifi.h>
#include <supla/control/relay.h>
#include <supla/control/button.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/sensor/DHT.h>
#include <supla/sensor/DS18B20.h>


// Choose where Supla should store roller shutter data in persistent memory
// We recommend to use external FRAM memory
#include <supla/storage/eeprom.h>
Supla::Eeprom eeprom;
// #include <supla/storage/fram_spi.h>
// Supla::FramSpi fram(STORAGE_OFFSET);

Supla::ESPWifi wifi;
Supla::LittleFsConfig configSupla;

Supla::Device::StatusLed statusLed(Dioda_Led, true); // inverted state
Supla::EspWebServer suplaServer;


// HTML www component (they appear in sections according to creation
// sequence)
Supla::Html::DeviceInfo htmlDeviceInfo(&SuplaDevice);
Supla::Html::WifiParameters htmlWifi;
Supla::Html::ProtocolParameters htmlProto;
Supla::Html::StatusLedParameters htmlStatusLed;

void setup() {

  Serial.begin(115200);
  SuplaDevice.setName("Sterownik");
  // Channels configuration
  // CH 1 - Relay

  auto r1 = new Supla::Control::Relay(RELAY_GPIO1);
  auto r2 = new Supla::Control::Relay(RELAY_GPIO2);
  auto r3 = new Supla::Control::Relay(RELAY_GPIO3);
  auto r4 = new Supla::Control::Relay(RELAY_GPIO4);
  auto buttonCfgRelay = new Supla::Control::Button(Przycisk_Konfiguracja, true, true);
  new Supla::Sensor::DHT(DHT1PIN, DHT1TYPE);
  new Supla::Sensor::DS18B20(12); //channel 1 czujnik kolektora gpio 12

  r1->getChannel()->setDefault(SUPLA_CHANNELFNC_LIGHTSWITCH);
  r2->getChannel()->setDefault(SUPLA_CHANNELFNC_LIGHTSWITCH);
  r3->getChannel()->setDefault(SUPLA_CHANNELFNC_POWERSWITCH);
  r4->getChannel()->setDefault(SUPLA_CHANNELFNC_POWERSWITCH);

  
  buttonCfgRelay->configureAsConfigButton(&SuplaDevice);

  // configure defualt Supla CA certificate
  SuplaDevice.setSuplaCACert(suplaCACert);
  SuplaDevice.setSupla3rdPartyCACert(supla3rdCACert);
 
  SuplaDevice.begin();
}

void loop() {
  SuplaDevice.iterate();
}
Zamel Mew-01, Wemos D1 mini Pro + Ikea vindriktning + BME280, 3x - SonOff mini, 3x - SonOff Basic, 3xGosund SP111, SonOff S55, 2x GOSUND WB4
Awatar użytkownika
Robert Błaszczak
Posty: 3970
Rejestracja: sob gru 22, 2018 8:55 pm
Lokalizacja: Zielona Góra
Kontakt:

Bo aplikacja dodaje tylko urządzenia o określonych nazwach.
Pozdrawiam
Robert Błaszczak


Moja prywatna strona: www.blaszczak.pl
Awatar użytkownika
veeroos
Posty: 271
Rejestracja: ndz mar 20, 2022 9:30 am
Lokalizacja: Głogów

Robert Błaszczak pisze: pt gru 09, 2022 5:46 pm Bo aplikacja dodaje tylko urządzenia o określonych nazwach.
Super dzięki, już działa jak zmieniłem nazwę :D.
A teraz jeszcze jakby sposób na FactoryReset ktoś dał przyklad😉. Oczywiście z poziomu webserwera 😉
Zamel Mew-01, Wemos D1 mini Pro + Ikea vindriktning + BME280, 3x - SonOff mini, 3x - SonOff Basic, 3xGosund SP111, SonOff S55, 2x GOSUND WB4
nebraska
Posty: 93
Rejestracja: czw gru 08, 2022 3:00 pm

Dołączam się do pytania. Z ciekawości na jaką nazwę zmieniłeś?
Też chciałbym się pobawić z konfigiem jeszcze dobrze nie kumam od niedawna zacząłem z Supla.
Chciałbym dodać do konfigu pola kluczy, żebym mógł wpisać sobie klucze powiadomień na surowym kodzie działa ale chciałbym mieć możliwość konfigu zmieniać klucze ponieważ w firmie potrzebuje użyć i czasami z konfigu zmieniać na szybko klucze. Fajnie by było jakby ktoś podarował przykładem kodu czy pomógł jak to ugryźć.
Awatar użytkownika
veeroos
Posty: 271
Rejestracja: ndz mar 20, 2022 9:30 am
Lokalizacja: Głogów

nebraska pisze: pt gru 09, 2022 7:03 pm Dołączam się do pytania. Z ciekawości na jaką nazwę zmieniłeś?
Też chciałbym się pobawić z konfigiem jeszcze dobrze nie kumam od niedawna zacząłem z Supla.
Chciałbym dodać do konfigu pola kluczy, żebym mógł wpisać sobie klucze powiadomień na surowym kodzie działa ale chciałbym mieć możliwość konfigu zmieniać klucze ponieważ w firmie potrzebuje użyć i czasami z konfigu zmieniać na szybko klucze. Fajnie by było jakby ktoś podarował przykładem kodu czy pomógł jak to ugryźć.
Nazwę dałem Supla- po myślniku swoją nazwę, kawałek mojego przykładowego kodu masz parę postów wyżej. Wszystko działa jak należy, brakuje mi tylko resetu, powtórne przytrzymanie przycisku configu działa jak save + restart
Zamel Mew-01, Wemos D1 mini Pro + Ikea vindriktning + BME280, 3x - SonOff mini, 3x - SonOff Basic, 3xGosund SP111, SonOff S55, 2x GOSUND WB4
nebraska
Posty: 93
Rejestracja: czw gru 08, 2022 3:00 pm

veeroos pisze: pt gru 09, 2022 8:41 pm
nebraska pisze: pt gru 09, 2022 7:03 pm Dołączam się do pytania. Z ciekawości na jaką nazwę zmieniłeś?
Też chciałbym się pobawić z konfigiem jeszcze dobrze nie kumam od niedawna zacząłem z Supla.
Chciałbym dodać do konfigu pola kluczy, żebym mógł wpisać sobie klucze powiadomień na surowym kodzie działa ale chciałbym mieć możliwość konfigu zmieniać klucze ponieważ w firmie potrzebuje użyć i czasami z konfigu zmieniać na szybko klucze. Fajnie by było jakby ktoś podarował przykładem kodu czy pomógł jak to ugryźć.
Nazwę dałem Supla- po myślniku swoją nazwę, kawałek mojego przykładowego kodu masz parę postów wyżej. Wszystko działa jak należy, brakuje mi tylko resetu, powtórne przytrzymanie przycisku configu działa jak save + restart
Dzięki za info.
Tak wiem ale ten przykład nic nie daje poza tym że masz tylko do wpisania nazwę, hasło, adres serwera Supli i email.
Trzeba mieć kod źródłowy żeby móc dodać jakaś listę dodatkowych pól. Nigdzie nie znalazłem źródła przykładu kodu z web serwer, szkieletu programu żeby móc dopisywać.
Awatar użytkownika
klew
Posty: 8184
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

veeroos pisze: pt gru 09, 2022 8:41 pm Nazwę dałem Supla- po myślniku swoją nazwę, kawałek mojego przykładowego kodu masz parę postów wyżej. Wszystko działa jak należy, brakuje mi tylko resetu, powtórne przytrzymanie przycisku configu działa jak save + restart
Krótkie wciśnięcie przycisku config powinno zrobić tylko restart modułu.
Długie przytrzymanie (trzymać aż się nie zresetuje - około 5s) powinno zresetować do ustawień fabrycznych i zrobić reset urządzenia. Po takim zabiegu powinno wejść automatycznie w tryb konfiguracyjny i mieć puste dane.

Jeśli działa tam coś inaczej, to poprawię.
Widzimy się na Supla Offline Party vol. 2 :!:
Awatar użytkownika
klew
Posty: 8184
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

nebraska pisze: pt gru 09, 2022 10:14 pm Tak wiem ale ten przykład nic nie daje poza tym że masz tylko do wpisania nazwę, hasło, adres serwera Supli i email.
Trzeba mieć kod źródłowy żeby móc dodać jakaś listę dodatkowych pól. Nigdzie nie znalazłem źródła przykładu kodu z web serwer, szkieletu programu żeby móc dopisywać.
WebInterface to przykład, w którym jest dodany "web server" i przykładowe pola - w kodzie są to elementy Supla::Html ( https://github.com/SUPLA/supla-device/b ... ce.ino#L71 ).

Wszystkie obecnie dostępne "elementy HTML" są tutaj:
https://github.com/SUPLA/supla-device/t ... twork/html

Wiem, że nie ma dokumentacji i nie ma przykładów. Postaram się coś dodać, ale dajcie mi na to kilka dni.
Widzimy się na Supla Offline Party vol. 2 :!:
ODPOWIEDZ

Wróć do „Pomoc”