Skocz do zawartości

Minitemp - gadający termometr (i coś więcej)


Pomocna odpowiedź

20 godzin temu, Danyeru napisał:

A skorzystam. 

Czyli znakiem tego trzeba działać dalej 🙂

Dzisiaj był dzień CSS - niestety tabelki odpadły, bo screenreader uznał to za dane tabelaryczne (jako że zawierały th i caption) i zaczął coś smędzić o wierszach i kolumnach. Ale jakoś sobie poradziłem bez tabelek, efekt poniżej:

pogody.thumb.png.6ad8954caaf4b14bf9ef02c4307e95ed.png

Teraz trochę odpoczynku i trzeba się zabierać za serwer www żeby mieć święty spokój.

 

  • Lubię! 1
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

No i kolejny mały kroczek - serwer www do ustawień już ładnie działa, można się już nim nie przejmować.

Zastanawiam się jeszcze nad jednym: ponieważ urządzenie ma podłączone jakieś tam termometry, barometry i takie tam, można by go użyć jako źródłą danych dla innych urządzeń w domowej sieci (Domoticz, Home Assistant czy cokolwiek). Można kosztem kilkunastu linijek programu zrobić coś w stylu:

Request HTTP: /current.cgi

Response JSON:
{
    "tempin" : <float>,
    "tempout" : <float>,
    "pressure" : <int>,
    "hummout" : <float>,
    "hummin" : <float>,
    "extpower" : <int>
}

 Nieznane wartości jako null. Pole extpower to stan akumulatora zewnętrznego czujnika, możliwe to:

  • Urządzenie podłączone do USB
  • Brak wbudowanego pomiaru napięcia
  • Akumulator naładowany
  • Akumulator wymaga ładowania
  • Krytyczny poziom naładowania akumulatora

Warto?

 

 

 

 

Link do komentarza
Share on other sites

(edytowany)

Zgodnie z obietnicą pierwsza wersja kodu (powiedzmy że raczej do poczytania, ale jak komuś się chce to może pokompilować): Pogotest.zip

Binarki dorzucę później razem z instrukcją wgrywania.

W kodzie z ciekawostek:

  • Biblioteka IR działająca na najnowszych wersjach boardu esp32 (3.0.2 w moim przypadku). Nie próbowałem nadawania, ale odbieranie działa. W porównaniu z oryginałem dodałem tylko kodowanie HGW (pilot od dekodera Polsatu). Działa na S3, na C3 sprawdzę sle powinna według dokumentacji.
  • Sposób na niektóre uparte płytki na których nie działa printf (czyli zmuszenie printfa aby wysyłał wszystko na Serial a nie na Księżyc).
  • No i może ktoś się tam czegoś ciekawego doszuka...

 

Edytowano przez ethanak
  • Lubię! 1
Link do komentarza
Share on other sites

No, widzę już metę przynajmniej dla zwykłego devkita. Uruchomiony serwer telnet do ustawień - okazało się to banalne, bo ESPTelnetStream mogę użyć tam gdzie używałem Serial, czyli sprowadziło się to do dosłownie 50 linii kodu.

Wrzucę jutro poglądowy kod bo mi jeszcze jeden drobiazg został (wstępne ustawienia w trybie AP, a do tego muszę przypomnieć sobie w której szufladzie leży dongiel wifi).

Zostało jeszcze trochę flasha wolnego - ciekawe czy zmieszczę kalendarzyk 🙂

Link do komentarza
Share on other sites

No i następna wersja: Pogotest2.zip

Muszę się jeszcze pozbyć brzydkich duplikatów funkcji, wywalenie debugowych printfów zostawiam na koniec.

I oczywiście ślicznie ruszyło na XIAO S3 - wystarczyło porozmawiać trochę z arduino-cli na temat właściwych partycji 🙂

A kalendarzyk jak się nie zmieści na devkicie to na XIAO łaski nie robi!

 

  • Lubię! 1
Link do komentarza
Share on other sites

24 minuty temu, ethanak napisał:

błąd w pierwszych linijkach setup()

    if (!netPrefs.ssid[0]) imAp=1;
    else if (!bncBut.read()) {
        delay(100);
        bncBut.update();
        if (!bncBut.read()) imAp=1;
    }
    if (imAp) {
        setup_ap();
        return;
    }

Czyżby tutaj? 
A z NVS trochę jakby się zmieniło od starszych wersji 
 

	// Initialize NVS
	esp_err_t ret = nvs_flash_init();
	if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
		ESP_ERROR_CHECK(nvs_flash_erase());
		ret = nvs_flash_init();
	}
	ESP_ERROR_CHECK(ret);

 

 

Link do komentarza
Share on other sites

(edytowany)

Niestety, nie to 🙂

@_LM_ ten fragment to włączenie AP do pierwszego ustawienia, czyli możliwość wpisania SSID, hasła i innych pierdół. Błąd jest dużo wcześniej, aż kłuje w oczy, co ciekawsze wszytstko działa (no, prawie) 🙂

@KatzePL o dzięki, tego nawet nie zauważyłem! Na szczęście nie wpływa to na działanie, ale poprawić trzeba!

Edytowano przez ethanak
Link do komentarza
Share on other sites

- a ja jakoś nie mogę znależć bibliotek "driver/rmt_rx.h", "driver/rmt_tx.h", podany link junkfix nie zawiera tych bibliotek albo ja cos przeoczyłem

Edytowano przez 99teki
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • 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.