Skocz do zawartości

Prośba o pomoc w napisaniu funkcji


SOYER

Pomocna odpowiedź

(edytowany)

Czujniki RCWL-0516 występują w dwóch postaciach - starej:

image.thumb.png.af599723179fe80d2efb3f8b9b1a759d.png

i nowej (poznajemy ją po osobnym LDO na spodniej stronie):

image.thumb.png.985863be3a7f73854faaeae44327e848.png

 

Ze starą wersją też miałem kłopoty, nowe działają dobrze.

 

 

Edytowano przez jand
Link do komentarza
Share on other sites

Faktycznie, nie zauważyłem, ale mam i te i te.

Ten z osobnym LDO działa jak dotykowy, ten bez sieje fałszywe triggery;))), ale może jest za blisko esp. Co nie zmienia sprawy, że ten bez osobnego LDO(starszy model?) działa lepiej.

Link do komentarza
Share on other sites

12 minut temu, SOYER napisał:

ten bez osobnego LDO(starszy model?) działa lepiej.

Dokładnie odwrotnie, niż u mnie.

Link do komentarza
Share on other sites

(edytowany)

Pewnie juz gdzies liczysz czas wschodu / zachodu, ale gdyby ktos szukal:

#include <sunset.h> //https://github.com/buelowp/sunset
SunSet sun;
struct SUN {
  char calcday;
  unsigned int sunrise;
  unsigned int sunset;
} solarday;

#define LATITUDE 50.0
#define LONGITUDE 20.0
#define DST_OFFSET 0  // localtime with UTC difference in minutes

void setup() {
  Serial.begin(9600);
  solarday.calcday = 0;
  sun.setPosition(LATITUDE, LONGITUDE, DST_OFFSET);
  sun.setTZOffset(DST_OFFSET);
}

void loop() {
    struct timeval tv;
    gettimeofday(&tv, NULL);
    time_t moment = tv.tv_sec;     //time(NULL);
    //tv.tv_usec     microseconds https://pubs.opengroup.org/onlinepubs/007908775/xsh/systime.h.html
    tm* utc_tm = gmtime(&moment);  //https://pl.wikibooks.org/wiki/C/tm
 
      if (utc_tm->tm_year > 121 && utc_tm->tm_mday != solarday.calcday) {
        sun.setCurrentDate(utc_tm->tm_year + 1900, utc_tm->tm_mon + 1, utc_tm->tm_mday);
        const unsigned long secInDay = 24UL * 60UL * 60UL;
        solarday.sunrise = static_cast<int>(sun.calcSunrise() * 60.);
        if (solarday.sunrise > secInDay) solarday.sunrise -= secInDay;
        solarday.sunset = static_cast<int>(sun.calcSunset() * 60.);
        if (solarday.sunset > secInDay) solarday.sunset -= secInDay;
        solarday.calcday = utc_tm->tm_mday;
        Serial.println("\n\n\n\n" + String(solarday.sunrise) + "\n" + String(solarday.sunset));
      }
}

https://github.com/buelowp/sunset
Automatyczne pobieranie czasu systemowego z NTP dla ESP8266 / ESP32:

void setup(){
  //configTime(0, 0, "pool.ntp.org");
  configTime("CET-1CEST,M3.5.0,M10.5.0/3", "pool.ntp.org"); //https://raw.githubusercontent.com/nayarsystems/posix_tz_db/master/zones.csv
}

 

Edytowano przez rziomber
  • Lubię! 2
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Robię to inaczej, czas systemowy pobieram z Supli, czas wschodu i zachodu liczę biblioteką, a sam wyliczam tylko wschód i zachód zmienione o offset czasowy ustawiany z poziomu webinterface supli. Bo wiadomo, że cino robi się teochę po zachodzie, a jasno trochę przed wschodem.

Dzięki.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.