Termometr 4 punktowy *z podłączeniem do PC*

Teoria, praktyka, sprzęt, kolumna
laurentp
100%
100%
Posty: 1368
Rejestracja: 2013-07-08, 22:08
Lokalizacja: Mazowieckie

Re: Termometr 4 punktowy *z podłączeniem do PC*

Post autor: laurentp » 2020-02-25, 16:55

Przez jakiś czas nie pomogę za bardzo, bo złamałem sobie rękę... więc operowanie mikroskopem czy lutownicą odpada.
Natomiast w wolnej chwili odczytam fusebity i podam na forum. Z tym, że nie powinny mieć szansy na takie zachowanie termometru jak opisujesz.
Aha, czy po ustawieniu wartości "%" wciskasz impulsator (i trzymasz ok 3-4sek)? Tak, żeby w po znaku "%" pojawiło się " EN"? bo dopiero wtedy podaje sygnał.
https://nowyekran24.com/ prawda 24h, POLSKIE forum poza zasięgiem "głównego ścieku", taki informacyjny "DETOX"!
Nienawidzę.mechaniki.Za to przemiany fazowe zaczynają mnie fascynować

mirbek
10%
10%
Posty: 13
Rejestracja: 2018-10-27, 20:48

Re: Termometr 4 punktowy *z podłączeniem do PC*

Post autor: mirbek » 2020-02-25, 20:18

Bardzo współczuje z powodu kontuzji życzę szybkiego powrotu do zdrowia. Po przeczytaniu Twojego posta o razu poszedłem do "laboratorium" żeby sprawdzić i uwaga DZIAŁA!!!! tzn dioda miga z częstotliwością zależną od % PWM tak, że chyba będzie OK .Bardzo dziękuje za pomoc. Wiszę Ci duża flachę eliksiru.

laurentp
100%
100%
Posty: 1368
Rejestracja: 2013-07-08, 22:08
Lokalizacja: Mazowieckie

Re: Termometr 4 punktowy *z podłączeniem do PC*

Post autor: laurentp » 2020-03-02, 23:10

Dzięki kol. nemo82 mamy projekt "płytki mocy" zarówno do wersji termometru opartej o Arduino Nano jak i tej opartej o WeMos mini D1 (ESP8266).
Zawiera 4 triaki do sterowania EZ / pompą, 3 kanały sterowania SSR (np grzałki) i kanał wejścia "kontaktowego" czujnika zalania kolumny.

Płytka z WeMos jeszcze nie była publikowana, bo wymaga poprawek.
Na dniach archiwum kodu (muszę je przejrzeć, bo dawno przy nim nic nie robiłem). Oprogramowane na razie tylko 2 kanały EZ. Za to sprawdzone w realnym przebiegu. (razem z Nano i płytką "by krzyski").

UWAGA, w programie jest przewidziany PCF8574A (A!) a na schemacie jest bez A. One się różnią tylko adresem, więc jeśli ktoś ma jjuż kostkę "bez A" to też będzie można wygenerować dla niego wersję. (zmiana w defines.h i rekompilacja, dla "znawców tematu" :) ).
Załączniki
Power_Board_V9.5_graphics.zip
Obrazki (schemat + płytka).
(124.81 KiB) Pobrany 68 razy
Power_Board_THT_v9.5.zip
I pliki Eagle, można użyć do zamówienia płytki.
(110.7 KiB) Pobrany 62 razy
https://nowyekran24.com/ prawda 24h, POLSKIE forum poza zasięgiem "głównego ścieku", taki informacyjny "DETOX"!
Nienawidzę.mechaniki.Za to przemiany fazowe zaczynają mnie fascynować

laurentp
100%
100%
Posty: 1368
Rejestracja: 2013-07-08, 22:08
Lokalizacja: Mazowieckie

Re: Termometr 4 punktowy *z podłączeniem do PC*

Post autor: laurentp » 2020-03-26, 01:24

Sorry CK, muszę tego ZIPa gdzieś upchnąć, za dni a nawet godziny będzie można wywalić, żeby nie marnować serwera.
Załączniki
DS1820_for_slaff.zip
(171.97 KiB) Pobrany 73 razy
https://nowyekran24.com/ prawda 24h, POLSKIE forum poza zasięgiem "głównego ścieku", taki informacyjny "DETOX"!
Nienawidzę.mechaniki.Za to przemiany fazowe zaczynają mnie fascynować

Awatar użytkownika
bielok
101%
101%
Posty: 607
Rejestracja: 2006-06-30, 09:17
Lokalizacja: Bielsko-Biała

Re: Termometr 4 punktowy *z podłączeniem do PC*

Post autor: bielok » 2020-04-08, 06:57

Cześć.

Mam pytanie do użytkujących termometr: czy potrzebujecie menu (dostępne z impulsatora) czasu pracy termometru?
Zastanawiamy się z Laurentem czy ta opcja komuś się przydaje. Ja np nie korzystam z niej w ogóle. Pisałem do Laurenta ze można by ją wywalić z menu, zamiast niej wstawić np. opcję sterowania grzałkami.
pozdrawiam
bielok

Alkohol nie rozwiąże twoich problemów...
A z drugiej strony, mleko w sumie też nie..

laurentp
100%
100%
Posty: 1368
Rejestracja: 2013-07-08, 22:08
Lokalizacja: Mazowieckie

Re: Termometr 4 punktowy *z podłączeniem do PC*

Post autor: laurentp » 2020-04-09, 00:27

Kolejne "wieści z pola walki":
- kol Nemo opracował płytkę pod WeMos D1 mini (też na ESP8266, jak NodeMCU),
- program "w zasadzie działa", na razie są problemy z podłączeniem Dallasów, ale mam fizyczną płytkę, będę kopał w kodzie (teraz się wiesza w momencie próby zapisania wykrytego DS'a).

Byłoby to to samo co na Mega328 ("by krzyski") albo Nano ("by Nemo"), ale z dodanym WiFi i WWW. Złączki do czujników / płytki mocy takie same. Koszt jest porównywalny. Więc same plusy, ale jeszcze nie dziś.
https://nowyekran24.com/ prawda 24h, POLSKIE forum poza zasięgiem "głównego ścieku", taki informacyjny "DETOX"!
Nienawidzę.mechaniki.Za to przemiany fazowe zaczynają mnie fascynować

woxy
40%
40%
Posty: 98
Rejestracja: 2011-12-09, 18:36

Re: Termometr 4 punktowy *z podłączeniem do PC*

Post autor: woxy » 2020-04-14, 22:56

Cześć,
dawno tu mnie nie było, a i temat dawno ruszany.
Znowu odkopany - ale teraz chcę postawić wersję na Arduino nano + LCD na I2C.
Przy ESP jakoś udało mi się przerobić wpisy - i działało, tu niestety na chwilę obecną poległem.
Dodałem:

Kod: Zaznacz cały

#if defined DEV_BOARD_NANO
    #define		LCD_TYPE	0 // I2C
//	#define	LCD_TYPE	1 // SR
    // I2C GPIO pin no
    #define		I2C_SDA		4
    #define		I2C_SCL		0
    #define		I2C_LCD_ADDR	0x27
#endif
Ale niestety cały czas upomina się o :

Kod: Zaznacz cały

avr-gcc -g -Wall -Os -std=gnu99 -mmcu=atmega328p    -c -o lcd.o lcd.c
lcd.c: In function 'toggle_e':
lcd.c:125: error: 'LCD_E_PORT' undeclared (first use in this function)
lcd.c:125: error: (Each undeclared identifier is reported only once
lcd.c:125: error: for each function it appears in.)
lcd.c:125: error: 'LCD_E_PIN' undeclared (first use in this function)
lcd.c: In function 'lcd_write':
lcd.c:146: error: 'LCD_RS_PORT' undeclared (first use in this function)
lcd.c:146: error: 'LCD_RS_PIN' undeclared (first use in this function)
lcd.c:150: error: 'LCD_RW_PORT' undeclared (first use in this function)
lcd.c:150: error: 'LCD_RW_PIN' undeclared (first use in this function)
lcd.c:152: error: 'LCD_DATA0_PORT' undeclared (first use in this function)
lcd.c:152: error: 'LCD_DATA1_PORT' undeclared (first use in this function)
lcd.c:152: error: 'LCD_DATA2_PORT' undeclared (first use in this function)
lcd.c:152: error: 'LCD_DATA3_PORT' undeclared (first use in this function)
lcd.c:153: error: 'LCD_DATA0_PIN' undeclared (first use in this function)
lcd.c:153: error: 'LCD_DATA1_PIN' undeclared (first use in this function)
lcd.c:153: error: 'LCD_DATA2_PIN' undeclared (first use in this function)
lcd.c:153: error: 'LCD_DATA3_PIN' undeclared (first use in this function)
lcd.c: In function 'lcd_read':
lcd.c:227: error: 'LCD_RS_PORT' undeclared (first use in this function)
lcd.c:227: error: 'LCD_RS_PIN' undeclared (first use in this function)
lcd.c:230: error: 'LCD_RW_PORT' undeclared (first use in this function)
lcd.c:230: error: 'LCD_RW_PIN' undeclared (first use in this function)
lcd.c:232: error: 'LCD_DATA0_PORT' undeclared (first use in this function)
lcd.c:232: error: 'LCD_DATA1_PORT' undeclared (first use in this function)
lcd.c:232: error: 'LCD_DATA2_PORT' undeclared (first use in this function)
lcd.c:232: error: 'LCD_DATA3_PORT' undeclared (first use in this function)
lcd.c:233: error: 'LCD_DATA0_PIN' undeclared (first use in this function)
lcd.c:233: error: 'LCD_DATA1_PIN' undeclared (first use in this function)
lcd.c:233: error: 'LCD_DATA2_PIN' undeclared (first use in this function)
lcd.c:233: error: 'LCD_DATA3_PIN' undeclared (first use in this function)
lcd.c:237: error: 'LCD_E_PORT' undeclared (first use in this function)
lcd.c:237: error: 'LCD_E_PIN' undeclared (first use in this function)
lcd.c: In function 'lcd_init':
lcd.c:597: error: 'LCD_DATA0_PORT' undeclared (first use in this function)
lcd.c:597: error: 'LCD_DATA1_PORT' undeclared (first use in this function)
lcd.c:597: error: 'LCD_DATA2_PORT' undeclared (first use in this function)
lcd.c:597: error: 'LCD_DATA3_PORT' undeclared (first use in this function)
lcd.c:598: error: 'LCD_RS_PORT' undeclared (first use in this function)
lcd.c:598: error: 'LCD_RW_PORT' undeclared (first use in this function)
lcd.c:598: error: 'LCD_E_PORT' undeclared (first use in this function)
lcd.c:599: error: 'LCD_DATA0_PIN' undeclared (first use in this function)
lcd.c:599: error: 'LCD_DATA1_PIN' undeclared (first use in this function)
lcd.c:599: error: 'LCD_DATA2_PIN' undeclared (first use in this function)
lcd.c:599: error: 'LCD_DATA3_PIN' undeclared (first use in this function)
lcd.c:600: error: 'LCD_RS_PIN' undeclared (first use in this function)
lcd.c:600: error: 'LCD_RW_PIN' undeclared (first use in this function)
lcd.c:600: error: 'LCD_E_PIN' undeclared (first use in this function)
make: *** [lcd.o] Error 1
Poproszę o pomoc :)

Edit: Powalczyłem trochę i dałem sobie spokój narazie z I2C. Spróbowałem uruchomić tak jak jest. Uruchomione do wersji: archiwum_2017-12-08_AVR. Nowsza Archive_2018-05-13_AVR.src - kompiluje się tylko dla: Krzyski i nemo.
Dla Nano - sypie tak:

Kod: Zaznacz cały

avr-gcc -g -Wall -Os -std=gnu99 -mmcu=atmega328p    -c -o crc8.o crc8.c
avr-gcc -g -Wall -Os -std=gnu99 -mmcu=atmega328p    -c -o ioinit.o ioinit.c
ioinit.c: In function 'ioinit':
ioinit.c:84: error: 'LED_1_DDR' undeclared (first use in this function)
ioinit.c:84: error: (Each undeclared identifier is reported only once
ioinit.c:84: error: for each function it appears in.)
ioinit.c:84: error: 'LED_1_BIT' undeclared (first use in this function)
ioinit.c:86: error: 'KEY_5_DDR' undeclared (first use in this function)
ioinit.c:86: error: 'KEY_5_BIT' undeclared (first use in this function)
ioinit.c:104: error: 'KEY_5_PORT' undeclared (first use in this function)
make: *** [ioinit.o] Error 1
Dla Production_Board:

Kod: Zaznacz cały

avr-gcc -g -Wall -Os -std=gnu99 -mmcu=atmega328p    -c -o crc8.o crc8.c
avr-gcc -g -Wall -Os -std=gnu99 -mmcu=atmega328p    -c -o ioinit.o ioinit.c
avr-gcc -g -Wall -Os -std=gnu99 -mmcu=atmega328p    -c -o lcd.o lcd.c
avr-gcc -g -Wall -Os -std=gnu99 -mmcu=atmega328p    -c -o onewire.o onewire.c
avr-gcc -g -Wall -Os -std=gnu99 -mmcu=atmega328p    -c -o ones_count.o ones_count.c
avr-gcc -g -Wall -Os -std=gnu99 -mmcu=atmega328p    -c -o keyboard_filter.o keyboard_filter.c
keyboard_filter.c: In function 'keyboard_filter':
keyboard_filter.c:391: error: 'pwm2_output' undeclared (first use in this function)
keyboard_filter.c:391: error: (Each undeclared identifier is reported only once
keyboard_filter.c:391: error: for each function it appears in.)
make: *** [keyboard_filter.o] Error 1
Dodatkowo: krzyski - ma te sam połączenia do LCD - a LCD nie działa.

laurentp
100%
100%
Posty: 1368
Rejestracja: 2013-07-08, 22:08
Lokalizacja: Mazowieckie

Re: Termometr 4 punktowy *z podłączeniem do PC*

Post autor: laurentp » 2020-04-25, 18:26

Mnie też dawno nie było. W wolnej chwili sprawdzę, powinno działać pod AVR dla "oryginalnej" płytki (production board), "by krzyski" i "by Nemo" bo różnica jest tylko w numerach pinów (Nano to Mega328P + konwerter USB / serial). I wszystkie 3 wersje mają LCD po 4 bitach równolegle. NIE po I2C, musiałbyś sporo kodu zmienić.

Natomiast pozytywne wieści z wersji ESP8266, kol. Nemo zaprojektował płytkę pod WeMos D1 mini, ma te same I/O co pozostałe wersje (I2C 3V3, I2C 5V, 1Wire), tutaj wyświetlacz jest po I2C, jest "tylko" problem, 1Wire podłączone -> zwis wszystkiego. Mam sztukę płytki będę kombinował rozwiązanie (lub obejście) problemu. Natomiast I2C w obu wersjach napięciowych (5V do LCD i 3V3 do STSa) działa elegancko.
Ale ostatnio zamierzam rzucić picie choć na miesiąc, więc jest szansa.
https://nowyekran24.com/ prawda 24h, POLSKIE forum poza zasięgiem "głównego ścieku", taki informacyjny "DETOX"!
Nienawidzę.mechaniki.Za to przemiany fazowe zaczynają mnie fascynować

laurentp
100%
100%
Posty: 1368
Rejestracja: 2013-07-08, 22:08
Lokalizacja: Mazowieckie

Re: Termometr 4 punktowy *z podłączeniem do PC*

Post autor: laurentp » 2020-04-28, 10:25

To co wyskakuje "undefined" powinno być zdefiniowane w "defines.h" w zależności od wybranych opcji. Tak tytułem wyjaśnienia jakbyś chciał robić własne śledztwo. Najpierw jest ustawiana architektura przez kompilator (definiuje albo __AVR__ dla AVR albo __ets__ dla ESP), w zależności od tego ustawia się (#if defined(...)) dużo rzeczy, ALE są jeszcze definicje płytek, bo są różne wersje dla obu procesorów. I DOPIERO po ustawieniu płytek i architektury zaczyna się #define ... dotyczące konkretnych pinów / opcji.
https://nowyekran24.com/ prawda 24h, POLSKIE forum poza zasięgiem "głównego ścieku", taki informacyjny "DETOX"!
Nienawidzę.mechaniki.Za to przemiany fazowe zaczynają mnie fascynować

woxy
40%
40%
Posty: 98
Rejestracja: 2011-12-09, 18:36

Re: Termometr 4 punktowy *z podłączeniem do PC*

Post autor: woxy » 2020-04-29, 21:04

Kompilując wcześniejsze wersje, jedynie co zmieniałem to definicję rodzaju płytki (production, krzyski czy nemo),
i kompilacja szła ok. Najnowsza wersja niestety już nie szła tak jak opisywałem.
Popróbuje, może coś powalczę.

laurentp
100%
100%
Posty: 1368
Rejestracja: 2013-07-08, 22:08
Lokalizacja: Mazowieckie

Re: Termometr 4 punktowy *z podłączeniem do PC*

Post autor: laurentp » 2020-05-01, 00:21

I powinno być dalej jak opisałeś.
"Najnowsza" czyli z jaką datą? Będę mógł sprawdzić u siebie.
https://nowyekran24.com/ prawda 24h, POLSKIE forum poza zasięgiem "głównego ścieku", taki informacyjny "DETOX"!
Nienawidzę.mechaniki.Za to przemiany fazowe zaczynają mnie fascynować

woxy
40%
40%
Posty: 98
Rejestracja: 2011-12-09, 18:36

Re: Termometr 4 punktowy *z podłączeniem do PC*

Post autor: woxy » 2020-05-03, 21:16

Uruchomione do wersji: archiwum_2017-12-08_AVR
Nowsza Archive_2018-05-13_AVR - tak jak opisywałem wyżej sypie błędami.
Chyba że jest coś nowszego.

laurentp
100%
100%
Posty: 1368
Rejestracja: 2013-07-08, 22:08
Lokalizacja: Mazowieckie

Re: Termometr 4 punktowy *z podłączeniem do PC*

Post autor: laurentp » 2020-05-03, 23:00

OK, SOA#1, "u mnie działa".
Zaznaczas #define DEV_BOARD_NANO (źle, ta płytka już nie istnieje) czy
#define PRODUCTION_BOARD_BY_NEMO (w komentarzu masz, że odnosi się to do płytki na Nano, tyle, że istniejącej i
działającej u mnie, projektu właśnie kol. nemo).?

