Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 4 gru 2024, o 20:04


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 19 ] 
Autor Wiadomość
PostNapisane: 30 kwi 2019, o 19:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 lis 2015
Posty: 219
Pomógł: 20

Jak master przeszukuje magistrale i odczytuje ich ID do zawsze w tej samej kolejności. Zobacz jak wyglądają adresy tych czujników, powinny być ułożone NIE - (rosnąco albo malejąco - błąd). raczej powinny być w tej samej kolejności.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 maja 2019, o 02:09 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27315
Lokalizacja: Szczecin
Pomógł: 1041

jez2000 napisał(a):
Jak master przeszukuje magistrale i odczytuje ich ID do zawsze w tej samej kolejności.

Dokąd nie zamienisz jakiegoś czujnika - wtedy nagle kolejność może się zmienić

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 maja 2019, o 07:11 
Offline
Użytkownik

Dołączył(a): 13 paź 2015
Posty: 303
Lokalizacja: Rybnik
Pomógł: 10

Nie wiem jak z nazwami, ale jak ja w którymś projekcie nie zapisałem ID czujników i nie odpytywałem ich po tych adresach to w przypadku wypięcia jednego czujnika (np. pierwszego na magistrali 1 Wire) wszystko mi się pomieszało. Już nie wiedziałem, który czujnik jest od czego bo wszystkie czujniki "przeskoczyły" o jedną pozycję wcześniej - czyli drugi czujnik był pierwszym, trzeci był drugim itd.

Dlatego teraz wolę zapisywać adresy tych czujników i w przypadku wypięcia/uszkodzenia elegancko widać który nie działa.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 maja 2019, o 08:32 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27315
Lokalizacja: Szczecin
Pomógł: 1041

zubik napisał(a):
A pytam dlatego bo chodzi mi po głowie że jeśli czujniki zawsze są tak samo numerowane to aby rozpoznać który jest który mogę w eepromie przypisać wskaźnik na nazwę (string) dla każdego czujnika.

i to jest dobry trop

zubik napisał(a):
Odpada wtedy zapisywanie numerów ID czujników

nic nie odpada - ta tablica czujników tworzona przez bibliotekę musi być i musi pozostać ;)


zubik napisał(a):
a i przypisaniem nazw sprawa byłaby bajecznie prosta.

tak może być prosta gdy:

1. tablicę czujników tworzoną przez bibliotekę zostawisz jako referencyjną (dzięki niej sprawdzasz też czy dany czujnik działa)

2. stworzysz własną tablicę czujników w eeprom (także w ram)

3. Po starcie i inicjalizacji 1wire sprawdzisz sobie zawsze czy każdy czujnik z eeprom znajduje się w tablicy stworzonej przez bibliotekę

4. w całym programie wtedy będziesz bazował tylko na tej swojej tablicy z eeprom (przeniesionej też do ram oddzielnie)

Dzięki temu gdy czujnik ulegnie uszkodzeniu - ZNIKNIE z tablicy tworzonej przez bibliotekę - to żaden kłopot bo ty masz swoje czujniki przydzielone w eeprom i jeśli przy inicjalizacji zobaczysz, że któregoś numeru nie ma w tablicy bibliotecznej to ładnie oznaczysz go jako uszkodzony i dodatkowo będziesz wiedział że to np czujnik w pomieszczeniu X

Wtedy też po wymianie czujnika na nowy, wpiszesz jego numer do eeprom w miejsce tego uszkodzonego

i masz całą piękną procedurę posługiwania się czujnikami 1wire

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 maja 2019, o 10:18 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27315
Lokalizacja: Szczecin
Pomógł: 1041

zubik napisał(a):
Przemyślę jeszcze te kwestię

to przemyśl ;) ... bo to co piszesz to niestety zły pomysł a nawet bardzo zły ... to wręcz to samo - tyle że jeszcze wplątujesz to do eeprom. I jak tylko się czujnik zmieni albo wypadnie to masz gwarantowaną kichę.

