8 x DS na ESP

Awatar użytkownika
wojtas567
Posty: 1989
Rejestracja: ndz kwie 03, 2016 7:16 pm
Lokalizacja: Olsztyn

wt paź 30, 2018 6:01 pm

Nastąpił przełom :) Espablo jesteś wielki :D
ale muszę to przetestować żeby móc to udostępnić
Zari pisze:
wt paź 30, 2018 5:45 pm

8 DS na jednym GPIO nie jest raczej problemem. Problem leży w połączeniu z Suplą, tak mi się przynajmniej wydaje.
Ostatnio wgrałem sobie soft z elektrody https://www.elektroda.pl/rtvforum/topic3357545.html i na thingspeak ładnie idzie odczyt z 3 DS na jednym GPIO.
Dokładnie jest tak jak piszesz 10 - 20 szt bez problemu.
Pozdrawiam
Wojtek
Zari
Posty: 42
Rejestracja: ndz wrz 17, 2017 12:30 pm

wt paź 30, 2018 6:09 pm

Hmm... ale przy podłączaniu można sprawdzić każdy z czujników i odpowiednio go podpisać w supli. Jeśli jakiś nawali to już będziesz wiedział który. Z punktu widzenia szarego użytkownika jakim jestem adresy czujników nie są mi do niczego potrzebne. Adresy czujników powinny być jakoś zapisane w sofcie żeby w przypadku choćby resetu/braku prądu/neta nie zamieniły się miejscami :lol:
Zari
Posty: 42
Rejestracja: ndz wrz 17, 2017 12:30 pm

wt paź 30, 2018 6:12 pm

ale muszę to przetestować żeby móc to udostępnić
w razie czego mogę być betatesterem :)
na razie dysponuję 3 wolnymi DS ale kilka jeszcze z Chin płynie :lol:
Awatar użytkownika
Espablo
Posty: 1465
Rejestracja: śr cze 29, 2016 5:04 pm
Lokalizacja: Oświęcim
Kontaktowanie:

wt paź 30, 2018 6:24 pm

Zari pisze:
wt paź 30, 2018 6:09 pm
Adresy czujników powinny być jakoś zapisane w sofcie żeby w przypadku choćby resetu/braku prądu/neta nie zamieniły się miejscami :lol:
Własnie do tego potrzebne są adresy.
Każde urządzenie elektryczne działa o wiele lepiej jeśli podłączysz je do prądu. :? :roll:
https://github.com/Espablo
Awatar użytkownika
slawek
Posty: 2225
Rejestracja: pn mar 14, 2016 11:48 pm
Lokalizacja: Biała Podlaska

wt paź 30, 2018 6:41 pm

Zari pisze:
wt paź 30, 2018 6:12 pm
ale muszę to przetestować żeby móc to udostępnić
w razie czego mogę być betatesterem :)
na razie dysponuję 3 wolnymi DS ale kilka jeszcze z Chin płynie :lol:
Mam 16 wolnych i nie zawaham się ich użyć...
Gdy wszystkie możliwe sposoby zawiodą - pozostaje przeczytać instrukcję...
Awatar użytkownika
Piotr61
Posty: 57
Rejestracja: pt wrz 15, 2017 12:59 pm

wt paź 30, 2018 8:04 pm

wojtas567 pisze:
wt paź 30, 2018 6:01 pm
Nastąpił przełom :) Espablo jesteś wielki :D
...
Mnie natomiast zastanawia, dlaczego autor biblioteki(tu się pewnie narażę) nie chce wskazać rozwiązania, a to przecież On, "przyciął kolejkę" do dwóch :oops: :mrgreen:
wojtas567 pisze:
pn paź 29, 2018 8:15 pm
...
Druga sprawa i tu zwracam się z pytaniem i prośbą o pomoc odnośnie pętli odczytu czujników, zauważyłem, że funkcja
sensors.requestTemperatures();
odczytuje wszystkie czujniki na raz i w zasadzie wystarczyło by teraz te dane rozesłać na poszczególne kanały, w programie natomiast jest tak, że odczyt z czujników jest 8 razy a to spowalnia wyświetlanie pomiarów.
Na dzień dzisiejszy nie potrafię tego w SUPLI zmienić, ale może komuś się to uda.
Ja to robię tak:

Kod: Zaznacz cały

//-------------------------------------------------------------------------------

 double get_temperatures(int channelNumber, double last_val) {
 
     double t = last_val;
      
     t = ow.getTempCByIndex(channelNumber);
     if( channelNumber==devices-1 ) ow.requestTemperatures();  //po odczytaniu temperatury z ostatniego
     
     return t;  
 } 
//-------------------------------------------------------------------------------
 void my_status(int n_status,const char *ch_status) {
 
  mystat = n_status;
  supla_log(LOG_DEBUG, "%i-%s", n_status, ch_status);
}
//-------------------------------------------------------------------------------

 void setup() {
   
    pinMode(STATUS_LED,OUTPUT);
    digitalWrite(STATUS_LED,LED_OFF); 

    Serial.begin(74480);
    ow.begin();
    devices=ow.getDeviceCount();
    if( devices ) {
        ow.setWaitForConversion(false);
        ow.requestTemperatures();
        SuplaDevice.setTemperatureCallback(&get_temperatures);

        for(uint8_t a = 0; a < devices; a++) {
            SuplaDevice.addDS18B20Thermometer();
        }
    }    
    
    //tu dodajemy kolejne kanały np. RELAY i.t.p.
    
    SuplaDevice.setName("ESP8266-multiDS");
    SuplaDevice.setStatusFuncImpl(&my_status); 
    SuplaDevice.begin( GUID, 
                       WiFi.macAddress(mac), 
                       SUPLA_SERVER_NAME,    
                       SUPLA_LOCATION_ID,    
                       SUPLA_PASSWD);        

}   
//-------------------------------------------------------------------------------

 void loop() {

    SuplaDevice.iterate();
    digitalWrite(STATUS_LED, mystat==STATUS_REGISTERED_AND_READY ? LED_ON : LED_OFF);
}

Wadą tego rozwiązania jest to, że temperatury wysyłane do serwera, są "przestarzałe" o ~20s.
Ostatnio zmieniony wt paź 30, 2018 8:33 pm przez Piotr61, łącznie zmieniany 1 raz.
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem
Awatar użytkownika
wojtas567
Posty: 1989
Rejestracja: ndz kwie 03, 2016 7:16 pm
Lokalizacja: Olsztyn

wt paź 30, 2018 8:32 pm

A ile czujników w ten sposób odczytujesz?
Pozdrawiam
Wojtek
Awatar użytkownika
dawidd
Posty: 445
Rejestracja: wt gru 19, 2017 12:45 pm

wt paź 30, 2018 8:36 pm

Świetna robota, życzę dalszego powodzenia w klepaniu kodu 😀
Awatar użytkownika
Piotr61
Posty: 57
Rejestracja: pt wrz 15, 2017 12:59 pm

wt paź 30, 2018 8:39 pm

wojtas567 pisze:
wt paź 30, 2018 8:32 pm
A ile czujników w ten sposób odczytujesz?
Wszystkie jakie mam, czyli aktualnie 9.

PS.

Tylko żeby wysłać wszystkie odczytane temperatury NA RAZ do chmury, to należy zastosować pewien "trick", o którym napiszę w nie długim czasie 8-)
dawidd pisze:
wt paź 30, 2018 8:36 pm
Świetna robota, życzę dalszego powodzenia w klepaniu kodu 😀
I po co ten sarkazm kolego :?:
Ostatnio zmieniony wt paź 30, 2018 8:45 pm przez Piotr61, łącznie zmieniany 1 raz.
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem
Awatar użytkownika
dawidd
Posty: 445
Rejestracja: wt gru 19, 2017 12:45 pm

wt paź 30, 2018 9:19 pm

Może źle to zabrzmiało, ale to nie sarkazm tylko pochwała
ODPOWIEDZ