[PORADNIK] Arduino IDE

Awatar użytkownika
makrz
Posty: 395
Rejestracja: wt lis 27, 2018 1:43 pm
Lokalizacja: Opole

dogu18 pisze: pt mar 08, 2019 11:44 pm Cześć

próbuje odpalić czujnik BME280
wykorzystuje kod znaleziony na forum i staram się go modyfikować żeby działo.
na razie sie skompilowało ale nie zgłasza mi się na Cloud...
gdzie popełniłem błąd w kodzie??? jak można prosić o taką pomoc

pozdrawiam Grzegorz

Kod: Zaznacz cały

//  **************************************************************************************************************
//  * Kompilowane na Arduino 1.8.5 by@wojtas567                                                                               *
//  * Po odczytaniu adresów czujników należy je wpisać do tablicy wg poniższego wzoru                            *
//  * DeviceAddress jeden = { 0x28, 0xFF, 0xE8, 0x00, 0xB6, 0x16, 0x03, 0x65 };                                  *      
//  * DeviceAddress dwa = { 0x28, 0xFF, 0x54, 0x6F, 0xB3, 0x16, 0x05, 0xE9 };                                    *
//  * ...                                                                                                        *
//  *                                                                                                            *
//  * a na stępnie usunąć wiersze:                                                                               *
//  *        *    DeviceAddress jeden, dwa, trzy, cztery, piec, szesc, siedem, osiem;                            *
//  *                                                                                                            *
//  *        *    if (!sensors.getAddress(jeden, 0)) Serial.println("Nie można znaleźć adresu urządzenia 0");    *
//  *        *    if (!sensors.getAddress(dwa, 1)) Serial.println("Nie można znaleźć adresu urządzenia 1");      *
//  *        *    if (!sensors.getAddress(trzy, 2)) Serial.println("Nie można znaleźć adresu urządzenia 2");     *
//  *        *    if (!sensors.getAddress(cztery, 3)) Serial.println("Nie można znaleźć adresu urządzenia 3");   *
//  *        *    if (!sensors.getAddress(piec, 4)) Serial.println("Nie można znaleźć adresu urządzenia 4");     *
//  *        *    if (!sensors.getAddress(szesc, 5)) Serial.println("Nie można znaleźć adresu urządzenia 5");    *
//  *        *    if (!sensors.getAddress(siedem, 6)) Serial.println("Nie można znaleźć adresu urządzenia 6");   *
//  *        *    if (!sensors.getAddress(osiem, 7)) Serial.println("Nie można znaleźć adresu urządzenia 6");    *
//  *                                                                                                            *
//  **************************************************************************************************************


#include <ESP8266WiFi.h>
#define SUPLADEVICE_CPP
#include <SuplaDevice.h>

#include <ESP8266WebServer.h>
#include <DNSServer.h>
#include <ESP8266mDNS.h>
#include <ESP8266HTTPUpdateServer.h>
extern "C" {
#include "user_interface.h"
}
// Include the libraries we need
#include <OneWire.h>
#include <DallasTemperature.h>

//inicjalizacja bme280
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>

#define BME_SCK 5
#define BME_MISO 4


#define SEALEVELPRESSURE_HPA (1013.25)

Adafruit_BME280 bme; // I2C

// Data wire is plugged into port 2 on the Arduino
//#define ONE_WIRE 16
//#define TEMPERATURE_PRECISION 10  // rozdzielczość czujnika DS 9 -12 bit

// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE);

// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);

// tablica do przechowywania adresów urządzeń
//DeviceAddress jeden, dwa, trzy, cztery, piec, szesc, siedem, osiem;

// lub tu już wprowadzone
/*

DeviceAddress jeden = { 0x28, 0xFF, 0xEC, 0xFE, 0xC1, 0x17, 0x1, 0xF3 };       // odczytany adres 28FF2EFBC11701D3  
DeviceAddress dwa = { 0x28, 0xFF, 0xEA, 0x16, 0xC2, 0x17, 0x1, 0xDE };     //Odczytany adres 28FFEA16C21701DE 
DeviceAddress trzy = { 0x28, 0xFF, 0xBC, 0xA, 0xC2, 0x17, 0x1, 0xFD };   // odczytany adres 28FFBC0AC21701FD
DeviceAddress cztery = { 0x28, 0xFF, 0x8, 0x7E, 0xC1, 0x17, 0x2, 0xD };   // odczytany adres 28FF087EC117020D
DeviceAddress piec = { 0x28, 0xFF, 0xCD, 0xCB, 0xC1, 0x17, 0x1, 0xF };   // odczytany adres 28FFCDCBC117010F
DeviceAddress szesc = { 0x28, 0xFF, 0xA9, 0x6A, 0xC1, 0x17, 0x2, 0xC5 };   // odczytany adres 28FFA96AC11702C5


*/

// Setup Supla connection
const char* ssid     = "xxxxxxxxx";
const char* password = "xxxxxxxxxxx";

WiFiClient client;
const char* host = "supla";
const char* update_path = "/supla";
const char* update_username = "admin";
const char* update_password = "supla";

ESP8266WebServer httpServer(81);
ESP8266HTTPUpdateServer httpUpdater;

// Odczyt z czujnika BME280 temperatury i wilgotności
void get_temperature_and_humidity (int channelNumber, double *temp, double *humidity) {

  *temp = bme.readTemperature();   
  *humidity = bme.readHumidity();
}


// Odczyt z czujnika BME280 ciśnienie i siły sygnału Wifi z ESP
double get_pressure(int channelNumber, double last_val) {

  double t = -275;
  switch (channelNumber)
  {

         case 0:
      t = (bme.readPressure() / 100.0F); 
      Serial.print("BME Ciśnienie: ");        
      Serial.println(t);
    //  last_pressure = t; //GUI
      break;
 /*           case 1:
         t = sensors.getTempC(dwa);
        Serial.print("Temp 2 : ");
        Serial.println(t);
                    break;
            case 2:
         t = sensors.getTempC(trzy);
        Serial.print("Temp 3 : ");
        Serial.println(t);
                    break;
            case 3:
         t = sensors.getTempC(cztery);
        Serial.print("Temp 4 : ");
        Serial.println(t);
                    break;
            case 4:
         t = sensors.getTempC(piec);
        Serial.print("Temp 5 : ");
        Serial.println(t);
                    break;
            case 5:
         t = sensors.getTempC(szesc);
        Serial.print("Temp 6 : ");
        Serial.println(t);
                    break;
            case 6:
         t = sensors.getTempC(siedem);
        Serial.print("Temp 7 : ");
        Serial.println(t);
                    break;
            case 7:
         t = WiFi.RSSI();
        Serial.print("Temp 8 : ");
        Serial.println(t);
        Serial.println("***********GOTOWE*************");
                    break;
                    */
          }
         
    return t;  
}
                                 
// funkcja drukowania adresu urządzenia
void printAddress(DeviceAddress deviceAddress)
{
  for (uint8_t i = 0; i < 8; i++)
  {
    // zero pad the address if necessary
    if (deviceAddress[i] < 16) Serial.print("0");
    Serial.print(deviceAddress[i], HEX);
  }
}

void setup() {
  Serial.begin(115200);
  delay(10);

  wifi_station_set_hostname("Supla-TEST");  //nazwa w sieci lokalnej
  WiFi.softAPdisconnect(true); // wyłączenie rozgłaszania sieci ESP

  // Inicjalizacja DS18B20
  sensors.begin();
  SuplaDevice.setTemperatureCallback(&get_pressure);

/*
//******Odczyt DS wraz z adresami********************
  // zlokalizuj urządzenia na szynie danych
  Serial.print("Lokalizowanie urządzeń...");
  Serial.print(" znaleziono ");
  Serial.print(sensors.getDeviceCount(), DEC);
  Serial.println(" urządzeń.");

  // zgłosić zapotrzebowanie na moc pasożytniczą
  Serial.print("Zasilanie pasożytnicze jest: ");
  if (sensors.isParasitePowerMode()) Serial.println("ON");
  else Serial.println("OFF");
  

  if (!sensors.getAddress(jeden, 0)) Serial.println("Nie można znaleźć adresu urządzenia 0");
  if (!sensors.getAddress(dwa, 1)) Serial.println("Nie można znaleźć adresu urządzenia 1");
  if (!sensors.getAddress(trzy, 2)) Serial.println("Nie można znaleźć adresu urządzenia 2");
  if (!sensors.getAddress(cztery, 3)) Serial.println("Nie można znaleźć adresu urządzenia 3");
  if (!sensors.getAddress(piec, 4)) Serial.println("Nie można znaleźć adresu urządzenia 4");
  if (!sensors.getAddress(szesc, 5)) Serial.println("Nie można znaleźć adresu urządzenia 5");
  if (!sensors.getAddress(siedem, 6)) Serial.println("Nie można znaleźć adresu urządzenia 6");
  if (!sensors.getAddress(osiem, 7)) Serial.println("Nie można znaleźć adresu urządzenia 6");
*/
/*
  // pokaż adresy, które znaleźliśmy na szynie
  Serial.print("Adres Urządzenia 0: ");
  printAddress(jeden);
  Serial.println();

  Serial.print("Adres Urządzenia 1: ");
  printAddress(dwa);
  Serial.println();

  Serial.print("Adres Urządzenia 2: ");
  printAddress(trzy);
  Serial.println();

  Serial.print("Adres Urządzenia 3: ");
  printAddress(cztery);
  Serial.println();

  Serial.print("Adres Urządzenia 4: ");
  printAddress(piec);
  Serial.println();

  Serial.print("Adres Urządzenia 5: ");
  printAddress(szesc);
  Serial.println();

  Serial.print("Adres Urządzenia 6: ");
  printAddress(siedem);
  Serial.println();

  Serial.print("Adres Urządzenia 7: ");
 // printAddress(osiem);
  Serial.println();

  // ustaw rozdzielczość na 9 bitów na urządzeniach
  sensors.setResolution(jeden, TEMPERATURE_PRECISION);
  sensors.setResolution(dwa, TEMPERATURE_PRECISION);
  sensors.setResolution(trzy, TEMPERATURE_PRECISION);
  sensors.setResolution(cztery, TEMPERATURE_PRECISION);
  sensors.setResolution(piec, TEMPERATURE_PRECISION);
  sensors.setResolution(szesc, TEMPERATURE_PRECISION);
  sensors.setResolution(siedem, TEMPERATURE_PRECISION);
 // sensors.setResolution(osiem, TEMPERATURE_PRECISION);

  Serial.print("Rozdzielczość urządzeń: ");
  Serial.print(sensors.getResolution(), DEC);
  Serial.println();

  */

  // Replace the falowing GUID
  uint8_t mac[WL_MAC_ADDR_LENGTH];
  WiFi.macAddress(mac);
  // Replace the falowing GUID
  char GUID[SUPLA_GUID_SIZE] = {0xA7,0xC6,0x05,0xDB,0xEC,0xA3,0xE1,0x33,0xDB,0xFC,0x8D,0x92,0x06,0x78,0xB3,0x02};
  // with GUID that you can retrieve from https://www.supla.org/arduino/get-guid



  // CHANNEL0,1,2,3...8 - DS
  SuplaDevice.addPressureSensor();    // channel 0 pressure from BME280 (kPa)
  SuplaDevice.addDHT22();             // channel 2 temperature & humidity from BME280 
  //SuplaDevice.addDS18B20Thermometer();  
  //SuplaDevice.addDS18B20Thermometer();  
  //SuplaDevice.addDS18B20Thermometer();  
  //SuplaDevice.addDS18B20Thermometer();  
  //SuplaDevice.addDS18B20Thermometer(); 
  //SuplaDevice.addDS18B20Thermometer();  //Wifi
/*
  // CHANNEL9 - RELAY
  SuplaDevice.addRelay(5, true);       // zalacza pompa podlogowki  D1   
  // CHANNEL10-14 - RELAY  
 SuplaDevice.addRelay(13, true);       // zalacza pompa na grzejniki D7
 SuplaDevice.addRelay(12, true);  //D6
 SuplaDevice.addRelay(14, true);  //D5
 SuplaDevice.addRelay(16, true);  //D0
 SuplaDevice.addRelay(1, true);   //RX
 */
 

  SuplaDevice.setName("supla_TEST");
  SuplaDevice.begin(GUID,              // Global Unique Identifier 
                    mac,               // Ethernet MAC address
                    "svrx.supla.org",      // SUPLA server address
                    xxxx,        // Location ID 
                    "xxxx");    // Location Password

  Serial.println();
  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();
  SuplaDevice.setTemperatureCallback(&get_pressure);
  httpServer.handleClient();

}

// Supla.org ethernet layer
    int supla_arduino_tcp_read(void *buf, int count) {
        _supla_int_t size = client.available();
       
        if ( size > 0 ) {
            if ( size > count ) size = count;
            return client.read((uint8_t *)buf, size);
        };
    
        return -1;
    };
    
    int supla_arduino_tcp_write(void *buf, int count) {
        return client.write((const uint8_t *)buf, count);
    };
    
    bool supla_arduino_svr_connect(const char *server, int port) {
          return client.connect(server, 2015);
    }
    
    bool supla_arduino_svr_connected(void) {
          return client.connected();
    }
    
    void supla_arduino_svr_disconnect(void) {
         client.stop();
    }
    
    void supla_arduino_eth_setup(uint8_t mac[6], IPAddress *ip) {

        Serial.println("WiFi init");
        WiFi.begin(ssid, password);

        while (WiFi.status() != WL_CONNECTED) {
            delay(500);
            Serial.print(".");
        }

        Serial.print("\nlocalIP: ");
        Serial.println(WiFi.localIP());
        Serial.print("subnetMask: ");
        Serial.println(WiFi.subnetMask());
        Serial.print("gatewayIP: ");
        Serial.println(WiFi.gatewayIP());
    }


SuplaDeviceCallbacks supla_arduino_get_callbacks(void) {
  SuplaDeviceCallbacks cb;

  cb.tcp_read = &supla_arduino_tcp_read;
  cb.tcp_write = &supla_arduino_tcp_write;
  cb.eth_setup = &supla_arduino_eth_setup;
  cb.svr_connected = &supla_arduino_svr_connected;
  cb.svr_connect = &supla_arduino_svr_connect;
  cb.svr_disconnect = &supla_arduino_svr_disconnect;
  cb.get_temperature = &get_pressure;

  return cb;
}
Witam

Czy generowałeś guida?
Czy masz urodziny 13 kwietnia? :D
czy mam swoje urządzenia wrzucić na Twojego clouda? :D

Kod: Zaznacz cały

 char GUID[SUPLA_GUID_SIZE] = {0xA7,0xC6,0x05,0xDB,0xEC,0xA3,0xE1,0x33,0xDB,0xFC,0x8D,0x92,0x06,0x78,0xB3,0x02}];
  // with GUID that you can retrieve from https://www.supla.org/arduino/get-guid
EDIT by @slawek: usunąłem prywatne dane...
Awatar użytkownika
shimano73
Posty: 1968
Rejestracja: ndz lut 28, 2016 12:27 pm
Lokalizacja: Orzesze
Kontakt:

A ja wiem gdzie mieszkasz 😁 - Syrion , gdy wklejasz kod usuń prywatne dane , na wszelki wypadek
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie

Wezmę udział w Supla Offline Party 2024 :)
dogu18
Posty: 257
Rejestracja: czw paź 11, 2018 8:35 pm

Już edytowałem. wczoraj na szybko wrzuciłem zapomniałem usunąć danych:(

GUID generowałem ale profilaktycznie wygeneruje jeszcze raz
Pozdrawiam
Grzegorz Labudda
dogu18
Posty: 257
Rejestracja: czw paź 11, 2018 8:35 pm

serial monitor wypluwa mi to

Kod: Zaznacz cały

ets Jan  8 2013,rst cause:4, boot mode:(3,6)

wdt reset
load 0x4010f000, len 1384, room 16 
tail 8
chksum 0x2d
csum 0x2d
v401004d0
~ld
⸮WiFi init
no i dalej nie zgłasza się w Cloud
Pozdrawiam
Grzegorz Labudda
Awatar użytkownika
shimano73
Posty: 1968
Rejestracja: ndz lut 28, 2016 12:27 pm
Lokalizacja: Orzesze
Kontakt:

Jesteś pewien ze czujnik jest dobrze podłączony , prawdopodobnie esp go nie widzi , złe gpio lub uszkodzony czujnik. Proponuje wgrać Scanner i2c i sprawdzić czy go wykryje , szkic jest dostępny na forum.
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie

Wezmę udział w Supla Offline Party 2024 :)
dogu18
Posty: 257
Rejestracja: czw paź 11, 2018 8:35 pm

shimano73 pisze: sob mar 09, 2019 12:22 pm Jesteś pewien ze czujnik jest dobrze podłączony , prawdopodobnie esp go nie widzi , złe gpio lub uszkodzony czujnik. Proponuje wgrać Scanner i2c i sprawdzić czy go wykryje , szkic jest dostępny na forum.
czujnik działa skaner jak i szkic arduino do bme280 działają prawidłowo.
Pozdrawiam
Grzegorz Labudda
Awatar użytkownika
shimano73
Posty: 1968
Rejestracja: ndz lut 28, 2016 12:27 pm
Lokalizacja: Orzesze
Kontakt:

Nie widzę w twoim programie "bme.begin(nr_adresu)" w setup'ie
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie

Wezmę udział w Supla Offline Party 2024 :)
dogu18
Posty: 257
Rejestracja: czw paź 11, 2018 8:35 pm

dalej waczę wywaliłem zbędny moim zdaniem kod troszkę to ogarnołem ale dalej nie widze modułu w supli:/

coś jakby w konfiguracji sieci było nie tak chyba:/

Kod: Zaznacz cały

#include <ESP8266WiFi.h>
#define SUPLADEVICE_CPP
#include <SuplaDevice.h>

#include <ESP8266WebServer.h>
#include <DNSServer.h>
#include <ESP8266mDNS.h>
#include <ESP8266HTTPUpdateServer.h>
extern "C" {
#include "user_interface.h"
}
// Include the libraries we need
#include <OneWire.h>
#include <DallasTemperature.h>

//inicjalizacja bme280
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>

#define BME_SCK 4
#define BME_MISO 5


#define SEALEVELPRESSURE_HPA (1013.25)

Adafruit_BME280 bme; // I2C







// Data wire is plugged into port 2 on the Arduino
#define ONE_WIRE 2
#define TEMPERATURE_PRECISION 10  // rozdzielczość czujnika DS 9 -12 bit

// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE);

// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);



// Setup Supla connection
const char* ssid     = "xxxx";
const char* password = "xxxx";

WiFiClient client;
const char* host = "supla";
const char* update_path = "/supla";
const char* update_username = "admin";
const char* update_password = "supla";

ESP8266WebServer httpServer(81);
ESP8266HTTPUpdateServer httpUpdater;

// Odczyt z czujnika BME280 temperatury i wilgotności
void get_temperature_and_humidity (int channelNumber, double *temp, double *humidity) {

  *temp = bme.readTemperature();   
  *humidity = bme.readHumidity();
}


// Odczyt z czujnika BME280 ciśnienie i siły sygnału Wifi z ESP
double get_temperature(int channelNumber, double last_val) {

  double t = -275;
  switch (channelNumber)
  {

         case 0:
      t = (bme.readPressure() / 100.0F); 
      Serial.print("BME Ciśnienie: ");        
      Serial.println(t);
    //  last_pressure = t; //GUI
      break;
         case 1:
         t = WiFi.RSSI();
        Serial.print("zasieg : ");
        Serial.println(t);
      break;
   /*         case 2:
         t = sensors.getTempC(trzy);
        Serial.print("Temp 3 : ");
        Serial.println(t);
                    break;
            case 3:
         t = sensors.getTempC(cztery);
        Serial.print("Temp 4 : ");
        Serial.println(t);
                    break;
            case 4:
         t = sensors.getTempC(piec);
        Serial.print("Temp 5 : ");
        Serial.println(t);
                    break;
            case 5:
         t = sensors.getTempC(szesc);
        Serial.print("Temp 6 : ");
        Serial.println(t);
                    break;
            case 6:
         t = sensors.getTempC(siedem);
        Serial.print("Temp 7 : ");
        Serial.println(t);
                    break;
            case 7:
         t = WiFi.RSSI();
        Serial.print("Temp 8 : ");
        Serial.println(t);
        Serial.println("***********GOTOWE*************");
                    break;
                    */
          }
         
    return t;  
}
                                 
// funkcja drukowania adresu urządzenia
void printAddress(DeviceAddress deviceAddress)
{
  for (uint8_t i = 0; i < 8; i++)
  {
    // zero pad the address if necessary
    if (deviceAddress[i] < 16) Serial.print("0");
    Serial.print(deviceAddress[i], HEX);
  }
}

void setup() {
  Serial.begin(115200);
  delay(10);
  bme.begin(0x76);
   
   if (!bme.begin()) {
    Serial.println("Could not find a valid BME280 sensor, check wiring!");
    while (1);
  }

  wifi_station_set_hostname("Supla_TEST");  //nazwa w sieci lokalnej
  WiFi.softAPdisconnect(true); // wyłączenie rozgłaszania sieci ESP

  // Inicjalizacja DS18B20
  sensors.begin();
  SuplaDevice.setTemperatureCallback(&get_temperature);



  // Replace the falowing GUID
  uint8_t mac[6] = {0x00, 0x05, 0x04, 0x03, 0x02, 0x01}; // adres mac wpisujemy dowolny
  WiFi.macAddress(mac);
  // Replace the falowing GUID
  char GUID[SUPLA_GUID_SIZE] = {0x74,0x64,0xC5,0xA7,0x2A,0xF5,0x87,0x2C,0x03,0x98,0xB1,0x5E,0x8D,0x83,0x6A,0x57};
  // with GUID that you can retrieve from https://www.supla.org/arduino/get-guid



  // CHANNEL0,1,2,3...8 - DS
  SuplaDevice.addPressureSensor();    // channel 0 pressure from BME280 (kPa)
  SuplaDevice.addDHT22();             // channel 2 temperature & humidity from BME280 
  SuplaDevice.addDS18B20Thermometer();    //wifi  
  //SuplaDevice.addDS18B20Thermometer();  
  //SuplaDevice.addDS18B20Thermometer();  
  //SuplaDevice.addDS18B20Thermometer();  
  //SuplaDevice.addDS18B20Thermometer(); 
  //SuplaDevice.addDS18B20Thermometer();  //Wifi
/*
  // CHANNEL9 - RELAY
  SuplaDevice.addRelay(5, true);       // zalacza pompa podlogowki  D1   
  // CHANNEL10-14 - RELAY  
 SuplaDevice.addRelay(13, true);       // zalacza pompa na grzejniki D7
 SuplaDevice.addRelay(12, true);  //D6
 SuplaDevice.addRelay(14, true);  //D5
 SuplaDevice.addRelay(16, true);  //D0
 SuplaDevice.addRelay(1, true);   //RX
 */
 

  SuplaDevice.setName("supla_TEST");
  SuplaDevice.begin(GUID,              // Global Unique Identifier 
                    mac,               // Ethernet MAC address
                    "svrx.supla.org",      // SUPLA server address
                    xxxx,        // Location ID 
                    "xxxx");    // Location Password

  Serial.println();
  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();
  SuplaDevice.setTemperatureCallback(&get_temperature);
  httpServer.handleClient();

}

// Supla.org ethernet layer
    int supla_arduino_tcp_read(void *buf, int count) {
        _supla_int_t size = client.available();
       
        if ( size > 0 ) {
            if ( size > count ) size = count;
            return client.read((uint8_t *)buf, size);
        };
    
        return -1;
    };
    
    int supla_arduino_tcp_write(void *buf, int count) {
        return client.write((const uint8_t *)buf, count);
    };
    
    bool supla_arduino_svr_connect(const char *server, int port) {
          return client.connect(server, 2015);
    }
    
    bool supla_arduino_svr_connected(void) {
          return client.connected();
    }
    
    void supla_arduino_svr_disconnect(void) {
         client.stop();
    }
    
    void supla_arduino_eth_setup(uint8_t mac[6], IPAddress *ip) {

        Serial.println("WiFi init");
        WiFi.begin(ssid, password);

        while (WiFi.status() != WL_CONNECTED) {
            delay(500);
            Serial.print(".");
        }

       /* 
        Serial.print("\nlocalIP: ");
        Serial.println(WiFi.localIP());
        Serial.print("subnetMask: ");
        Serial.println(WiFi.subnetMask());
        Serial.print("gatewayIP: ");
        Serial.println(WiFi.gatewayIP());
        */
        
        
    }


SuplaDeviceCallbacks supla_arduino_get_callbacks(void) {
  SuplaDeviceCallbacks cb;

  cb.tcp_read = &supla_arduino_tcp_read;
  cb.tcp_write = &supla_arduino_tcp_write;
  cb.eth_setup = &supla_arduino_eth_setup;
  cb.svr_connected = &supla_arduino_svr_connected;
  cb.svr_connect = &supla_arduino_svr_connect;
  cb.svr_disconnect = &supla_arduino_svr_disconnect;
  cb.get_temperature = &get_temperature;

  return cb;
}
w serial monitorze wyskakujtlie ciągle to w pętli

Kod: Zaznacz cały

ets Jan  8 2013,rst cause:4, boot mode:(3,6)

wdt reset
load 0x4010f000, len 1384, room 16 
tail 8
chksum 0x2d
csum 0x2d
v401004d0
~ld
⸮WiFi init
..............
inne gotowe programy kompilują się i działają a ten opornie nie chce
Pozdrawiam
Grzegorz Labudda
dogu18
Posty: 257
Rejestracja: czw paź 11, 2018 8:35 pm

Znalazłem problem.


jest to

SuplaDevice.addPressureSensor();


jak ten sam parametr wyświetlę jako termometr to działają a jak z czujnikiem ciśnienia to wemos sie resetuje.


czegoś nie dopisałem do kodu czy jak??

w Cloud jako wersja softu zgłasza się jako 1.6.1 może nowsza biblioteka jest potrzebna albo coś...
Pozdrawiam
Grzegorz Labudda
Awatar użytkownika
lesny8
Posty: 2808
Rejestracja: pn gru 11, 2017 9:43 pm

viewtopic.php?p=33715#p33715
Przeczytaj sobie cały watek albo chociaż jedna stronę przed, to Ci się wyjaśni.
Czekam na kolejne Supla Offline Party 👍
ODPOWIEDZ

Wróć do „FAQ / Jak to zrobić”