Zrozum - ID czujnika to UNIKALNA nazwa i po tym się rozpoznaje czujniki a nie po id w tablicy tworzonej dynamicznie przez bibliotekę.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 maja 2019, o 17:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 mar 2015
Posty: 315
Lokalizacja: Czerwionka-Leszczyny
Pomógł: 22

Witam wszystkich. Mirku do ciebie mam jedno pytanie. Czy tu chodzi o to, że jak mam np: 4 czujniki i przypisane do nich nazwy, to jak wymienię czujnik nr np:3 o nazwie "coś tam" , bo po prostu się zepsuł i wstawię tam inny czujnik (oczywiście z innym ID) , to cały program się rozsypie? (chodzi mi o to czy pozostałe czujniki pozostaną przy nazwie jaką przypisałem?), czy też trzeba będzie programowo przypisywać od nowa nazwy?

_________________
http://www.avrboss.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 maja 2019, o 17:18 
Offline
Użytkownik

Dołączył(a): 13 paź 2015
Posty: 303
Lokalizacja: Rybnik
Pomógł: 10

zubik napisał(a):
chodzi mi bardziej o to żeby nie zapisywać ID do eepromu skoro i tak mam te numery w ram.


Zrób tablice z numerami ID swoich czujników, wszystkie tablice odpowiednio sobie nazwiesz i bedziesz odwoływał sie po tych nazwach. Jeśli nie tak nie zrobisz to wyżej opisałem co się będzie działo. W przypadku uszkodzenia któregoś czujnika.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 maja 2019, o 17:56 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27315
Lokalizacja: Szczecin
Pomógł: 1041

mario2015 napisał(a):
czy też trzeba będzie programowo przypisywać od nowa nazwy?

Poczytaj proszę wyżej co już dwa razy wyjaśniałem zubikowi - bo o to samo pytasz i o tym samym mówisz.

Przecież tablica czujników tworzona przez bibliotekę jest DYNAMICZNA, rozumiecie panowie czy nie ? ;) ... D Y N A M I C Z N A ... to znaczy, że w zależności od dokładanych, wyjmowanych czujników - ich kolejność może się drastycznie zmienić w tej tablicy bo zależy od ich posortowania przez algorytm wyszukiwania czujników na magistrali 1wire wg właśnie ich numerów ID.

Dlatego trzeba robić oddzielną własną tablicę w której będzie się trzymać po swojemu numery ID wraz z przypisaniem do konkretnego umiejscowienia czy pomieszczenia - no ale proszę przeczytać wyżej to co opisałem w punktach.

----------------------------------------------------------------------------------

Może żeby jeszcze bardziej było jasne na jakiej zasadzie jest tworzona tablica czujników dynamicznie przez bibliotekę. Załóżmy że czujniki nie mają numerów ID tylko imiona jak ludzie. Więc podłączyliście np 3 czujniki - no i znalazły się np:

Cytuj:
1. Alicja
2. Mirek
3. Zenon

wszystko fajnie - ale nagle dokładacie kolejny czujnik o imieniu "Bogdan" i ZONK bo będzie teraz:

Cytuj:
1. Alicja
2. Bogdan
3. Mirek
4. Zenon


a wy się odwołujecie do imion ale poprzez ID w tej tablicy - więc teraz odwołując się do ID2 okaże się że mierzysz temperaturę nie z czujnika "Mirek" tylko z czujnika "Bogdan"

Tak samo byłby zonk gdyby nagle zepsuł się czujnik "Alicja" wtedy byłoby:

Cytuj:
1. Mirek
2. Zenon


i znowu kicha - bo odwołując się do ID2 - mierzysz temperaturę z czujnika "Zenon" a nie "Mirek"

czy teraz to jest jasne ?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 maja 2019, o 18:17 
Offline
Użytkownik

Dołączył(a): 13 paź 2015
Posty: 303
Lokalizacja: Rybnik
Pomógł: 10

