suplowa szkrzynka pocztowa

xzihen
Posty: 71
Rejestracja: sob lis 23, 2019 2:21 pm
Lokalizacja: Łódź

Witajcie, jakiś czas temu spodobał mi się bardzo temat na forum, w którym omawiana była suplowa skrzynka pocztowa. @klew pomógł mi wtedy dopieścić kod, ponieważ kod w tamtym temacie nie chciał się skompilować..., lecz dzisiaj gdy w końcu zabrałem się za wykonanie układu kod co prawda się kompiluj, lecz układ prawdopodobnie nie łączy się z suplą. Na stronie mojego acces point'a nie pojawia się żadne nowe urządzenie :( Dodam jeszcze, że nie wynika to z braku zasięgu bo nad układem pracuje nieopodal acces point'a.

Kod:

Kod: Zaznacz cały

#include <SuplaDevice.h>
#include <supla/network/esp_wifi.h>

#include <supla/control/button.h>
#include <supla/sensor/virtual_binary.h>

const char* ssid = "wlan-g";
const char* password = "******";

Supla::ESPWifi wifiInterface;

void setup() {
  Serial.begin(11520);
  wifiInterface.setSsid(ssid);
  wifiInterface.setPassword(password);

  char GUID[SUPLA_GUID_SIZE] = {0x2B,0xFF,0xE5,0x76,0x62,0x0A,0x92,0x49,0xA3,0xDC,0x8C,0xB9,0xE3,0x61,0xEB,0x5C};
  char AUTHKEY[SUPLA_AUTHKEY_SIZE] = {0xE1,0xAD,0xD1,0x4D,0x2F,0xCC,0xB3,0xD8,0xBD,0x8E,0xC7,0x55,0x95,0xD3,0x74,0x36};
  
  Supla::Sensor::VirtualBinary *sensor = new Supla::Sensor::VirtualBinary;

  Supla::Control::Button *buttonSet = new Supla::Control::Button(5, true, true);
  Supla::Control::Button *buttonClear = new Supla::Control::Button(6, true, true);

  buttonSet->willTrigger(*sensor, Supla::ON_PRESS, Supla::SET);
  buttonClear->willTrigger(*sensor, Supla::ON_PRESS, Supla::CLEAR);
  
  SuplaDevice.begin(GUID,                    // Global Unique Identifier 
                    "*******",//      //"svr23.supla.org",  // SUPLA server address
                    "**************",
                    AUTHKEY);                // Authorization key
}

void loop() {
  SuplaDevice.iterate();
}
W serial monitorze otrzymuje takie "krzaki":
Obrazek Bardzo proszę o pomoc w rozwiązaniu tej dziwnej jak dla mnie sprawy :D
Pozdrawiam
bigthomas
Posty: 234
Rejestracja: pn sie 12, 2019 3:35 pm

Kod się może i skompilował, ale z logu wynika że chyba nie wgrało się to jak trzeba.
W logach seriala masz tylko to co przesłałeś, czy coś więcej?
Awatar użytkownika
lukfud
Posty: 2101
Rejestracja: czw lis 23, 2017 11:33 pm
Lokalizacja: Warszawa

buttonSet->addAction(..)
klew pisze: ndz wrz 20, 2020 7:15 pm Wczoraj wieczorem zmieniła się składnia i nazwa metody. Także jeśli brałeś z mojego githuba świeży kod, to trzeba zmienić na:

Kod: Zaznacz cały

button.addAction(Supla::TOGGLE, relay, Supla::ON_PRESS);
https://www.facebook.com/groups/supladiy/
xzihen
Posty: 71
Rejestracja: sob lis 23, 2019 2:21 pm
Lokalizacja: Łódź

@bigthomas w serialu mam tylko to co przesłałem.
Pozdrawiam
Awatar użytkownika
Espablo
Posty: 1754
Rejestracja: śr cze 29, 2016 5:04 pm
Lokalizacja: Oświęcim
Kontakt:

Nie napisałeś nic nt tego czy skompilowany kod udało się wgrać. Jaki to moduł i z jakimi ustawieniami wgrywasz kod
Każde urządzenie elektryczne działa o wiele lepiej jeśli podłączysz je do prądu. :? :roll:
xzihen
Posty: 71
Rejestracja: sob lis 23, 2019 2:21 pm
Lokalizacja: Łódź

rano podeśle logi z wgrywania na płytkę :)
Pozdrawiam
xzihen
Posty: 71
Rejestracja: sob lis 23, 2019 2:21 pm
Lokalizacja: Łódź

Przepraszam za tak długi czas odpowiedz... Niżej podsyłam logi z wgrywania firmweru na płytkę wemos d1 mini.

Kod: Zaznacz cały

Executable segment sizes:


IROM   : 368220          - code in flash         (default or ICACHE_FLASH_ATTR) 


IRAM   : 27352   / 32768 - code in IRAM          (ICACHE_RAM_ATTR, ISRs...) 


DATA   : 1276  )         - initialized variables (global, static) in RAM/HEAP 


RODATA : 3272  ) / 81920 - constants             (global, static) in RAM/HEAP 


BSS    : 29312 )         - zeroed variables      (global, static) in RAM/HEAP 


Szkic używa 400120 bajtów (41%) pamięci programu. Maksimum to 958448 bajtów.
Zmienne globalne używają 33860 bajtów (41%) pamięci dynamicznej, pozostawiając 48060 bajtów dla zmiennych lokalnych. Maksimum to 81920 bajtów.
esptool.py v2.8
Serial port COM6
Connecting....
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 8c:aa:b5:0e:53:f1
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Flash params set to 0x0340
Compressed 404272 bytes to 295314...