[PS]
Jak się uprzesz, to przejść na LCD po I2C się da.
- Odłączyć bibliotekę P.Fleury (#include lcd.h),
- podłączyć (pewnie arduinową) bibliotekę I2C_LCD (zmieniając *.ino na *.cpp albo *.c zależy w czym realnie pisane)
- zmienić kod w 2 punktach:
- inicjalicacja LCD, skleroza czy na początku main() czy w io_init(),
- wyświetlanie "wirtualnego" LCD na realnym wyświetlaczu (virt_lcd.c/h) będą inne wywołania (nazwy) i parametry funkcji.
ESP używa bibliotek z Arduino właśnie (wiele, choć nie sprawdzałem jak z I2C_LCD).

[PS2]
W sobotę robiłem proces i znalazłem prawdopodobnie buga w programie:
- ustawiłem LM na 10% (nie 9% jak zwykle),
- OLM na 80%,
próbowałem załączyć tryb odbioru auto, nie załączył się a dodatkowo termometr "zwisł", będę to badać ale trochę później bo teraz mam problem z chodzeniem co wyklucza akrobacje koło kolumny.
https://nowyekran24.com/ prawda 24h, POLSKIE forum poza zasięgiem "głównego ścieku", taki informacyjny "DETOX"!
Nienawidzę.mechaniki.Za to przemiany fazowe zaczynają mnie fascynować

woxy
40%
40%
Posty: 98
Rejestracja: 2011-12-09, 18:36

Re: Termometr 4 punktowy *z podłączeniem do PC*

Post autor: woxy » 2020-05-04, 21:02

Tak jak pisałem wcześniej z opisem błędów,
nowsza wersja kompilowała się tylko dla nemo i krzyski, production board i nano waliło błędami,
Sam piszesz że powinno działać dla production board a jednak nie działa.
Płytka sama w sobie nie ma znaczenia na etapie kompilacji. Powinno wszystko działać.
Ewentualnie po wgraniu nie zahula na innej niż zdefiniowana płytka.

Podrzuć src, zweryfikuję, może mam coś innego.

laurentp
100%
100%
Posty: 1368
Rejestracja: 2013-07-08, 22:08
Lokalizacja: Mazowieckie

Re: Termometr 4 punktowy *z podłączeniem do PC*

Post autor: laurentp » 2020-05-04, 21:37

woxy pisze:
2020-05-04, 21:02
Tak jak pisałem wcześniej z opisem błędów,
nowsza wersja kompilowała się tylko dla nemo i krzyski, production board i nano waliło błędami,
Sam piszesz że powinno działać dla production board a jednak nie działa....
Podrzuć src, zweryfikuję, może mam coś innego.
PRODUCTION BOARD to PIERWOTNA ("goły" ATMega328P + zewnętrzny konwerter serial/USB, BEZ złącza ISP (to "z" to wersja "by krzyski") płytka, ze sterowaniem 1 EZ bezpośrednio z pinu procesora (nie przez I2C) i nowe wersje kodu (po 2017) NIE będą się nawet dla niej kompilować, bo w programie jest już od jakiegoś czasu sterowanie 2 EZ a nie "obudowałem" kodu do drugiego EZ w #if defined() / #endif, żeby jednak się skompilowało. Po prostu ten etap traktuję jako zamknięty.
Tak samo DEV_BOARD_NANO, to był prototyp, ale już go nie ma, jest wersja kol Nemo (o niej poniżej).

Natomiast PRODUCTION_BOARD_BY_NEMO to zupełnie inna płytka, współczesna, właśnie na Nano, jak nazwa wskazuje PCB projektował kol. Nemo.
I to ona jest rozwojowa, podobnie jak (na 99%) płytka do ESP8266 na WeMos D1 mini, projekt PCB też by nemo, (ale tu jest jeszcze problem z 1Wire).
DEV_BOARD__NODEMCU też jest zamknięte, istnieje 1 czy 2 szt (nie pamiętam czy nemo też ma u siebie).
Za to kod jest JEDEN (w 95%), stąd dużo #if defined(__AVR__) / # if defined(__ets__) dopasowywujących go do niuansów sprzętowych / bibliotek dla obu procesorów.

Kod prawdopodobnie masz prawidłowy (zgadza się data archiwum z tym co mam u siebie), ale spakuję jeszcze raz. Zaniedługo.
Za to musisz ustawić typ płytki na podany 2 linie wyżej "_BY_NEMO". Przy takim ustawieniu, jak napisałem, u mnie się kompiluje bez błędów (z ostrzeżeniami, ale tym się nie przejmuję, bo i tak trochę za mało znam C żeby sobie z tym poradzić - tam jest o typecastach głównie i ignorowaniu pragm bo coś tam). Ostrzeżeń nie ma dla ESP, ale może to kwestia ustawień dla kompilatora w Makefile. Dawno nie zaglądałem do kodu, jak pisałem.

"U mnie działa" na płytce by krzyski i by nemo. Produkcyjnie (by krzyski) i testowo (by nemo). Modulo opisany post wyżej błąd ze zwisem na który natknąłem się ostatniej soboty i jeszcze go nawet nie namierzyłem nie mówiąc o naprawieniu.

Jeśli chcesz podam wersje gcc / binutils / avr-libc (mam Fedorę 24).
https://nowyekran24.com/ prawda 24h, POLSKIE forum poza zasięgiem "głównego ścieku", taki informacyjny "DETOX"!
Nienawidzę.mechaniki.Za to przemiany fazowe zaczynają mnie fascynować

ODPOWIEDZ

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 31 gości