Dokładnie o to samo mi też chodziło, jak pisałem wyżej :P



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 maja 2019, o 06:20 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27315
Lokalizacja: Szczecin
Pomógł: 1041

No o tym mówiłem, tyle że z nazwami w eeprom .. ale ty nadal jeszcze kombinujesz i jakieś wskaźniki dajesz do flasha na teksty - co powoduje same problemy jak widzisz i brak elastyczności takiej konfiguracji.

Co z tego że zajmuje to 100 bajtów - toż eeproma masz zwykle sporo w jakiejś atmedze

a druga sprawa - to posiadasz jak widzę YB, więc dlaczego nie spróbujesz korzystać z FLASH jako EEPROM ? ;) wtedy miałbyś miejsca po uszy ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 maja 2019, o 12:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1164
Lokalizacja: Kraków
Pomógł: 93

zubik napisał(a):
na koniec zapisujemy ile ma być czujek na magistrali i kiedy coś padnie program reagowałby ostrzeżeniem że mamy problem i trzeba od nowa przypisać czujniki.
A jeśli będzie tyle samo czujników, tylko część będzie miała inne ID? Wtedy wg założeń nie będzie potrzeby nowego przypisania czujników, ale odczyty będą "z czapy"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 maja 2021, o 14:32 
Offline
Użytkownik

Dołączył(a): 15 mar 2019
Posty: 27
Pomógł: 0

witam, Panie Mirku "2. stworzysz własną tablicę czujników w eeprom (także w ram)" trochę brzmi jak kosmos dla początkującego.
ja znam nr czujników kupiłem ATB-USB-RS232 i pobrałem test_1wire. kupiłem to korzystam.
i chcę na sztywno wpisać czujniki wiem że jest ich np. 7
wiem, że to może mało eleganckie ale tu raczej o skuteczność chodzi.
jak przypisać znane numery do ID czujnika?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 maja 2021, o 21:19 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27315
Lokalizacja: Szczecin
Pomógł: 1041

Cytuj:
jak przypisać znane numery do ID czujnika?

Ale tobie chodzi o to jak to zrobić na kompie PC ? czy w procku ?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 maja 2021, o 23:07 
Offline
Użytkownik

Dołączył(a): 15 mar 2019
Posty: 27
Pomógł: 0

Realizuje ćwiczenie z książki BB 1wire. Zmieniłem tylko wyświetlacz na LCD. Rozdział bomba. Wszystko śmiga do czasu ponownego odczytu przy jakiekolwiek zmianie. Tak jak koledzy wyżej.
Jestem amatorem "pułapki covidowej" dlatego nie rozumiem podanych wskazówek. Chcę ugryźć problem z innej strony. Może zły, ale od czego jest forum. Następnie chcę parsować temperatury wifi232-T (co się już udało przy pomocy kolegi MirkoT) do PLC. Da się połączyć ID z numerem który widzę w programie na PC? Na stronie BB 329 ostatnie zdanie warsztatów 1wire daje nadzieję. Proszę pomóc bo to kluczowy problem tym bardziej jak doszły inne czujniki to robi się bardzo ciekawie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2021, o 06:22 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27315
Lokalizacja: Szczecin
Pomógł: 1041

jeśli na procku to proszę nie mieszaj teraz tu jakiegoś wifi ;) bo już w ogóle nie będę wiedział w czym rzecz i jak pomóc. Bo co ma wifi do czujników temperatury.

Ok przykład z BB oparty jest o fajną bibliotekę do czujników ds18x20. Jak się skonfiguruje żeby wykrywał ich np 4 to tworzy się tablica do której trafiają numery ID tych czujników. Jak wiadomo są one układane w niej wg kolejności wykrywania ich na magistrali, więc nic w tym dziwnego, że jak np jeden czujnik "PADNIE" i włoży się nowy to kolejność w tej tablicy może się zmienić. Zresztą temat stary jak świat - zawsze ludzie mają z tym problem i nie do końca wiem czemu. Wyżej w tym wątku pisałem rozwiązanie, o tutaj w tym poście:

post218630.html#p218630

w punktach wymieniłem co można zrobić. Przypomnę, że numery ID czujników są aż 8-mio bajtowe, więc trzeba po prostu kopiować sobie zawsze po te 8 bajtów do swojej tablicy i w niej można je opisywać tzn który należy do jakiego miejsca.

I tak pozostanie kolejny stary problem jak świat - czyli co zrobić nawet w takim przypadku gdy padnie jakiś czujnik albo nawet kilka, jakie procedury przyjąć aby w jak najprostszy sposób podmieniać te czujniki na magistrali bez prucia od nowa kodu źródłowego i nie wiadomo jakich testów.

Mam w planach i coraz bardziej się zbliża duży poradnik wideo na te tematy, nadchodzi jego czas ;) więc jak coś to proponuję spokojnie poczekać, bo przy tej okazji pokaże się również moja całkiem nowa biblioteka do tych czujników, która będzie ogarniała w zasadzie wszystkie takie problemy o których tutaj mowa. Żeby nie trzeba było tego za każdym razem sobie oprogramowywać we własnym zakresie. W sumie może to robić biblioteka i można w niej to zaszyć, ale trzeba to sprytnie napisać, przygotować i zaprezentować. To jest grubszy temat - i nie nadaje się po prostu do wyjaśnienia w 2-3 zdaniach na forum, poza np takimi punktami jakie opisałem wyżej. A te punkty to wstępne wytyczne jak właśnie podejść do takiego tematu.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2021, o 07:38 
Offline
Użytkownik

Dołączył(a): 15 mar 2019
Posty: 27
Pomógł: 0

bałem się, że zapomniał Pan o temperaturze w cyklu czujnikowym. mam tylko jedna sugestię. proszę nie pominąć, jak się oczywiście da kwestii UARTA . klocuszek dostępnej biblioteki, aż się prosi.
ciśnienie, wilgotność, temperatura, UART to byłby czysty miód.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2021, o 11:02 
Offline
Użytkownik

Dołączył(a): 13 paź 2015
Posty: 303
Lokalizacja: Rybnik
Pomógł: 10

Tutaj napisałem jak poradziłem sobie z tym problemem:
https://forum.atnel.pl/topic21850.html

A co do podmiany czujnika bez ingerencji w kod źródłowy to napisałem aplikacje w B4A w której wpisuję adres wybranego czujnika i wysyłam to do urządzenia, a urządzenie dane parsuje i zapisuje w odpowiedmie miejsce (podmienia adres starego czujnika na nowy). W ten sposób nic mi sie nie miesza.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2021, o 18:32 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27315
Lokalizacja: Szczecin
Pomógł: 1041

czerwan napisał(a):
proszę nie pominąć, jak się oczywiście da kwestii UARTA

Aż z ciekawości zapytam ;) o co tym razem tu chodzi ? Przecież są i poradniki o UART/RS232, jest to opisane od podstaw w Bluebooku i ślicznie dokończone w Greenbooku a na dodatek jest w sprzedaży niezależna i dobrze dopracowana biblioteka. Więc ?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 maja 2021, o 21:00 
Offline
Użytkownik

Dołączył(a): 15 mar 2019
Posty: 27
Pomógł: 0

Świetna jest filozofia klocuszków w dostępnych bibliotekach. Musze jednak przyznać, że często patrzę w kod jak sroka w kość. Chodzi mi jedynie o to by w nowej bibliotece "czujnikowej" było miejsce na komunikację z klocuszka UART dla chcących wysłać dane dalej i dwa słowa w poradniku. Ale po tym co zobaczyłem w bibliotece czujnika ruchu jestem spokojny. Zrozumiałe komentarze - wyczerpujący poradnik.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 19 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO