Skocz do zawartości

Połączenie dwóch esp8266 do pomiaru temperatur


jaro44

Pomocna odpowiedź

Ok, już rozumiem, ale projekt nie do końca jest mojego pomysłu, to tylko przerobiony (ulepszony o zewnętrzne czujniki)  projekt innej osoby,

która zrobiła również apkę dla android.

W dodatku przerobiony tylko i wyłącznie dzięki ogromnemu wkładowi innej osoby z tego forum (pewnie się domyślasz o kim piszę).

Oczywiście jak poprawię oled i zorganizuję jakieś boxy na te urządzonka to wszystko mogę ładnie opisać, udokumentować i wrzucić dla innych.

Może ktoś wykorzysta.

Jeszcze raz dziękuję za pomoc, a teraz muszę się napić (również za Twoje zdrowie).

Link do komentarza
Share on other sites

4 godziny temu, jaro44 napisał:

Napisałem, bo to już miałem opanowane, wyświetlacz wersji autora termika dodałem i działał jak chciałem.

Pewnie tradycyjnie znów jakąś pierdółką przeoczyłem, zaraz to sprawdzam i poprawiam.

delay mogę użyć, czy też kombinować z millis?

nie odpowiedziałeś mi jeszcze na jedno istotne pytanie

mogę delay użyć dla wyświetlania, czy może coś namieszać?

obraz.png

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

7 minut temu, jaro44 napisał:

mogę delay użyć dla wyświetlania, czy może coś namieszać?

A możesz w ogóle zapomnieć o istnieniu delay? Poza nadajnikiem oraz funkcją setup głównego programu (które nie są interaktywne) nie powinno być żadnych delay (poza kilkoma przypadkami, które tu akurat nie występują).

Gdzie chciałbyś tego delaya wsadzić i po co? Pamiętaj, że w czasie delay:

a) nie odbierasz danych z zewnętrznych termometrów

b) nie odpowiadasz na zapytania termika

c) nie mierzysz temperatury

d) i tak dalej

Powiedz po co ten delay, znajdziemy inne rozwiązanie (ew. sam znajdziesz jak się postarasz).

Link do komentarza
Share on other sites

2 minuty temu, ethanak napisał:

Powiedz po co ten delay, znajdziemy inne rozwiązanie (ew. sam znajdziesz jak się postarasz).

Nie no, pewnie znajdę na przykładzie tego co robiliśmy z millis.

5 minut temu, ethanak napisał:

Gdzie chciałbyś tego delaya wsadzić i po co?

Chodzi o naprzemienne wyświetlanie temperatur na wyświetlaczu, bo ze względu na jego rozmiar wszystkie naraz będą niewidoczne

 

Link do komentarza
Share on other sites

Pewnie że powinieneś sam to znaleźć.

Tylko uważaj: wyświetlanie ma zajść w chwili, gdy:

a) upłynął czas zmiany i zmieniamy temperaturę

lub

b) zmieniły się odczyty termometru

Właściwie powinno być "zmieniły się odczyty aktualnie wyświetlanego termometru" ale to można zostawić sobie na później.

Może czas poczytać sobie o tym, co to są funkcje i z czym się to je? Tu na Forbocie jest taki fajny kurs Arduino...

  

8 minut temu, jaro44 napisał:

Chodzi o naprzemienne wyświetlanie temperatur na wyświetlaczu, bo ze względu na jego rozmiar wszystkie naraz będą niewidoczne


Ja sobie zrobiłem coś co wyświetla:

  • godzinę
  • bieżącą datę
  • prognozę pogody skróconą na trzy dni (skrolowana jedna linijka)
  • temperaturę wewnątrz
  • temperaturę na zewnątrz

I wszystko na 0.96 cala oledzie 🙂

 

Edytowano przez ethanak
Link do komentarza
Share on other sites

mi bardziej chodziło on coś w stylu 10s wyswietla temperaturę salonu 10s wyświetla temeraturę zewnetrzną

i tak w pętli

 

coś na wzór tego:

void loop() {
  
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE); 
display.setCursor(4,4);
display.println("temperatura w salonie");
display.display();
delay(60000);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE); 
display.setCursor(4,4);
display.println("temperatura zewn.");
display.display();
delay(60000);
}

 

Link do komentarza
Share on other sites

No to coś takiego już mieliśmy (wyświetlanie co dwie sekundy). Tyle że za każdym razem wyświetlasz kolejny termometr.

Naprawdę, łatwiej będzie stworzyć funkcję wyświetl(numer) - tylko do tego trzeba zajrzeć do kursu (po polsku) lub podręcznika C/C++ (takoż po polsku)...

Nie mówiąc o tym, że ten "wzór" ma jedną, ale za to potężną wadę: dwukrotnie powtórzony jest dokładnie ten sam kod. Po co? Jak będzie dwadzieścia termometrów to powtórzysz kod dwadzieścia razy?

Link do komentarza
Share on other sites

zależy mi tylko na dwóch salon i zewnątrz, ale może faktycznie innym będzie potrzebne więcej.

i jeszcze jedno da radę jakoś wyświetlić °C bo tak

sprintf(bufor,"%6.2f°C", termometr[0]/100.0);

mi wyświetla zamiast  °  krzaczek?

Link do komentarza
Share on other sites

24 minuty temu, jaro44 napisał:

da radę jakoś wyświetlić °C

 

Nie pamiętam teraz numerków znaków... ty chyba będzie \370 (jak mi napiszesz co wyświetla to podam prawidłowy kod).

Czyli

"%6.2f\370C"

 

Link do komentarza
Share on other sites

\370 i \371 wyświetla sie identycznie

musiałem przerobić bibliotekę Adafruit_SSD1306.h żeby się poprawnie wyświetlało 128x64 i teraz muszę wszystko od nowa ustawiać,

ale jakość wyświetlania się znacząco poprawiła

przyszło mi do głowy, że może fonty trzeba zmienić?

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.