Skocz do zawartości

Termometr z wyświetlaczem na 32 LED WS2812


Pomocna odpowiedź

Film.rarFotka.thumb.jpg.cea37ade95a58a65ab8e7c97e118f7da.jpgProtel Schematic.pdf

Wczoraj rozpocząłem prace nad termometrem. Niewielka część już działa konkretnie wyświetlacz na WS2812 co widać na filmie. Diagnostyka po UART działa. USB można by odpalić ale nie planuję. Do zrobienia został odczyt DS18B20, to banał, bo już kiedyś robiłem więc CTRL+C, CTRL+V.  OLED'a też robiłem więc prosta sprawa.DTH11 na razie nie planuję używać ale też go kiedyś robiłem. Podobnie odbiornik IR, robiłem ale nie będę obsługiwał, ESP-01 ma miejsce na PCB ale na razie nie będzie używany. Poza obsługą peryferii zostanie jeszcze odczyt zadajników kodu i potencjometru po czym poskładać program w całość.

Jak to będzie działać? Odczytana temperatur będzie wyświetlana na OLED i WS2812. Skala będzie zmieniał kolor od niebieskiego, przez zielony, żółty do czerwonego. Temperaturę reprezentowaną przez dolną diodę ustawia się zadajnikiem TEMP_L, temperaturę ostatniej, górnej diody, zadajnikiem TEMP_H. Jak zadajnikiem o 16 pozycjach objąć zakres do np 150 stopni? Prosto, wartość 1 to 5 stopni, 2, to 10 stopni, itd do 150 stopni. Można by zrobić rozdzielczość 3 a nie 5 stopni, co obejmie zakres do 50 stopni. Jeszcze nie wiem jak będzie, może rozdzielczość ustawiania przez UART i zapamiętana w emulowanym EEPROM? Termometr ma służyć do pomiaru temperatur dodatnich, jak będę miał potrzebę pomiaru ujemnych, to skala będzie "rosnąć" od góry, od niebieskiego do białego. Na PCB jest przycisk, nim będzie można wybierać, z którego termometru wynik jest prezentowany na wyświetlaczu bo przewiduję ich kilka. Potencjometrem będzie można regulować jasność LED. Mam w rezerwie sporo wejść, może dodam fotorezystor, który umożliwi automatyczną regulację jasności.

Sprzęt. STM32F072, 1-Wire zabezpieczony jak należy układem DS9503. Do zasilania przewiduję zewnętrzny zasilacz w wtykiem mini USB. Stabilizator SPX1117-3.3 więc da sobie radę nawet z ESP-01. Konwersja poziomów dla WS2812 zrobiona na rezystorze. W razie potrzeby, przy długich połączeniach pomiędzy PCB a WS2812, można skorzystać z pomocy 74HCT2G00. PCB dopasowana do obudowy HAMMOND 1591CFL

Kolejny raz producent PCB zapewnił mi "rozrywkę" polegającą na szukaniu błędu jaki popełnił.

895090519_1pcb.thumb.gif.12106d75ff0ee3451d898a6d3802a6d3.gif1254435000_1PIC001.thumb.JPG.b17519cc7c4d31ee8e93eea7865fca3f.JPG852746941_1PIC003.thumb.JPG.a959081265fd45d7d583253840b365d6.JPG

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

(edytowany)
23 minuty temu, ethanak napisał:

Ja z ciekawości: jeśli masz tam ESP to po co STM32?

Bo domyślnie termometr nie jest wyposażony w Wi-Fi. Ponadto, ESP-01 ma za mało pinów, ESP8266 nie da rady, bo ma jedno wejście ADC a na tą chwilę mam zamiar użyć 2. ESP32 bezpośrednio też nie da rady (za mało GPIO - wrzucę schemat termometru bo zapomniałem). Nie pamiętam ile UART ma ESP32, w tej chwili używam 2 ale w projekcie widzę 4. Czy ESP zmuszę do swoich VID i PID? Nie wiem, bo ESP prawie zawsze używam tylko jako mostka Wi-Fi UART. Jak z debugowaniem ESP? Nie mam pojęcia. Co z DMA? Używam 2, do WS2812 przez USART i I2C. Na ESP zrobię konwersje poziomów z 3,3V na 5V jednym rezystorem? Na 90% nie.

Wiele osób mnie namawiało na ESP ale udało mi się użyć tylko w bardzo prostych projektach.

Edytowano przez InspektorGadzet
Link do komentarza
Share on other sites

Umieszczenie anteny (ten meander na module) w obrębie płytki głównej to częsty błąd. Jeżeli jeszcze pod nią jest masa całości, to będzie to działać "na oparach" i bez sensu pożerać prąd - grzejesz mocą swojego nadajnika elementy wokół zamiast promieniować fale EM, odstarajasz antenę i ekranujesz ją od świata.. Antena to nie jest opornik, który możesz schować gdziekolwiek a gdy jest na module to możesz o niej zapomnieć, bo ktoś już ją zrobił i jemu działało. 

Termometry "analogowe" miały fajną własność polagającą na pokazywaniu "ułamków" - z położenia słupka rtęci czy co  tam było w rurce można było odczytać nie tylko pełne jednostki, ale także wartości pomiędzy. No a przede wszystkim nawet zwykły termometr pokojowy o długości 15cm miał rozdzielczość 1°C i szansę odczytania połówek. Tutaj, gdy zrobisz nawet swój najwęższy planowany zakres 50°C i tak rozdzielczość będzie żałosna. To w zasadzie gadżet do niczego, bo czy jest 17 czy 20 stopni to sam czuję. Może napisz do czego to ma być (np. ładnie świecąca dekoracja w biurze) a nie tylko co będzie robić, bo jakoś nie czuję sensowności budowania termometru przy podanych założeniach. To raczej wskaźnik "czy w garażu jest już prawie tak gorąco jak na podwórku" albo "czy miód w spiżarni już się kisi w upale" niż termometr.

A gdy skala automatycznie się rozszerzy, to skąd biedny człowiek bęzie wiedział ile konkretnie jest stopni gdy nawet podziałka na LEDach się zmieni?

EDIT: Dzięki za schemat, to zawsze lepsze niż dwa akapity tekstu opisu układu.

Edytowano przez marek1707
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

(edytowany)
11 minut temu, marek1707 napisał:

Jeżeli jeszcze pod nią jest masa całości, to będzie to działać "na oparach"

Jakbyś przyjrzał się rysunkowi PCB, to zobaczyłbyś, że nie ma tam nie tylko masy ale i ścieżek.

 

11 minut temu, marek1707 napisał:

Termometry "analogowe" miały fajną własność polagającą na pokazywaniu "ułamków" - z położenia słupka rtęci czy co  tam było w rurce można było odczytać nie tylko pełne jednostki, ale także wartości pomiędzy

Jaki problem zrobić płynną zmianę intensywności? Pierwotnie o tym nie myślałem, ale chyba dodam taką funkcję.

 

11 minut temu, marek1707 napisał:

No a przede wszystkim nawet zwykły termometr pokojowy o długości 15cm miał rozdzielczość 1°C i szansę odczytania połówek.

Z odległości kilku metrów? Ponadto jest OLED a rozdzielczości 0,0625 stopnia, to na tradycyjnym chyba nie osiągniesz.

 

11 minut temu, marek1707 napisał:

Może napisz do czego to ma być (np. ładnie świecąca dekoracja w biurze) a nie tylko co będzie robić, bo jakoś nie czuję sensowności budowania termometru przy podanych założeniach

Nie mam pojęcia, takie dostałem zlecenie a konkretnie: 32 WS2812, zakres wyświetlania regulowany zadajnikiem/zworkami, DS18B20.

 

11 minut temu, marek1707 napisał:

A gdy skala automatycznie się rozszerzy

Niby dlaczego ma się automatycznie rozszerzyć? Zadajniki magicznie zmienia swoje nastawy?

Edytowano przez InspektorGadzet
Link do komentarza
Share on other sites

Na zdjęciu nie pokazałeś dolnej strony płytki więc nie wiem co tam jest. Jeśli pusto to super - to minimum wymagań, ale dodatkowy laminat pod anteną także robi swoje (EpsilonR to jakieś 4 a nie 1 i stratność na 2.4GHz sporo większa niż powietrze). Jeżeli producent stroił antenę w powietrzu (a nie ma powodu by tak nie zrobił), to Ty też masz tak mieć: albo antena wysunięta poza PCB albo spore wycięcie gdzieś w rogu płytki, żeby moduł nie wystawał poza obrys PCB/obudowy. Na dodatek obok anteny jest wysoki wyświetlacz - to także robi warunki. No niestety, radio ma swoje wymagania a wstawienie na schemat jakiegoś gotowego modułu nie zwalnia od jego poprawnej aplikacji w fizycznym układzie.

12 minut temu, InspektorGadzet napisał:

Jaki problem zrobić płynną zmianę intensywności? Pierwotnie o tym nie myślałem, ale chyba dodam taką funkcję.

To świetny pomysł.

12 minut temu, InspektorGadzet napisał:

Z odległości kilku metrów? Ponadto jest OLED

OLED jest tylko dodatkiem w obudowie schowanej gdzieś w szufladzie. Jak rozumiem głównym "wyświetlaczem" są LEDy a te wypadają słabo. Tremometr pokojowy czytam z odległości metra. Nie znamy Twojej aplikacji, nie nie napisałeś więc odnosimy to do znanych sobie warunków. Nie wspominałeś o kilku metrach.

15 minut temu, InspektorGadzet napisał:

takie dostałem zlecenie

Ok, to wiele tłumaczy, nasz klient nasz pan.. Szkoda, że to także nie znalazło się w założeniach. Inaczej traktuje się założenia narzucone przez zamawiającego a inaczej własne pomysły z którymi można dyskutować.

16 minut temu, InspektorGadzet napisał:

Niby dlaczego ma się automatycznie rozszerzyć?

Tak zrozumiałem to zdanie:

1 godzinę temu, InspektorGadzet napisał:

jak będę miał potrzebę pomiaru ujemnych, to skala będzie "rosnąć" od góry, od niebieskiego do białego

Uznałem, że dynamicznie bedziesz rozszerzał zakres i przeliczał wskazania gdy urządzenie zmięrzy coś poza przyjętą skalą.

Link do komentarza
Share on other sites

18 minut temu, marek1707 napisał:

Uznałem, że dynamicznie bedziesz rozszerzał zakres i przeliczał wskazania gdy urządzenie zmięrzy coś poza przyjętą skalą.

W założeniach jest pomiar temperatur dodatnich, ujemne to mój pomysł bo chyba sobie w pokoju taki powieszę a przyciskiem czy z nadajnika IR, będę mógł wybierać, który termometr chcę widzieć.

 

21 minut temu, marek1707 napisał:

OLED jest tylko dodatkiem w obudowie schowanej gdzieś w szufladzie

W założeniu ma być pudełko na ścianie do niego LED z możliwością odłączenia. OLED to mój pomysł. Była powierzchnia do wykorzystania to dałem złącze.

 

22 minuty temu, marek1707 napisał:

Nie wspominałeś o kilku metrach.

Wydaje mi się, że taki termometr ma być odczytywany z dużej odległości i dawać orientacyjną informację o temperaturze. Gdzie to zawiesi klient i z jakiej odległości będzie czytał? Nie wiem?

 

Co do ESP, to nie było go w założeniach. Jak będzie parcie aby go użyć, to nie problem zrobić nowszą wersję PCB. Ponadto, jak pamiętam, są ESP z wyjściem na antenę zewnętrzną.

Link do komentarza
Share on other sites

11 minut temu, InspektorGadzet napisał:

W założeniu ma być pudełko na ścianie

Acha, to zmienia wszystko. LEDy były w tytule, myślałem że to najważniejsza część urządzenia. A skoro jesteśmy przy odczytcie z kilku metrów, to może zamiast (moim zdaniem) dość pretensjonalnego paska żarówiastych LEDów można dać (w kolejnej wersji?) wyświetlacz TFT (lub OLED?) RGB. Wtedy np. kolor tła lub napisów mógłby sygnalizować na jednymi i tym samym urządzeniu orientacyjną temperaturę w wybranym miejscu bez potrzeby podchodzenia i czytania mikroskopijnych literek. Rozdzielczość takiego sposobu jest jeszcze mniejsza niż paska LEDów, to fakt, ale może by wystarczyła - w szczególności gdyby skala kolorów była nieliniowa i robiła się "niepokojąco" inna od neutralnie zielonej: żółta-czerwona-niebieska-biała dla pewnych stanów specjalnych. Być może w wersji oszczędnościowej wystarczyłby taki ekran jak teraz plus dosłownie jedna dioda RGB wmontowana w panel przedni i pokazująca kolorem temperaturę. Przy odpowiednim dobraniu skali kolorów wprawne oko z daleka wyczuwałoby ew. anamalie.

Antena zewnętrzna to zawsze dobry pomysł. Te zintegrowane to w zasadzie zło konieczne, powodowane ograniczeniami wymiarów czy budżetu i zerowymi wymaganiami zasięgowo-sprawnościowo-prądowymii. Trzeba od tego uciekać zawsze gdy tylko jest taka możliwość.

Link do komentarza
Share on other sites

TFT to spore koszty. Można kupić monitory zastępujące klawiaturę. Cena poniżej 1000zł, wymiary jak pamiętam 50..60cm na 12..15cm. Oczywiście ekran dotykowy. Wejście DHMI więc po RPi trzeba by sięgnąć. Te monitory to alternatywa do przycisków z wyświetlaczem 128x128 (widziałem wersje mono), ceny dokładnie nie pamiętam, ale ponad 100zł na pewno. Jeśli mam więc 10 przycisków to lepiej dać monitor (zakładam cenę przycisku 100, jak wyższa to przy mniejszej liczbie klawiszy się opłaca monitor)  o ile oczywiście dysponuje HDMI jak nie to od np 12 przycisków się opłaca (koszt RPi, karty SD)

Link do komentarza
Share on other sites

Co do wyświetlacza i odczytu z odległości: pamiętaj, że ludzkie oko bardzo dobrze i bardzo szybko odróżnia kąty (np. na wskazówkowym woltomierzu dużo szybciej zorientujesz się jakie mniej więcej jest napięcie niż przeczytasz i zrozumiesz trzy cyferki). Nawet takie maleństwo jak w moim Octomonie pozwala na szybkie zorientowanie się czy temperatura dyszy/stołu jest właściwa nawet wtedy, gdy nie jestem w stanie przeczytać cyferek. Natomiast długość odcinka oko mierzy najgorzej, musi mieć coś do porównania.

Jeśli pasek led - to wszystkie ledy muszą być zapalone (wtedy mózg jest w stanie ocenić stosunek długości np. czerwonego do zielonego, a tym samym temperaturę), albo pasek musi być obudowany w ten sposób, aby wystarczyło zerknięcie do oceny stosunku zapalonej części do całości.

Owszem - klient może mieć sokoli wzrok i z kilkunastu metrów policzyć ile diod się pali... w sumie jego sprawa 🙂

A koszty... WS2812 też za darmo nie rozdają. I nie przesadzaj z kosztami TFT/OLED - nie jest tu potrzebny 20-calowy dotykowy ekran RGB wyświetlający prognozę pogody na najbliższy miesiąc. Sam mam w kuchni 3.5-calowy ekranik wyświetlający godzinę i temperaturę (cyfrowo), nawet ja jestem w stanie go przeczytać (w okularach) z odległości trzech metrów.

Aha: i nie fafnaście przycisków a enkoder.

Edytowano przez ethanak
Link do komentarza
Share on other sites

Dokładnie, myślałem o 2.2 calowych (albo jeszcze mniejszych), tanich wyświetlaczach RGB na SPI.

https://www.gotronik.pl/wyswietlacz-lcd-tft-1-8cala-128x160-p-4146.html

O klawiaturze wcześniej nie wspominałeś. Jakieś menu konfiguracyjne, nawet z ustawianiem wartości liczbowych da się zrobić nawet na takim maluchu wyposażonym z ekran dotykowy (+10zł do ceny?). Co więcej, odpadają wtedy wszelkie przyciski i potencjometry. 

6 minut temu, ethanak napisał:

pasek musi być obudowany w ten sposób, aby wystarczyło zerknięcie do oceny stosunku zapalonej części do całości.

Święte słowa. Termometr analogowy odczytuję na szybko właśnie poprzez ocenę położenia niebieskiego paska w stosunku do wysokości obudowy. A miernik/wskaźnik analogowy to wg mnie rewelacyjny pomysł:

https://allegro.pl/listing?string=miliamperomierz

Czasem można kupić tanio a wygląda jak milion (używanych) dolarów 🙂 W procku masz do tego PWM a taki miernik świetnie to uśrednia. Wyjmujesz skalę, usuwasz oryginalne liczby i miana, rysujesz tuszem własne (albo drukujesz laserem na folii/papaierze samoprzylepnym, naklejasz) i gotowe. Mozna dodać własne podświetlanie LED RGB 🙂  

Link do komentarza
Share on other sites

1 godzinę temu, ethanak napisał:

Jeśli pasek led - to wszystkie ledy muszą być zapalone (wtedy mózg jest w stanie ocenić stosunek długości np. czerwonego do zielonego

Można zrobić markery - lekko świecące LED. Kolejny pomysł do wdrożenia.

 

1 godzinę temu, ethanak napisał:

Owszem - klient może mieć sokoli wzrok i z kilkunastu metrów policzyć ile diod się pali... w sumie jego sprawa

Zauważ, ze barwa też przekazuje informację.

53 minuty temu, marek1707 napisał:

O klawiaturze wcześniej nie wspominałeś.

Jest jeden przycisk, bo był na NUCLEO F072, na którym robiłem próby. W założeniach, użytkownik ma do dyspozycji dwa zadajniki i potencjometr.

 

54 minuty temu, marek1707 napisał:

A miernik/wskaźnik analogowy to wg mnie rewelacyjny pomysł:

Tyle, że niezgodny z założeniami.

Link do komentarza
Share on other sites

52 minuty temu, InspektorGadzet napisał:

Tyle, że niezgodny z założeniami.

Wciąż ich nie znamy. Widzimy co zrobiłeś, ale nie wiemy co miałeś zrobić. Dopóki prezentujesz projekt robiony dla siebie, wg własnego pomysłu to można spokojnie założyć, że jest jak miało być. Gdy dostajesz wymagania z zewnątrz ale ich nie przedstawiasz to trochę nie fair, bo każdy pomysł możesz zbić "niezgodnością z (tajnymi?) założeniami". Przykładowe stwierdzenie klienta "ma być pokazywana temperatura" lub "muszę z grubsza wiedzieć jakie są temperatury w trzech miejscach mojej szklarni" można interpretować dowolnie, "analogowo" również. Tym bardziej, że wymyślony przez Ciebie dodatkowy OLED jest już z jakiegoś powodu OK.

Marudzę, bo naprawdę brakuje mi trochę tych rzeczywistych założeń, których musiałeś się trzymać. Ich interpretacja i realizacja to jedyny temat w którym można tu dyskutować. Na Twoim poziomie zaawansowania nie będziemy przecież spierać się o opornik czy jakiś stabilizator. "Elektronicznie" radzisz sobie świetnie więc można chyba przejść - jak to teraz mówią - na wyższy poziom? :)

Link do komentarza
Share on other sites

1 godzinę temu, InspektorGadzet napisał:

Zauważ, ze barwa też przekazuje informację.

Różnica barw, sama barwa jest słabo czytelna. Poza tym musisz unikać niektórych połączeń (jakieś 10 do 20% mężczyzn ma mniej lub bardziej zaawansowaną deuteranopię o której nawet nie wiedzą, i różnica czerwony - zielony może być w pewnych warunkach nieczytelna, szczególnie przy monochromatycznym świeceniu ledy)

Link do komentarza
Share on other sites

(edytowany)
4 godziny temu, marek1707 napisał:

Wciąż ich nie znamy. Widzimy co zrobiłeś, ale nie wiemy co miałeś zrobić.

Założenia bardo ogólnikowe, pierwotnie: 1 szt DS18B20, 16 szt WS2812, temperatury pokojowe, progi potencjometrami/zworkami, zasilanie przez USB.

Później po konsultacji uściślone: 1 szt DS18B20, 32 szt WS2812, temperatury dodatnie (opcjonalnie ujemne), progi zadajnikami/zworkami, potencjometr do ustawienia jasności LED, zasilanie z zasilacza zewnętrznego USB.

Edytowano przez InspektorGadzet
Link do komentarza
Share on other sites

Anonim
Ten temat został zamknięty.
×
×
  • 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.