Witam Wszystkich.
Jestem początkującym na ESP8266 - SUPLA.
Proszę o pomoc nie mogę dojść do tego żeby 2x ds18b20 były każdy na innym GPIO i bez wpisywania adresów czujników ds18b20. A dlatego tak chcę zrobić że co sezon bym przełączał na inne ds18b20 które by mierzyły w innym miejscu i wtedy bym musiał wczytywać nowe adresy a tego nie chcę gdyż to będzie zainstalowane poza moim miejscem zamieszkania.
Chciałbym dodać że programuję przez programator Arduino.
Dwa Czujniki DS18B20 każdy na innym GPIO
Jeśli weźmiesz przykład "DallasTemperature" z SuplaDevice, to wystarczy wyrzucić kod od tej lini:elektronik9 pisze: ↑wt paź 20, 2020 10:31 am Witam Wszystkich.
Jestem początkującym na ESP8266 - SUPLA.
Proszę o pomoc nie mogę dojść do tego żeby 2x ds18b20 były każdy na innym GPIO i bez wpisywania adresów czujników ds18b20. A dlatego tak chcę zrobić że co sezon bym przełączał na inne ds18b20 które by mierzyły w innym miejscu i wtedy bym musiał wczytywać nowe adresy a tego nie chcę gdyż to będzie zainstalowane poza moim miejscem zamieszkania.
Chciałbym dodać że programuję przez programator Arduino.
https://github.com/klew/arduino/blob/ad ... re.ino#L66
do
https://github.com/klew/arduino/blob/ad ... re.ino#L74
i wstawić:
Kod: Zaznacz cały
new Supla::Sensor::DS18B20(PIN_1);
new Supla::Sensor::DS18B20(PIN_2);
Widzimy się na Supla Offline Party vol. 2
-
- Posty: 23
- Rejestracja: wt paź 13, 2020 11:01 am
Bardzo dziękuję spróbuję to wypróbować tylko nie wiem będzie działać bo tu są adresy wpisane poszczególnych DS18B20 a mi chodzi żeby działało bez adresów bo jak jeden wpiszę to mi działa Ok. a chciałbym żeby było tak bez adresu na dwóch niezależnych GPIO.
Powyżej podałem przykład na dwa różne GPIO (PIN_1 i PIN_2) bez podawania adresów.elektronik9 pisze: ↑wt paź 20, 2020 1:21 pm Bardzo dziękuję spróbuję to wypróbować tylko nie wiem będzie działać bo tu są adresy wpisane poszczególnych DS18B20 a mi chodzi żeby działało bez adresów bo jak jeden wpiszę to mi działa Ok. a chciałbym żeby było tak bez adresu na dwóch niezależnych GPIO.
Widzimy się na Supla Offline Party vol. 2
-
- Posty: 23
- Rejestracja: wt paź 13, 2020 11:01 am
Wyświetla mi błąd : expected type-specifier before 'Supla'.
Pokaż cały kodelektronik9 pisze: ↑wt paź 20, 2020 2:18 pm Wyświetla mi błąd : expected type-specifier before 'Supla'.
Widzimy się na Supla Offline Party vol. 2
-
- Posty: 23
- Rejestracja: wt paź 13, 2020 11:01 am
Wyświetla mi błąd : expected type-specifier before 'Supla'.
Ja mam napisane Tak i nie ma błędu ale dalej jest coś nie tak bo wyświetla na obu to samo i coś ta led bardzo szybko miga.
#include <OneWire.h>
#include <DallasTemperature.h>
OneWire oneWire_in(2); //(D4)
DallasTemperature sensors_in(&oneWire_in);
//------------------------------------------------
OneWire oneWire_out(4); //(D2)
DallasTemperature sensors_out(&oneWire_out);
Ja mam napisane Tak i nie ma błędu ale dalej jest coś nie tak bo wyświetla na obu to samo i coś ta led bardzo szybko miga.
#include <OneWire.h>
#include <DallasTemperature.h>
OneWire oneWire_in(2); //(D4)
DallasTemperature sensors_in(&oneWire_in);
//------------------------------------------------
OneWire oneWire_out(4); //(D2)
DallasTemperature sensors_out(&oneWire_out);
Kod: Zaznacz cały
//==== WSZYSTKO DOBRZE DZILA NA SUPLA DOPISANE CZUJNIKI I PRZEKAZNIKI ============================
#include <srpc.h>
#include <log.h>
#include <eh.h>
#include <proto.h>
#include <IEEE754tools.h>
// Definiujemy własną warstwę ethernetową
#define SUPLADEVICE_CPP
#include <SuplaDevice.h>
#include <lck.h>
#include <WiFiClient.h>
#include <ESP8266WiFiType.h>
#include <ESP8266WiFi.h>
#include <ESP8266WiFiScan.h>
#include <ESP8266WiFiMulti.h>
#include <WiFiServer.h>
#include <ESP8266WiFiGeneric.h>
#include <WiFiClientSecure.h>
#include <ESP8266WiFiAP.h>
#include <ESP8266WiFiSTA.h>
#include <WiFiUdp.h>
//-------------------------------------------------
/*
* This example requires Dallas Temperature Control library installed.
* https://github.com/milesburton/Arduino-Temperature-Control-Library
*/
// Add include to DS sensor
//#include <supla/sensor/DS18B20.h> //Dopisane
//----------------------------------------------------
#include <OneWire.h>
#include <DallasTemperature.h>
//new Supla::Sensor::DS18B20(2); //Dopisane
//new Supla::Sensor::DS18B20(4); //Dopisane
OneWire oneWire_in(2); //(D4) //dodane K-7
DallasTemperature sensors_in(&oneWire_in); //dodane
//------------------------------------------------
OneWire oneWire_out(4); //(D2) //dodane
DallasTemperature sensors_out(&oneWire_out); //dodane
//****************************************************************************************
// DS18B20 Sensor read implementation
double get_temperature(int channelNumber, double last_val) {
double t = -275;
if ( sensors_in.getDeviceCount() > 0 )
{
sensors_in.requestTemperatures();
t = sensors_in.getTempCByIndex(0); };
return t;
//};
//********************************************************************
//double get_temperature(int channelNumber, double last_val) {
//double t = -275;
if ( sensors_out.getDeviceCount() > 0 )
{
sensors_out.requestTemperatures();
t = sensors_out.getTempCByIndex(0); };
return t;
};
//******************************************************************************
#define Pin_D1 5 //senor styk
//#define Pin_D3 0 //Wyjscie Nie dzila w SUPLA-> przeznaczony do instalowania softu
#define Pin_D5 14 //senor styk
#define Pin_D6 12 //senor styk
#define Pin_D7 13 //senor styk
#define Pin_D8 15 //Przekaznik Dziala Zal(HIGH)tak ustawilem
#define Pin_D0 16 //Przekaznik Dziala Zal(HIGH)tak ustawilem
//Pin_A0 //senor styk Nie dziala
WiFiClient client;
// Setup Supla connection
const char* ssid = "***********"; //nazwa sieci WiFi
const char* password = "***********"; //hasło do sieci
//=================================================================
//**********************************************************************************************
void setup() {
Serial.begin(115200);
delay(10);
digitalWrite(Pin_D8, LOW); //Przekaznik -> nie sprawdzone DOPISANE - K-5
digitalWrite(Pin_D0, LOW); //Przekaznik -> nie sprawdzone DOPISANE - K-6
sensors_in.begin();
sensors_out.begin();
// Ustawianie wywołania zwrotnego w temperaturze
//SuplaDevice.setTemperatureCallback(&get_temperature_in); //dodane
//SuplaDevice.setTemperatureCallback(&get_temperature_out); //dodane
//**************** Do Nowej Plytki ******************************
//char GUID[SUPLA_GUID_SIZE] = {moj guid};
char GUID[SUPLA_GUID_SIZE] = {0x16,0x2F,0xD1,0x0D,0x99,0x3E,0x54,0xDA,0x55,0xB3,0x55,0xB5,0x53,0xBF,0x4F,0x5B};
// z identyfikatorem GUID, który można pobrać z https://www.supla.org/arduino/get-guid
//MAC adres urządzenia //TRZEBA SPRAWDZIC PO POLACZENIU.W RUTERZE
uint8_t mac[6] = {0x54, 0x5F, 0xBA, 0x52, 0xDA, 0x2C};
//******************************************************************
// * Posiadanie urządzenia już zarejestrowanego w cloud.supla.org,
// * chcesz zmienić sekwencję KANAŁU lub usunąć którykolwiek z nich,
// * następnie należy również usunąć samo urządzenie z cloud.supla.org.
// * W przeciwnym razie pojawi się błąd "Konflikt kanału!".
// CHANNEL0 - Opening sensor (Normal Open)
SuplaDevice.addSensorNO(Pin_D1, true);
// CHANNEL1 - Opening sensor (Normal Open)
//SuplaDevice.addSensorNO(Pin_D2, true);
// CHANNEL1 - Opening sensor (Normal Open)
SuplaDevice.addSensorNO(Pin_D5, true);
// CHANNEL2 - Opening sensor (Normal Open)
SuplaDevice.addSensorNO(Pin_D6, true);
// CHANNEL3 - Opening sensor (Normal Open)
SuplaDevice.addSensorNO(Pin_D7, true);
// CHANNEL4 - RELAY
SuplaDevice.addRelay(Pin_D8); //(15) PRZEKAZNIK Ster(HIGH)
// CHANNEL5 - RELAY
SuplaDevice.addRelay(Pin_D0); //(16) PRZEKAZNIK Ster(HIGH)
// CHANNEL5 - RELAY
//SuplaDevice.addRelay(Pin_D3); //(0) Nie dziala Jest uzyty w SUPLA do Softu
// CHANNEL6 - Opening sensor (Normal Open)
//SuplaDevice.addSensorNO(A0); //A0 - Numer pinu, pod którym podłączony jest czujnik
//Wywołanie SuplaDevice.addSensorNO(A0, true) z dodatkowym parametrem "true"
//aby włączyć wewnętrzny rezystor podciągania
//**************************************************
// CHANNEL6 - Thermometer DS18B20
SuplaDevice.addDS18B20Thermometer();
//**************************************************
//**************************************************
// CHANNEL7 - Thermometer DS18B20
SuplaDevice.addDS18B20Thermometer();
//**************************************************
//CHANNEL8 - Opening sensor (Normal Open)
//SuplaDevice.addSensorNO(A0);
SuplaDevice.begin(GUID, // Global Unique Identifier
mac, // Ethernet MAC address
"svr43.supla.org", // SUPLA server address
747, // Location ID
"83b6"); // Location Password
} //Koniec void setup()
//================================================================
void loop() {
SuplaDevice.iterate();
Serial.println(sensors_in.getTempCByIndex(0)); //dopisane
Serial.println(sensors_out.getTempCByIndex(0)); //dopisane
//*********************************************************
} //Koniec void loop()
//=========================================================
// 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 = NULL;
cb.get_temperature_and_humidity = NULL;
cb.get_rgbw_value = NULL;
cb.set_rgbw_value = NULL;
return cb;
}
//======== KONIEC PROGRAMU ======================================
Pobierz sobie bibliotekę SuplaDevice z brancha develop z oficjalnego githuba Supli, albo ode mnie z github.com/klew/arduino
Następnie wybierz w arduino przykład dallastemperature i zrób taką zmianę jak pisałem.
Twój aktualny kod to w większości od napisany na starą wersję biblioteki
Następnie wybierz w arduino przykład dallastemperature i zrób taką zmianę jak pisałem.
Twój aktualny kod to w większości od napisany na starą wersję biblioteki
Widzimy się na Supla Offline Party vol. 2
-
- Posty: 23
- Rejestracja: wt paź 13, 2020 11:01 am
Supla Device jak instalowałem pisze że już jest a tą drugą develop jest nie zgodne.
Mam prośbę czy do tego co mam nie można dopisać drugiego czujnika DS18B20 z innego Pinu bez adresu ?
Mam dużo układów które mi działają poprawnie i za bardzo się nie znam i nie chciałbym sobie namieszać bo później i w innych mógłbym mieć problemy.
Mam prośbę czy do tego co mam nie można dopisać drugiego czujnika DS18B20 z innego Pinu bez adresu ?
Mam dużo układów które mi działają poprawnie i za bardzo się nie znam i nie chciałbym sobie namieszać bo później i w innych mógłbym mieć problemy.
Wszystko się da.
Tylko to trzeba zrobić zupełnie inaczej, niż pisałem wcześniej.
Powinieneś przepisać metodę "get_temperature" w taki sposób, aby w zależności od zmiennej channel czytała albo z jednego GPIO, albo z drugiego.
Ogólnie to mimo wszystko polecam przesiąść się na nową wersję biblioteki. Było usunięte kilka błędów, a także pojawiają się tam nowe funkcjonalności (np. ikonka (i) przy kanale, z której można odczytać siłę sygnału WiFi, czy też lokalny adres IP modułu)
Tylko to trzeba zrobić zupełnie inaczej, niż pisałem wcześniej.
Powinieneś przepisać metodę "get_temperature" w taki sposób, aby w zależności od zmiennej channel czytała albo z jednego GPIO, albo z drugiego.
Ogólnie to mimo wszystko polecam przesiąść się na nową wersję biblioteki. Było usunięte kilka błędów, a także pojawiają się tam nowe funkcjonalności (np. ikonka (i) przy kanale, z której można odczytać siłę sygnału WiFi, czy też lokalny adres IP modułu)
Widzimy się na Supla Offline Party vol. 2