Jak robiłem RB-10, to nie wiedziałem o istnieniu Xiaomi
A co do cen to prosty rachunek:
Xiaomi LYWSD03MMC - 25 zł / szt. (samodzielnie u Chińczyków kupisz taniej)
Bramka Raspberry Pi Zero W + obudowa + zasilacz + karta microSD + przesyłka - 156,70 zł
5 czujników LYWSD03MMC (na dokładnym SHT31 i dodatkowo z wyświetlaczem LCD w gustownej obudowie) + bramka - 281,70 zł
W projekcie RB-10 5 baterii to już jest 50 zł, a gdzie reszta elementów.
Mały, bezprzewodowy czujnik temperatury na radiu
- Robert Błaszczak
- Posty: 4008
- Rejestracja: sob gru 22, 2018 8:55 pm
- Lokalizacja: Zielona Góra
- Kontakt:
Pozdrawiam
Robert Błaszczak
Moja prywatna strona: www.blaszczak.pl
Robert Błaszczak
Moja prywatna strona: www.blaszczak.pl
Witam
Proszę o radę.
Czujnik odczytuje natężenie światła odbiornik go odbiera według serial Monitora
Niestety w Supli pokazuje się co jakiś czas wynik i potem wisi na jakiejś wartości.
jak to naprawić??
Używam tego programu
Pozdrawiam
Proszę o radę.
Czujnik odczytuje natężenie światła odbiornik go odbiera według serial Monitora
Niestety w Supli pokazuje się co jakiś czas wynik i potem wisi na jakiejś wartości.
jak to naprawić??
Używam tego programu
Kod: Zaznacz cały
/*
Bramka RB-10G
Copyright (C) 2019 Robert Błaszczak
Niniejszy program jest wolnym oprogramowaniem; możesz go
rozprowadzać dalej i/lub modyfikować na warunkach Powszechnej
Licencji Publicznej GNU, wydanej przez Fundację Wolnego
Oprogramowania - według wersji 2-giej tej Licencji lub którejś
z późniejszych wersji.
Niniejszy program rozpowszechniany jest z nadzieją, iż będzie on
użyteczny - jednak BEZ JAKIEJKOLWIEK GWARANCJI, nawet domyślnej
gwarancji PRZYDATNOŚCI HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH
ZASTOSOWAŃ. W celu uzyskania bliższych informacji - Powszechna
Licencja Publiczna GNU.
Z pewnością wraz z niniejszym programem otrzymałeś też egzemplarz
Powszechnej Licencji Publicznej GNU (GNU General Public License);
jeśli nie - napisz do Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA.
*/
#include <RFM69_ATC.h> //Pobierz z: https://github.com/lowpowerlab/rfm69
#define NODEID 1 //Unikalny numer bramki (1 - 254).
#define NETWORKID 100 //Numer sieci (1 - 254) w której działą bramka SUPLA oraz inne transmitery. Bramka oraz max. 6 transmiterów musi działać w sieci o takim samym ID.
#define FREQUENCY RF69_868MHZ //Jeśli posiadasz moduł radiowy pracujący z inną częstotliwością zamień parametr na RF69_433MHZ lub RF69_915MHZ.
//#define IS_RFM69HW_HCW //Usuń zacznik komentarza, jeśli posiadasz moduł radiowy w wersji RFM69HW/HCW.
#define ENCRYPTKEY "qwertyuiopasdfgh" //Klucz kodowania - 16 znaków (ani mniej, ani więcej) - identyczny w bramce SUPLA i we wszystkich transmiterach.
#define ENABLE_ATC //Wstaw znacznik komentarza jeśli chcesz wyłączyć automatyczną kontrolę transmisji (ATC).
#define SERIAL_BAUD 115200 //Prędkość transmisji portu szeregowego.
#define SUPLADEVICE_CPP
#include <SuplaDevice.h>
#define SUPLA_SERVER "svrx.supla.org"
#define LOCATION_ID xxxx
#define LOCATION_PASSWORD "xxxx"
// pobierz identyfikator urządzenia ze strony https://www.supla.org/arduino/get-guid i wprowadź go poniżej
#define GUID {0x5E,0xF9,0x77,0x8B,0x20,0x5F,0xF7,0x38,0xEC,0x84,0x04,0xF6,0x88,0x91,0xEB,0xBD};
RFM69_ATC radio(D8, D2, false);
bool promiscuousMode = false;
const unsigned long period = 600000; //Czas (10 minut) po którym bramka uznaje brak odczytu z transmitera i ustawia wartości wysyłane do Supla Cloud na 0.
double temperature = 0.0;
double humidity = 0.0;
double pressure = 0.0;
double lux = 0.0;
unsigned long startMillis = 0;
unsigned long currentMillis = 0;
unsigned long RFNodesCount = 0;
typedef struct {
int nodeid;
int channelNumber;
double temperature;
double humidity;
double pressure;
double lux;
//double batteryLevel;
unsigned long lastContact;
} RF_TemperatureandHumidityNode;
RF_TemperatureandHumidityNode RFNodes[6];
void get_temperature_and_humidity(int channelNumber, double *temp, double *humidity) {
for (int i = 0; i < RFNodesCount; i++)
if (RFNodes[i].channelNumber == channelNumber)
{
*temp = RFNodes[i].temperature;
*humidity = RFNodes[i].humidity;
}
}
double get_pressure(int channelNumber, double pressure) {
for (int i = 0; i < RFNodesCount; i++)
if (RFNodes[i].channelNumber == (channelNumber - 1) / 2 )
{
pressure = RFNodes[i].pressure;
}
return pressure;
}
double get_temperature(int channelNumber, double lux) {
for (int i = 0; i < RFNodesCount; i++)
if (RFNodes[i].channelNumber == (channelNumber - 1) / 3 )
{
lux = RFNodes[i].lux;
}
return lux;
}
void setup() {
Serial.begin(SERIAL_BAUD);
SuplaDevice.setTemperatureHumidityCallback(&get_temperature_and_humidity);
SuplaDevice.setPressureCallback(&get_pressure);
SuplaDevice.setTemperatureCallback(&get_temperature);
// SuplaDevice.setDistanceCallback(&get_Distance);
SuplaDevice.addDHT22();
SuplaDevice.addPressureSensor();
SuplaDevice.addDS18B20Thermometer();
//SuplaDevice.addDHT22();
//SuplaDevice.addPressureSensor();
//SuplaDevice.addDS18B20Thermometer();
char guid[SUPLA_GUID_SIZE] = GUID;
uint8_t mac[6] = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06};
SuplaDevice.setName("BRAMKA RB-10G2");
SuplaDevice.begin(guid, mac, SUPLA_SERVER, LOCATION_ID, LOCATION_PASSWORD);
radio.initialize(FREQUENCY, NODEID, NETWORKID);
#ifdef IS_RFM69HW_HCW
radio.setHighPower();
#endif
radio.encrypt(ENCRYPTKEY);
radio.promiscuous(promiscuousMode);
char buff[105];
sprintf(buff, "BRAMKA RB-10G. Start komunikacji radiowej na częstotliwości %d MHz...", FREQUENCY == RF69_433MHZ ? 433 : FREQUENCY == RF69_868MHZ ? 868 : 915);
Serial.println(buff);
}
byte ackCount = 0;
uint32_t packetCount = 0;
String getValue(String data, char separator, int index)
{
int found = 0;
int strIndex[] = {0, -1};
int maxIndex = data.length() - 1;
for (int i = 0; i <= maxIndex && found <= index; i++) {
if (data.charAt(i) == separator || i == maxIndex) {
found++;
strIndex[0] = strIndex[1] + 1;
strIndex[1] = (i == maxIndex) ? i + 1 : i;
}
}
return found > index ? data.substring(strIndex[0], strIndex[1]) : "";
}
void readRadioData() {
String value = "";
if (radio.receiveDone())
{
int foundIdx = -1;
for (int i = 0; i < RFNodesCount; i++)
if (RFNodes[i].nodeid == radio.SENDERID)
{
foundIdx = i;
break;
}
Serial.println("Odbieram dane...");
if (foundIdx == -1)
{
if (RFNodesCount < 6)
{
Serial.println("Znalazłem nowy transmiter. Dodaję go do SUPLA Cloud");
RFNodes[RFNodesCount].nodeid = radio.SENDERID;
RFNodes[RFNodesCount].lastContact = millis();
RFNodes[RFNodesCount].channelNumber = radio.SENDERID - 1;
RFNodes[RFNodesCount].temperature = 0.0;
RFNodes[RFNodesCount].humidity = 0.0;
RFNodes[RFNodesCount].pressure = 0.0;
RFNodes[RFNodesCount].lux = 0.0;
// RFNodes[RFNodesCount].batteryLevel = 0;
foundIdx = RFNodesCount;
RFNodesCount++;
} else {
Serial.println("Maksymalna ilość transmiterów przekroczona!");
foundIdx = 0;
}
} else
{
RFNodes[foundIdx].temperature = 0.0;
}
Serial.print("#[");
Serial.print(++packetCount);
Serial.print(']');
Serial.print('['); Serial.print(radio.SENDERID, DEC); Serial.print("] ");
value = "";
for (byte i = 0; i < radio.DATALEN; i++)
if (radio.DATA[i] != ' ')
value += (char)radio.DATA[i];
Serial.println(value);
String tempStr = getValue(value, '|', 0);
String humStr = getValue(value, '|', 1);
String presStr = getValue(value, '|', 2);
String luxStr = getValue(value, '|', 3);
// String battLevelStr = getValue(value, '|', 4);
Serial.print("Temperatura: ");
Serial.println(tempStr);
Serial.print("Wilgotność: ");
Serial.println(humStr);
Serial.print("Ciśnienie: ");
Serial.println(presStr);
Serial.print("Natężenie światła: ");
Serial.println(luxStr);
//Serial.print("Poziom baterii: ");
//Serial.println(battLevelStr);
RFNodes[foundIdx].temperature = tempStr.toFloat();
RFNodes[foundIdx].humidity = humStr.toFloat();
RFNodes[foundIdx].pressure = presStr.toFloat();
RFNodes[foundIdx].lux = luxStr.toFloat();
// RFNodes[foundIdx].batteryLevel = battLevelStr.toFloat();
RFNodes[foundIdx].lastContact = millis();
Serial.print("Poziom sygnału transmitera [RX_RSSI]:"); Serial.print(radio.RSSI); Serial.print(" dBm");
if (radio.ACKRequested())
{
byte theNodeID = radio.SENDERID;
radio.sendACK();
if (ackCount++ % 3 == 0)
{
Serial.print(" ACK TEST - Transmiter ");
Serial.print(theNodeID);
delay(5);
radio.sendWithRetry(theNodeID, "ACK TEST", 8, 0);
}
}
Blink(LED_BUILTIN, 100);
Serial.println();
Serial.println();
}
for (int i = 0; i < RFNodesCount; i++)
{
if (millis() - RFNodes[i].lastContact >= period)
{
RFNodes[i].temperature = -375;
RFNodes[i].humidity = -1;
RFNodes[i].pressure = -10;
RFNodes[i].lux = 0;
// RFNodes[i].batteryLevel = 0;
Serial.print("Brak odczytu z czujnika ");
Serial.println (RFNodes[i].nodeid);
};
}
}
void Blink(byte PIN, int DELAY_MS)
{
pinMode(PIN, OUTPUT);
digitalWrite(PIN, LOW);
delay(DELAY_MS);
digitalWrite(PIN, HIGH);
}
void loop() {
readRadioData();
SuplaDevice.iterate();
}
Ostatnio zmieniony sob paź 24, 2020 12:01 pm przez dogu18, łącznie zmieniany 1 raz.
Pozdrawiam
Grzegorz Labudda
Grzegorz Labudda
Usun swoje dane cloud z kodudogu18 pisze: ↑pt paź 23, 2020 10:52 pm Witam
Proszę o radę.
Czujnik odczytuje natężenie światła odbiornik go odbiera według serial Monitora
Niestety w Supli pokazuje się co jakiś czas wynik i potem wisi na jakiejś wartości.
jak to naprawić??
Używam tego programu
PozdrawiamKod: Zaznacz cały
/* Bramka RB-10G Copyright (C) 2019 Robert Błaszczak Niniejszy program jest wolnym oprogramowaniem; możesz go rozprowadzać dalej i/lub modyfikować na warunkach Powszechnej Licencji Publicznej GNU, wydanej przez Fundację Wolnego Oprogramowania - według wersji 2-giej tej Licencji lub którejś z późniejszych wersji. Niniejszy program rozpowszechniany jest z nadzieją, iż będzie on użyteczny - jednak BEZ JAKIEJKOLWIEK GWARANCJI, nawet domyślnej gwarancji PRZYDATNOŚCI HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ. W celu uzyskania bliższych informacji - Powszechna Licencja Publiczna GNU. Z pewnością wraz z niniejszym programem otrzymałeś też egzemplarz Powszechnej Licencji Publicznej GNU (GNU General Public License); jeśli nie - napisz do Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <RFM69_ATC.h> //Pobierz z: https://github.com/lowpowerlab/rfm69 #define NODEID 1 //Unikalny numer bramki (1 - 254). #define NETWORKID 100 //Numer sieci (1 - 254) w której działą bramka SUPLA oraz inne transmitery. Bramka oraz max. 6 transmiterów musi działać w sieci o takim samym ID. #define FREQUENCY RF69_868MHZ //Jeśli posiadasz moduł radiowy pracujący z inną częstotliwością zamień parametr na RF69_433MHZ lub RF69_915MHZ. //#define IS_RFM69HW_HCW //Usuń zacznik komentarza, jeśli posiadasz moduł radiowy w wersji RFM69HW/HCW. #define ENCRYPTKEY "qwertyuiopasdfgh" //Klucz kodowania - 16 znaków (ani mniej, ani więcej) - identyczny w bramce SUPLA i we wszystkich transmiterach. #define ENABLE_ATC //Wstaw znacznik komentarza jeśli chcesz wyłączyć automatyczną kontrolę transmisji (ATC). #define SERIAL_BAUD 115200 //Prędkość transmisji portu szeregowego. #define SUPLADEVICE_CPP #include <SuplaDevice.h> #define SUPLA_SERVER #define LOCATION_ID #define LOCATION_PASSWORD // pobierz identyfikator urządzenia ze strony https://www.supla.org/arduino/get-guid i wprowadź go poniżej #define GUID {0x5E,0xF9,0x77,0x8B,0x20,0x5F,0xF7,0x38,0xEC,0x84,0x04,0xF6,0x88,0x91,0xEB,0xBD}; RFM69_ATC radio(D8, D2, false); bool promiscuousMode = false; const unsigned long period = 600000; //Czas (10 minut) po którym bramka uznaje brak odczytu z transmitera i ustawia wartości wysyłane do Supla Cloud na 0. double temperature = 0.0; double humidity = 0.0; double pressure = 0.0; double lux = 0.0; unsigned long startMillis = 0; unsigned long currentMillis = 0; unsigned long RFNodesCount = 0; typedef struct { int nodeid; int channelNumber; double temperature; double humidity; double pressure; double lux; //double batteryLevel; unsigned long lastContact; } RF_TemperatureandHumidityNode; RF_TemperatureandHumidityNode RFNodes[6]; void get_temperature_and_humidity(int channelNumber, double *temp, double *humidity) { for (int i = 0; i < RFNodesCount; i++) if (RFNodes[i].channelNumber == channelNumber) { *temp = RFNodes[i].temperature; *humidity = RFNodes[i].humidity; } } double get_pressure(int channelNumber, double pressure) { for (int i = 0; i < RFNodesCount; i++) if (RFNodes[i].channelNumber == (channelNumber - 1) / 2 ) { pressure = RFNodes[i].pressure; } return pressure; } double get_temperature(int channelNumber, double lux) { for (int i = 0; i < RFNodesCount; i++) if (RFNodes[i].channelNumber == (channelNumber - 1) / 3 ) { lux = RFNodes[i].lux; } return lux; } void setup() { Serial.begin(SERIAL_BAUD); SuplaDevice.setTemperatureHumidityCallback(&get_temperature_and_humidity); SuplaDevice.setPressureCallback(&get_pressure); SuplaDevice.setTemperatureCallback(&get_temperature); // SuplaDevice.setDistanceCallback(&get_Distance); SuplaDevice.addDHT22(); SuplaDevice.addPressureSensor(); SuplaDevice.addDS18B20Thermometer(); //SuplaDevice.addDHT22(); //SuplaDevice.addPressureSensor(); //SuplaDevice.addDS18B20Thermometer(); char guid[SUPLA_GUID_SIZE] = GUID; uint8_t mac[6] = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06}; SuplaDevice.setName("BRAMKA RB-10G2"); SuplaDevice.begin(guid, mac, SUPLA_SERVER, LOCATION_ID, LOCATION_PASSWORD); radio.initialize(FREQUENCY, NODEID, NETWORKID); #ifdef IS_RFM69HW_HCW radio.setHighPower(); #endif radio.encrypt(ENCRYPTKEY); radio.promiscuous(promiscuousMode); char buff[105]; sprintf(buff, "BRAMKA RB-10G. Start komunikacji radiowej na częstotliwości %d MHz...", FREQUENCY == RF69_433MHZ ? 433 : FREQUENCY == RF69_868MHZ ? 868 : 915); Serial.println(buff); } byte ackCount = 0; uint32_t packetCount = 0; String getValue(String data, char separator, int index) { int found = 0; int strIndex[] = {0, -1}; int maxIndex = data.length() - 1; for (int i = 0; i <= maxIndex && found <= index; i++) { if (data.charAt(i) == separator || i == maxIndex) { found++; strIndex[0] = strIndex[1] + 1; strIndex[1] = (i == maxIndex) ? i + 1 : i; } } return found > index ? data.substring(strIndex[0], strIndex[1]) : ""; } void readRadioData() { String value = ""; if (radio.receiveDone()) { int foundIdx = -1; for (int i = 0; i < RFNodesCount; i++) if (RFNodes[i].nodeid == radio.SENDERID) { foundIdx = i; break; } Serial.println("Odbieram dane..."); if (foundIdx == -1) { if (RFNodesCount < 6) { Serial.println("Znalazłem nowy transmiter. Dodaję go do SUPLA Cloud"); RFNodes[RFNodesCount].nodeid = radio.SENDERID; RFNodes[RFNodesCount].lastContact = millis(); RFNodes[RFNodesCount].channelNumber = radio.SENDERID - 1; RFNodes[RFNodesCount].temperature = 0.0; RFNodes[RFNodesCount].humidity = 0.0; RFNodes[RFNodesCount].pressure = 0.0; RFNodes[RFNodesCount].lux = 0.0; // RFNodes[RFNodesCount].batteryLevel = 0; foundIdx = RFNodesCount; RFNodesCount++; } else { Serial.println("Maksymalna ilość transmiterów przekroczona!"); foundIdx = 0; } } else { RFNodes[foundIdx].temperature = 0.0; } Serial.print("#["); Serial.print(++packetCount); Serial.print(']'); Serial.print('['); Serial.print(radio.SENDERID, DEC); Serial.print("] "); value = ""; for (byte i = 0; i < radio.DATALEN; i++) if (radio.DATA[i] != ' ') value += (char)radio.DATA[i]; Serial.println(value); String tempStr = getValue(value, '|', 0); String humStr = getValue(value, '|', 1); String presStr = getValue(value, '|', 2); String luxStr = getValue(value, '|', 3); // String battLevelStr = getValue(value, '|', 4); Serial.print("Temperatura: "); Serial.println(tempStr); Serial.print("Wilgotność: "); Serial.println(humStr); Serial.print("Ciśnienie: "); Serial.println(presStr); Serial.print("Natężenie światła: "); Serial.println(luxStr); //Serial.print("Poziom baterii: "); //Serial.println(battLevelStr); RFNodes[foundIdx].temperature = tempStr.toFloat(); RFNodes[foundIdx].humidity = humStr.toFloat(); RFNodes[foundIdx].pressure = presStr.toFloat(); RFNodes[foundIdx].lux = luxStr.toFloat(); // RFNodes[foundIdx].batteryLevel = battLevelStr.toFloat(); RFNodes[foundIdx].lastContact = millis(); Serial.print("Poziom sygnału transmitera [RX_RSSI]:"); Serial.print(radio.RSSI); Serial.print(" dBm"); if (radio.ACKRequested()) { byte theNodeID = radio.SENDERID; radio.sendACK(); if (ackCount++ % 3 == 0) { Serial.print(" ACK TEST - Transmiter "); Serial.print(theNodeID); delay(5); radio.sendWithRetry(theNodeID, "ACK TEST", 8, 0); } } Blink(LED_BUILTIN, 100); Serial.println(); Serial.println(); } for (int i = 0; i < RFNodesCount; i++) { if (millis() - RFNodes[i].lastContact >= period) { RFNodes[i].temperature = -375; RFNodes[i].humidity = -1; RFNodes[i].pressure = -10; RFNodes[i].lux = 0; // RFNodes[i].batteryLevel = 0; Serial.print("Brak odczytu z czujnika "); Serial.println (RFNodes[i].nodeid); }; } } void Blink(byte PIN, int DELAY_MS) { pinMode(PIN, OUTPUT); digitalWrite(PIN, LOW); delay(DELAY_MS); digitalWrite(PIN, HIGH); } void loop() { readRadioData(); SuplaDevice.iterate(); }
jak coś nie działa to włącz zasilanie.....
Robert to może zapytam inaczej bo chyba się nie zrozumieliśmy. Co zrobiłeś ze Swoimi nadajnikami? Zdaje się Miałeś nawet częściowo polutowane płytki pod nowe obudowy Hamonda.Robert Błaszczak pisze: ↑pt paź 23, 2020 11:45 am Jak robiłem RB-10, to nie wiedziałem o istnieniu Xiaomi
A co do cen to prosty rachunek:
Xiaomi LYWSD03MMC - 25 zł / szt. (samodzielnie u Chińczyków kupisz taniej)
Bramka Raspberry Pi Zero W + obudowa + zasilacz + karta microSD + przesyłka - 156,70 zł
5 czujników LYWSD03MMC (na dokładnym SHT31 i dodatkowo z wyświetlaczem LCD w gustownej obudowie) + bramka - 281,70 zł
W projekcie RB-10 5 baterii to już jest 50 zł, a gdzie reszta elementów.
A co z tym pomiarem baterii? Ktoś coś zauważył czy wszyscy wyrzucili swoje nadajniki w kosz?
Nie wiem jakiej baterii używasz, ale poniżej masz wycinek z DataSheet dla LS14250.
Wystarczy spojrzeć na wykres rozładowywania się baterii i wszystko jasne.
Ja u siebie z tego względu nie robiłem poziomów odczytów tylko bezpośredni pomiar napięcia z dwoma miejscami po przecinku. Jednak i tak na nic to się zdało.
.
- Załączniki
-
- LS_1450.PNG (62.75 KiB) Przejrzano 2259 razy
Dzięki za rzeczową odpowiedź. Teraz wszystko jasne, pomiar baterii można sobie darować.Zybi pisze: ↑sob paź 24, 2020 10:23 pmNie wiem jakiej baterii używasz, ale poniżej masz wycinek z DataSheet dla LS14250.
Wystarczy spojrzeć na wykres rozładowywania się baterii i wszystko jasne.
Ja u siebie z tego względu nie robiłem poziomów odczytów tylko bezpośredni pomiar napięcia z dwoma miejscami po przecinku. Jednak i tak na nic to się zdało.
.
- Robert Błaszczak
- Posty: 4008
- Rejestracja: sob gru 22, 2018 8:55 pm
- Lokalizacja: Zielona Góra
- Kontakt:
Całość z tego projektu przekazałem wraz z dokumentacją, linkiem do niniejszego tematu na forum do Zespołu Szkół Elektronicznych na warsztaty praktyczne. Niestety ze względu na zajęcia zdalne, wszystko czeka na lepsze czasy.
Pozdrawiam
Robert Błaszczak
Moja prywatna strona: www.blaszczak.pl
Robert Błaszczak
Moja prywatna strona: www.blaszczak.pl
Dzień dobry.
Ja dalej ciągnę projekt czujniki zewnętrznego temperatury na moteino. mam problem bo średnio co 3-4 dni zawiesza sie nadajnik i trzeba go zresetować. Wygląda to tek ze układ się nie wybudza. Czy jest jakaś opcja żeby co któreś uśpienie układ się resetował??
Pozdrawiam
Ja dalej ciągnę projekt czujniki zewnętrznego temperatury na moteino. mam problem bo średnio co 3-4 dni zawiesza sie nadajnik i trzeba go zresetować. Wygląda to tek ze układ się nie wybudza. Czy jest jakaś opcja żeby co któreś uśpienie układ się resetował??
Pozdrawiam
Pozdrawiam
Grzegorz Labudda
Grzegorz Labudda
U mnie działa T, P, H i natężenie światła teraz na MAX44099 od samego początku projektu. Ani razu nie pamiętam aby się zawieszałodogu18 pisze: ↑wt lis 24, 2020 1:25 pm Dzień dobry.
Ja dalej ciągnę projekt czujniki zewnętrznego temperatury na moteino. mam problem bo średnio co 3-4 dni zawiesza sie nadajnik i trzeba go zresetować. Wygląda to tek ze układ się nie wybudza. Czy jest jakaś opcja żeby co któreś uśpienie układ się resetował??
Pozdrawiam
jak coś nie działa to włącz zasilanie.....