Witamdogu18 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; }
Czy generowałeś guida?
Czy masz urodziny 13 kwietnia?
czy mam swoje urządzenia wrzucić na Twojego clouda?
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