Writing at 0x00000000... (5 %)
Writing at 0x00004000... (10 %)
Writing at 0x00008000... (15 %)
Writing at 0x0000c000... (21 %)
Writing at 0x00010000... (26 %)
Writing at 0x00014000... (31 %)
Writing at 0x00018000... (36 %)
Writing at 0x0001c000... (42 %)
Writing at 0x00020000... (47 %)
Writing at 0x00024000... (52 %)
Writing at 0x00028000... (57 %)
Writing at 0x0002c000... (63 %)
Writing at 0x00030000... (68 %)
Writing at 0x00034000... (73 %)
Writing at 0x00038000... (78 %)
Writing at 0x0003c000... (84 %)
Writing at 0x00040000... (89 %)
Writing at 0x00044000... (94 %)
Writing at 0x00048000... (100 %)
Wrote 404272 bytes (295314 compressed) at 0x00000000 in 26.4 seconds (effective 122.6 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...
Wgrywam z takimi ustawieniami:
Obrazek
Pozdrawiam
bigthomas
Posty: 234
Rejestracja: pn sie 12, 2019 3:35 pm

Zabrałem się za skrzynkę i miałem podobny problem jak u kolegi wyżej.
Pomogła zmiana pinów.
W ustawieniach Arduino wybrałem płytkę: WeMos D1 R1

Kod z czujnikiem BME280, kontaktronem (np. do bramki), aktualizacją on-line oraz skrzynki pocztowej.

Kod: Zaznacz cały

#include <SPI.h>
#include <SuplaDevice.h>
#include <Wire.h>
#include <supla/control/button.h>
#include <supla/sensor/binary.h>
#include <supla/sensor/virtual_binary.h>
#include <supla/sensor/BME280.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <DNSServer.h>
#include <ESP8266mDNS.h>
#include <ESP8266HTTPUpdateServer.h>
extern "C" {
#include "user_interface.h"
}

// ESP8266 based board:
#include <supla/network/esp_wifi.h>
Supla::ESPWifi wifi("XXXXXX", "XXXXXX");

WiFiClient client;
const char* host = "Skrzynka";
const char* update_path = "/";
//const char* strona = "/";
const char* update_username = "XXXXX";
const char* update_password = "XXXXX";
ESP8266WebServer httpServer(80); // port strony do update
ESP8266HTTPUpdateServer httpUpdater;

#define pin_button_mail 12 //D6  
#define pin_button_reset 13 //D7 
#define pin_binary_bramka 14 //D5 
#define pin_SDA 5 // D1
#define pin_SCL 4 // D2

void setup() {

  Serial.begin(115200);
  wifi_station_set_hostname("Skrzynka");  //nazwa w sieci lokalnej
  WiFi.softAPdisconnect(true); // wyłaczenie rozgłaszania sieci WiFi

  // VirtualBinary sensor
  Supla::Sensor::VirtualBinary *sensor = new Supla::Sensor::VirtualBinary;
  //sensor->disableChannelState();

  // Nowa poczta
  Supla::Control::Button *czy_Poczta = new Supla::Control::Button(pin_button_mail, true, true);
  czy_Poczta->addAction(Supla::SET, sensor, Supla::ON_PRESS);

  // Reset poczty
  Supla::Control::Button *reset_Poczty = new Supla::Control::Button(pin_button_reset, true, true);
  reset_Poczty->addAction(Supla::CLEAR, sensor, Supla::ON_PRESS);

  // Kontaktron bramki
  Supla::Sensor::Binary *bramka = new Supla::Sensor::Binary(pin_binary_bramka, true); // Parametr true określa wymaganie pullup -> true
  bramka->disableChannelState();

  // Czujnik BME280
  Supla::Sensor::BME280 *bme280 = new Supla::Sensor::BME280(0x76, 202); // adres 0x76, 105 m n.p.m.)
  //bme280->disableChannelState();
  // Inicjalizacja BME280
  Wire.begin(pin_SDA, pin_SCL);

  // Replace the falowing GUID with value that you can retrieve from https://www.supla.org/arduino/get-guid
  char GUID[SUPLA_GUID_SIZE] = {XXXXX};

  // Replace the following AUTHKEY with value that you can retrieve from: https://www.supla.org/arduino/get-authkey
  char AUTHKEY[SUPLA_AUTHKEY_SIZE] = {XXXXX};


  SuplaDevice.setName("Skrzynka");
  SuplaDevice.begin(GUID,              // Global Unique Identifier
                    "XXXXX.supla.org",  // SUPLA server address
                    "XXXXXXXXXXXX@XXXX",   // Email address used to login to Supla Cloud
                    AUTHKEY);          // Authorization key

  Serial.println("Uruchamianie serwera aktualizacji...");
  WiFi.mode(WIFI_STA);
  MDNS.begin(host);
  httpUpdater.setup(&httpServer, update_path, update_username, update_password);
  httpServer.begin();
  MDNS.addService("http", "tcp", 81);
  Serial.printf("HTTPUpdateServer ready! Open http://%s.local%s in your browser and login with username '%s' and password '%s'\n", host, update_path, update_username, update_password);
}

void loop() {
  SuplaDevice.iterate();
  httpServer.handleClient();



}
Awatar użytkownika
lukfud
Posty: 2101
Rejestracja: czw lis 23, 2017 11:33 pm
Lokalizacja: Warszawa

bigthomas pisze: czw gru 03, 2020 2:30 pm Zabrałem się za skrzynkę i miałem podobny problem jak u kolegi wyżej.
Pomogła zmiana pinów.
W ustawieniach Arduino wybrałem płytkę: WeMos D1 R1
Kod z czujnikiem BME280, kontaktronem (np. do bramki), aktualizacją on-line oraz skrzynki pocztowej.
Include'y dla BME są już w bibliotece. Możesz je usunąć z kodu ;)

Kod: Zaznacz cały

#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
https://www.facebook.com/groups/supladiy/
bigthomas
Posty: 234
Rejestracja: pn sie 12, 2019 3:35 pm

lukfud pisze: czw gru 03, 2020 2:38 pm
Dzięki ... poprawione :)

Kod: Zaznacz cały

#include <SPI.h>
#include <SuplaDevice.h>
#include <supla/control/button.h>
#include <supla/sensor/binary.h>
#include <supla/sensor/virtual_binary.h>
#include <supla/sensor/BME280.h>

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <DNSServer.h>
#include <ESP8266mDNS.h>
#include <ESP8266HTTPUpdateServer.h>
extern "C" {
#include "user_interface.h"
}

// ESP8266 based board:
#include <supla/network/esp_wifi.h>
Supla::ESPWifi wifi("XXXXXX", "XXXXXX");

WiFiClient client;
const char* host = "Skrzynka";
const char* update_path = "/";
//const char* strona = "/";
const char* update_username = "XXXXX";
const char* update_password = "XXXXX";
ESP8266WebServer httpServer(80); // port strony do update
ESP8266HTTPUpdateServer httpUpdater;

#define pin_button_mail 12 //D6  
#define pin_button_reset 13 //D7 
#define pin_binary_bramka 14 //D5 
#define pin_SDA 5 // D1
#define pin_SCL 4 // D2

void setup() {

  Serial.begin(115200);
  wifi_station_set_hostname("Skrzynka");  //nazwa w sieci lokalnej
  WiFi.softAPdisconnect(true); // wyłaczenie rozgłaszania sieci WiFi

  // VirtualBinary sensor
  Supla::Sensor::VirtualBinary *sensor = new Supla::Sensor::VirtualBinary;
  //sensor->disableChannelState();

  // Nowa poczta
  Supla::Control::Button *czy_Poczta = new Supla::Control::Button(pin_button_mail, true, true);
  czy_Poczta->addAction(Supla::SET, sensor, Supla::ON_PRESS);

  // Reset poczty
  Supla::Control::Button *reset_Poczty = new Supla::Control::Button(pin_button_reset, true, true);
  reset_Poczty->addAction(Supla::CLEAR, sensor, Supla::ON_PRESS);

  // Kontaktron bramki
  Supla::Sensor::Binary *bramka = new Supla::Sensor::Binary(pin_binary_bramka, true); // Parametr true określa wymaganie pullup -> true
  bramka->disableChannelState();

  // Czujnik BME280
  Supla::Sensor::BME280 *bme280 = new Supla::Sensor::BME280(0x76, 202); // adres 0x76, 105 m n.p.m.)
  //bme280->disableChannelState();
  // Inicjalizacja BME280
  Wire.begin(pin_SDA, pin_SCL);

  // Replace the falowing GUID with value that you can retrieve from https://www.supla.org/arduino/get-guid
  char GUID[SUPLA_GUID_SIZE] = {XXXXX};

  // Replace the following AUTHKEY with value that you can retrieve from: https://www.supla.org/arduino/get-authkey
  char AUTHKEY[SUPLA_AUTHKEY_SIZE] = {XXXXX};


  SuplaDevice.setName("Skrzynka");
  SuplaDevice.begin(GUID,              // Global Unique Identifier
                    "XXXXX.supla.org",  // SUPLA server address
                    "XXXXXXXXXXXX@XXXX",   // Email address used to login to Supla Cloud
                    AUTHKEY);          // Authorization key

  Serial.println("Uruchamianie serwera aktualizacji...");
  WiFi.mode(WIFI_STA);
  MDNS.begin(host);
  httpUpdater.setup(&httpServer, update_path, update_username, update_password);
  httpServer.begin();
  MDNS.addService("http", "tcp", 81);
  Serial.printf("HTTPUpdateServer ready! Open http://%s.local%s in your browser and login with username '%s' and password '%s'\n", host, update_path, update_username, update_password);
}

void loop() {
  SuplaDevice.iterate();
  httpServer.handleClient();



}
ODPOWIEDZ

Wróć do „Pomoc”