Asystent AI
Arduino Mega 2560 +...
 
Powiadomienia
Wyczyść wszystko

Arduino Mega 2560 + Domoticz na Windowsie. Problem z dodaniem czujników temperatury

8 Wpisów
2 Użytkownicy
0 Reactions
1,927 Wyświetleń
(@pawel1)
Wpisów: 18
Praktykant
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 
[#2785]

Witam.

Potrzebuję pomocy, 

Arduino Mega 2560 + Domoticz na Windowsie.

Problem z dodaniem czujników temperatury do Domoticza, na monitorze COM widać czujniki i ich odczyty, w Domoticzu niestety nie wykrywalne.

Domoticz testowany z przekaźnikami - działają poprawnie, są widoczne i można nimi sterować. 

Probówałem dodać poprzez 1-wire jak i Dummy, niestety nie są wykrywalne. 

Czy w samym domoticzu, trzeba coś jeszcze zdefiniować? 

 


 
Dodane : 15/02/2022 7:49 am
isom
 isom
(@isom)
Wpisów: 5319
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

@pawel1 trochę niespójne zeznania , i trudno coś wywnioskować . Żeby czujniki działały po 1 wire to taka magistrala musi być wspierana przez maszynę na której działa domoticz. Mysensors czyli arduino powinno te czujniki obsłużyć i wykryć automatycznie , jeśli są poprawne adresy i bramka jest widoczna w domoticz . Czy te przekaźniki to działają z arduino czy sobie dummy zrobiłeś ? Za dużo niejasności.

Pod Windowsem najlepiej postawić virtualbox z linuxem i wtedy mniej problemów.


 
Dodane : 15/02/2022 10:33 am
(@pawel1)
Wpisów: 18
Praktykant
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Dziękuję za odpowiedź.

To może po kolei:

1. W Arduino stworzony kod pod DS18B20, czujniki są wykrywane, temperatury wskazywane. (widać to w monitorze COM), wpięte dwa czujniki w jedno DI. (2)

2. Jednocześnie dołączone 4przekaźniki pod inne piny (3-6) zdefiniowane jako LIGHT

3. Bramka widoczna w Domoticzu

4. Domoticz postawiony na Windowsie, przekaźniki od razu zostały wykryte i stamtąd sterowane, czujniki temperatury niestety nie.

 

 


 
Dodane : 15/02/2022 1:03 pm
isom
 isom
(@isom)
Wpisów: 5319
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

@pawel1 a możesz wstawić tu swój kod ? najlepiej użyć <> na pasku i pomiędzy wkleić zawartość. Jeśli to kopia z kodu który wstawiłem wcześniej to nie powinno być problemu.


 
Dodane : 15/02/2022 1:23 pm
(@pawel1)
Wpisów: 18
Praktykant
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Dziękuję za wyodrębnienie tematu.

Monitor Com`a, scr z Domoticza i kod poniżej.

 

image
image
<

// Enable debug prints to serial monitor
#define MY_DEBUG

// Enable and select radio type attached
//#define MY_RADIO_RF24
//#define MY_RADIO_NRF5_ESB
//#define MY_RADIO_RFM69
//#define MY_RADIO_RFM95

// Set LOW transmit power level as default, if you have an amplified NRF-module and
// power your radio separately with a good regulator you can turn up PA level.
#define MY_RF24_PA_LEVEL RF24_PA_LOW

// Enable serial gateway
#define MY_GATEWAY_SERIAL

// Define a lower baud rate for Arduinos running on 8 MHz (Arduino Pro Mini 3.3V & SenseBender)
#if F_CPU == 8000000L
#define MY_BAUD_RATE 115200
#endif

// Enable inclusion mode
#define MY_INCLUSION_MODE_FEATURE
// Enable Inclusion mode button on gateway
//#define MY_INCLUSION_BUTTON_FEATURE

// Inverses behavior of inclusion button (if using external pullup)
//#define MY_INCLUSION_BUTTON_EXTERNAL_PULLUP

// Set inclusion mode duration (in seconds)
#define MY_INCLUSION_MODE_DURATION 60
// Digital pin used for inclusion mode button
//#define MY_INCLUSION_MODE_BUTTON_PIN 3

// Set blinking period
#define MY_DEFAULT_LED_BLINK_PERIOD 300

// Inverses the behavior of leds
//#define MY_WITH_LEDS_BLINKING_INVERSE

// Flash leds on rx/tx/err
// Uncomment to override default HW configurations
//#define MY_DEFAULT_ERR_LED_PIN 4 // Error led pin
//#define MY_DEFAULT_RX_LED_PIN 6 // Receive led pin
//#define MY_DEFAULT_TX_LED_PIN 5 // the PCB, on board LED

#include <MySensors.h>
#include <OneWire.h>
#include <DallasTemperature.h>




#define RELAY_PIN 10 // Arduino Digital I/O pin number for first relay (second on pin+1 etc)
#define NUMBER_OF_RELAYS 4 // Total number of attached relays
#define RELAY_ON 1 // GPIO value to write to turn on attached relay
#define RELAY_OFF 0 // GPIO value to write to turn off attached relay




#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress outsideThermometer = { 0x28, 0x90, 0x5, 0x56, 0xB5, 0x1, 0x3C, 0xFC };
DeviceAddress insideThermometer = { 0x28, 0xEA, 0x8A, 0x56, 0xB5, 0x1, 0x3C, 0xF };







void before()
{
for (int sensor=1, pin=RELAY_PIN; sensor<=NUMBER_OF_RELAYS; sensor++, pin++) {
// Then set relay pins in output mode
pinMode(pin, OUTPUT);
// Set relay to last known state (using eeprom storage)
digitalWrite(pin, loadState(sensor)?RELAY_OFF:RELAY_ON);
}
}

void setup()
{
// start serial port
Serial.begin(115200);
// Start up the library
sensors.begin();
sensors.setResolution(outsideThermometer, 12);
sensors.setResolution(insideThermometer, 12);
}

void printTemperature(DeviceAddress deviceAddress)
{
float tempC = sensors.getTempC(deviceAddress);
if (tempC == -127.00) {
Serial.print("Error getting temperature");
} else {
Serial.print("C: ");
Serial.print(tempC);
}
}

void presentation()
{
// Send the sketch version information to the gateway and Controller
sendSketchInfo("Relay", "1.0");

for (int sensor=1, pin=RELAY_PIN; sensor<=NUMBER_OF_RELAYS; sensor++, pin++) {
// Register all sensors to gw (they will be created as child devices)
present(sensor, S_LIGHT);

}
}

void receive(const MyMessage &message)
{
// We only expect one type of message from controller. But we better check anyway.
if (message.getType()==V_STATUS) {
// Change relay state
digitalWrite(message.getSensor()-1+RELAY_PIN, message.getBool()?RELAY_OFF:RELAY_ON);
// Store state in eeprom
saveState(message.getSensor(), message.getBool());
// Write some debug info
Serial.print("Incoming change for sensor:");
Serial.print(message.getSensor());
Serial.print(", New status: ");
Serial.println(message.getBool());
}
}
void loop(void)
{
delay(2000);
//Serial.print("Getting temperatures...\n\r");
sensors.requestTemperatures();

Serial.print("Temperature czujnika 1: ");
printTemperature(outsideThermometer);
Serial.print("\n\r");

Serial.print("Temperatura czujnika 2: ");
printTemperature(insideThermometer);
Serial.print("\n\r");
>

 
Dodane : 15/02/2022 4:16 pm
isom
 isom
(@isom)
Wpisów: 5319
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

@pawel1 u Ciebie wszystko działa zgodnie z kodem , temperatury wysyłasz tylko do serial monitora , więc nie mają prawa pojawić  się w domoticz.

Na pewno brak 

MyMessage msg(0,V_TEMP);

potem w prezentacji 

present(sensor, S_TEMP);  

Nie ustawiłeś częstotliwości odczytów i o ile w serial monitorze nie robi to zbytniej różnicy to już w domoticz odczyty co sekundę przy większej ilości czujników to nic dobrego.


 
Dodane : 15/02/2022 6:04 pm
(@pawel1)
Wpisów: 18
Praktykant
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Dziękuję na nakierowanie mnie, poszperałem, poczytałem i udało się.

Lecz wiadomo, apetyt rośnie w miarę jedzenia,

1. Po uruchomieniu Domoticza nic nie było, dopiero po jakiejś minucie wszystko się dodało - czy to tak działa? - czy ta komenda poniżej odpowiada za to?

#define MY_INCLUSION_MODE_DURATION 60?

2. Dlaczego sprzęt się nazywa "Z", czy można to zmienić, czy wpływa to na coś?

3. typy termometrów są jak w scn, a fizycznie są DS18, czy to jest różnica?

4. Przesyłam logi z domoticza, są tam błędy, czy są one istotne, czy ew. w jakiś prosty sposób naprawić?

5. Czy można jednocześnie korzystać z monitora COM i demoticza (jeśli GW jest przez COM)? 

6. Posiadam Arduino MEGA 2560 + ESP8266 wbudowane,  próbowałem znaleźć skrypt jak uruchomić ESP8266 na płytce, lecz mi się nie udało, czy mogę uzyskać pomoc od czego zacząć?

 

image
image

 
Dodane : 15/02/2022 11:39 pm
isom
 isom
(@isom)
Wpisów: 5319
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

@pawel1

AD 1 https://www.mysensors.org/build/advanced_gateway   I pamiętaj , że bramka najpierw musi się zameldować do kontrolera - domoticz , dopiero potem może zgłaszać swoje węzły i podłączone do nich czujniki, więc jakiś  czas jest wymagany żeby wyeliminować ewentualne błędy. To oczywiście w niczym nie przeszkadza, bo dalsza praca wszystkich urządzeń jest już online bez opóźnień.

AD 2 Tak nazwałeś Sprzęt w Domoticz przy dodawaniu. W oknie nazwa wstawiłeś "Z" zamiast przyjaznej nazwy i tak masz. Oczywiście można to zmienić.

AD 3 Domoticz rozróżnia kilka typów czujników temp , ale nie mylić z modelami. Jeśli dodajesz samą temperaturę to tak ją widzi domoticz i nie ważne czy to DS18B20 czy NTC 10k , jak dodasz np  czujnik zespolony DHT 22 temp/hum , wtedy typ będzie inny.

AD 4 Błędy w logach odnoszą się do brakujących modułów - pakietów potrzebnych do działania skryptów LUA . Zapewne wynika to z błędów przy instalacji samego domoticz. Do nauki- zabawy nie przeszkadza , docelowo nie polecam tego tak zostawiać.

AD 5 Nie wiem co za kombajn, ale przypuszczam że to ESP8266 umożliwia komunikację po wifi samego arduino z kontrolerem czyli taka bramka wifi zamiast USB . https://www.mysensors.org/build/esp8266_gateway

 


 
Dodane : 16/02/2022 9:05 am
Udostępnij: