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



Teraz jest 25 kwi 2024, o 20:08


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 26 ] 
Autor Wiadomość
PostNapisane: 24 mar 2012, o 18:20 
Offline
Nowy

Dołączył(a): 19 lut 2012
Posty: 10
Lokalizacja: okolice Cze-wy
Pomógł: 0

Witam.

Jako, że poszukuję / przymierzam się do pewnych rozwiązań, które chciałbym wykorzystać w swojej inżynierce, postanowiłem założyć ten temat. Może Wy mi podpowiecie jakieś rozwiązanie :D

Otóż planuję zbudować sterownik pewnego urządzenia. Taka domowa automatyka. Jednym z głównych założeń na którym będzie opierała się cała reszta działania sterownika... jest pomiar temperatury.
Założenia co do pomiaru:
+/- 1-2 stopnie C dokładności, w skali 0-100 stopni. Ogólnie bardzo dokładnie być nie musi ;)
min. 2 czujniki w wersji podstawowej + 2 czujniki które można byłoby dołączyć i na tej podstawie realizować dodatkowe funkcje
koszt czujnika nie może być za duży :P

Czujniki umieszczone byłyby na kablu w odległości ok 2m od sterownika.

Trochę pogooglowałem, przejrzałem parę książek... najprostszym rozwiązaniem byłoby wstawienie DS18B20. Temat pomiaru tą serią wałkowany na wielu forach, dobrze opisany w książkach.
Pytanie: jak rozwiązać sprawę powtarzalności urządzenia ? Każdy czujnik ma swój unikalny numer, jeśli skonfiguruję uC do pracy z 2 czujnikami (czujnik #1 mierzy temp A, czujnik #2 temp. B) to ok. A jeśli chciałbym zrobić kolejne takie urządzenie, to po raz kolejny muszę konfigurować uC z kolejnymi czujnikami aby dostawać odczyty odpowiednich temperatur.
Jest jakiś sposób żeby to rozwiązać ? Myślałem o kilku interfejsach 1wire i podłączeniu po 1 DS18B20. Może da się prościej ?


Zajrzałem też do wnętrza pewnego oryginalnego sterownika. Pomiar jest tam realizowany na czujniku rezystancyjnym KTY81-210 + paru rezystorach i wzmacniaczu operacyjnym LM324N (podpięcie 4 czujników). Schemat poniżej.
http://i44.tinypic.com/711mdx.png

Kiedyś pytałem na elektrodzie w sprawie oprogramowania tego bo nie znalazłem jakiegoś gotowego rozwiązania a elementy mam w domu... niby jakieś tam odpowiedzi dostałem ale w sumie nie zabrałem się za to porządnie bo i odpowiedzi były takie sobie :(

Zalety tego rozwiązania:
tańszy czujnik
każdy czujnik podłączony do osobnego pinu ADC - wrzucam 1 wsad do 2 uC, podpinam czujniki i działa, bez konfiguracji każdego uC z osobna
tylko 2 kable (tak, wiem na 1wire też się tak da)

Wady:
więcej elementów w torze pomiarowym
przeliczenia pomiaru (wart. ADC na napięcie, napięcie na temp, tablica z wartościami napięcia i temp. , porównanie wart. wyliczonego napięcia z tablicą, wyrzucenie wart. temp. itd.) za które nie wiem jak się zabrać żeby było dokładnie, szybko i nie marnowało zasobów uC.

W temat PT100 nawet się nie zagłębiałem po spojrzeniu na ceny samego czujnika. :roll:

Co wybrać i ew. jak to rozwiązać sprzętowo / programowo ?

Z góry dzięki za pomoc.
Pozdrawiam :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 mar 2012, o 18:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

Kolego bez problemu możesz użyć popularnych czujników Dallasa DS18B20 na 1Wire nie musisz się przejmować
parowaniem układu gdyż łatwo jest wykonać detekcję podłączonego czujnika, która to po włączeniu/resecie
układu wykryje ile masz dostępnych czujników temperatury.

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 mar 2012, o 18:49 
Offline
Nowy

Dołączył(a): 19 lut 2012
Posty: 10
Lokalizacja: okolice Cze-wy
Pomógł: 0

O kwestię samego wykrycia kilku podłączonych DS18B20 na tej samej linii się nie boję bo to wiem, że da się zrobić. Nawet Mirek w swojej książce podał tego typu przykład.

Bardziej obawiam się o to, że uC raz odczyta mi czujnik #1 mierzący tempA jako #2 mierzący tempB, a drugi raz odwrotnie i przez to wyjdą krzaki przy sterowaniu. No ale skoro da się to rozwiązać...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 mar 2012, o 18:56 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

wierz mi krzaki nie wyjdą , musisz tylko założyć kolejność wykrycia i odczytu
czyli :

1 czujnik tempA , 2 czujnik tempB = i tak dalej

przez co nie porobi się bałagan a że układy mają unikalny ID więc układ ich nie pomyli
bo po prostu podczas wykrycia układu przypiszesz go do TMP w zależności od kolejności na magistrali

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 mar 2012, o 18:58 
Offline
Moderator
Avatar użytkownika

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

No tak z DS18B20 jest zwykle tak samo - najpierw zachwyt że O!! jak fajnie a po chwili mina na kwintę bo będzie trzeba zapamiętywać jakieś tam durne numery czujników na stałe w mikrokontrolerze.

N I E P R A W D A ---- no trzeba trochę pokombinować ;) .... gdyby były z tym takie problemy to te czujniki nie byłyby takie popularne. Aczkolwiek nie dziwnym jest że pierwszym pomysłem każdego początkującego jest za chwilę stawianie każdego czujnika DS18B20 na oddzielnym pinie mikrokontrolera zamiast n iluś tam na jednej magistrali i o zgrozo - to się wydaje prostsze początkującym ;)

Ja już kiedyś podejmowałem się prób zwrócenia uwagi jak MEGA PROSTO się z tym postępuje na elektrodzie - no ale jak to na elektrodzie - zaraz wpada sto innych osób co to ma lepsze pomysły tylko nie napisze jakie i temat się rozmydla

A po co masz pan pamięć EEPROM w procku? A po co masz RS232 żeby sobie konfigurować z zewnątrz albo zapisywać konfigurację z kompa np nawet przez Bluetooth ? no po co ?

A po co masz Pan wyświetlacz LCD przecież można zrobić byle MENU jeśli się już nie chce albo nie wie za dużo o komunikacji z PC ..... Proszę bardzo przykład jak to zrobiłem na LCD 2x16 dla 4 czujników i to jeszcze dowolnych czyli albo DS18B20 albo DS1820 albo DS18S20

http://www.elektroda.pl/rtvforum/viewto ... f08f85bd77

W mojej książce masz wszystko co do tego potrzeba ..... wszystko.

Nic ponadto nie użyłem w tym projekcie. Co za problem sobie zrobić MENU i zapamiętywać numery czujników w EEPROM procka ? ;)

xrk014 napisał(a):
Bardziej obawiam się o to, że uC raz odczyta mi czujnik #1 mierzący tempA jako #2 mierzący tempB, a drugi raz odwrotnie i przez to wyjdą krzaki przy sterowaniu. No ale skoro da się to rozwiązać...


żadnych takich - tylko przecież trzeba sobie program napisać. Panowie - panowie....

przecież masz piękną procedurę która odczytuje ci wszystkie numery z magistrali. Co za problem zrobić sobie teraz miejsca w pamięci RAM i EEPROM na określone czujniki. Ja to sobie nazywam SLOT'y

np SLOT1 - to duży pokój
SLOT2 - to łazienka
SLOT3 - to balkon

itd

i tylko przepisywać - eeeh no to się nazywa programowanie - a nie tylko posłużenie się gotową biblioteką. Przecież nikt nigdy nie napisze tak uniwersalnej biblioteki, która zrobi wszystko za wszystkich

_________________
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: 24 mar 2012, o 19:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

No właśnie też nie rozumiem tego Mirku ,

...każdy uważa, ze postawienie 10 DSów na 10 pinach jest wygodne i unika się
problemów z adresowaniem itp bo przypisuje to 1Wire do tego pomiaru ...

a przecież zaleta tej magistrali jest właśnie to że układy maja unikalny ID co ułatwia podłączenie wielu DSów na jednym pinie i jest to i szybkie i skuteczne i proste.

No ale masz rację niema to jak kombinować jak koń pod górę :)

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 mar 2012, o 19:24 
Offline
Moderator
Avatar użytkownika

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

Z drugiej strony to widzę od pewnego czasu, że jest to tak ogromny problem i wśród tak dużej ilości ludzi, że chyba w jakiejś kolejnej książce opiszę to od podstaw krok po kroku ..... żeby uzmysłowić właśnie ludziom te zalety podłączania wielu czujników na jednej magistrali zamiast odwrotnie ...

tymczasem może niech autor wątku coś popróbuje z własnym kodem w tym zakresie i np wg wskazówek jakie napisałem - to po drodze coś podpowiemy .... na prawdę wszystko sprowadza się do napisania sobie tylko kilku funkcji, które będą żonglować tymi odczytanymi numerami z magistrali i miejscami w RAM i EEPROM procka (sloty)

_________________
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: 24 mar 2012, o 19:28 
Offline
Nowy

Dołączył(a): 19 lut 2012
Posty: 10
Lokalizacja: okolice Cze-wy
Pomógł: 0

Panowie... obaj siedzicie w tym dłużej niż ja, z wieloma rzeczami mieliście styczność, tudzież kombinowaliście w zaciszu swojego warsztatu i wiecie jak się do czegoś zabrać. Co tu dużo pisać... nie mam takiego doświadczenia jak Wy dlatego pytam. Czasami po prostu brakuje mi pomysłu jak coś zrealizować.
To z kilkoma 1wire przyszło mi tak na szybko do głowy ale po chwili namysłu sam byłem do tego jakoś sceptycznie nastawiony.

Większość podobnych regulatorów, których opis widziałem na stronach producentów, wykorzystuje czujniki rezystancyjne, głównie te z serii KTY. Dlatego też nimi się bardziej zainteresowałem i chciałem robić pomiary za ich pomocą.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 mar 2012, o 19:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

No właśnie tak widzę że chyba warto szerzej omówić magistrale 1wire, I2C, SPI bo wiele tu ludzie mają braków
wszystkim się to wydaje makabrycznie trudne i nie do użycia , a fizycznie wszystko się sprowadza do jak to napisałeś kilku funkcji ... echhh:)


Wiesz kolego , ale to nie znaczy ze nie dasz rady :) pomożemy Ci , ale musisz sam zacząć i zadawać konkretne pytania:) Użycie czujników jest pozornie proste bo tylko wystarczy wzmocnić sygnał op-ampem i czytać ADC
firmy stosują to rozwiązanie chętnie ze względu na:

1. cena czujnika
2. brak potrzeby myślenia nad użyciem eeproma i panowania nad ID czujników

czasem jednak użycie czujników rezystancyjnych jest dobre bo mogą mierzyć w szerszych zakresach temp.
Ale to nie jest powód do skakania przez okno bo wszyscy tak robią :)

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 mar 2012, o 19:50 
Offline
Moderator
Avatar użytkownika

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

xrk014 napisał(a):
Panowie... obaj siedzicie w tym dłużej niż ja, .....


Ale nie zrozum nas źle proszę. Nie chodzi o to żeby tutaj coś ci zarzucać broń Boże. Jak już to prędzej zmotywować.

Ale jeśli musisz coś pilnie zrobić a w międzyczasie łatwiej i lepiej będzie na czymś innym niż scalony czujnik DS to czemu nie .... Przecież i tak zawsze każdy z nas wybierze to co jest dla niego wygodniejsze.

Mi tylko chodzi bardziej o to żeby czasem w chwili wolnej wgryźć się troszkę w te DS'y bo też warto jak się później sam przekonasz.

_________________
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: 24 mar 2012, o 20:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

mirekk36 napisał(a):
xrk014 napisał(a):
Panowie... obaj siedzicie w tym dłużej niż ja, .....

Mi tylko chodzi bardziej o to żeby czasem w chwili wolnej wgryźć się troszkę w te DS'y bo też warto jak się później sam przekonasz.


Dokładnie jak pisze Mirek doświadczenie przychodzi z czasem. pokazujemy Ci drzwi , ale to ty musisz przez nie przejść,

z analogowych czujników np bardzo przyjemne są LM35, można też zastosować zintegrowane z czujnikiem wilgotności SHT11 czy SHT21 możliwości jest wiele naprawdę, ale najpierw trzeba sobie rozpisać warunki i potrzeby układu, a potem dopiero wybierać elementy i w końcu zbudować docelowy układ.

:)

tu na forum jesteśmy po to by pomóc, czasem na ostro czasem na sucho, głównie podając podpowiedzi, które mają na celu nakierowanie na właściwy trop:)

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 mar 2012, o 21:11 
Offline
Nowy

Dołączył(a): 19 lut 2012
Posty: 10
Lokalizacja: okolice Cze-wy
Pomógł: 0

Cytuj:
ale najpierw trzeba sobie rozpisać warunki i potrzeby układu, a potem dopiero wybierać elementy i w końcu zbudować docelowy układ.


Toteż właśnie robię przymiarki. :D Ogólnie hardware to prawdopodobnie atmega8, 2 triaki + 1 przekaźnik... albo 3 triaki, do tego lcd 2x16 znaków, 4-5 przycisków, 3-4 diody. Do tego oczywiście układ pomiaru temp. czyli albo DS'y albo zabawa na rezystancyjnych ale szczerze powiedziawszy mam dosyć zabawy z nimi i kombinacji z kalibracją i linearyzacją (pewnie do tego też się źle zabieram ale... pomińmy to :P )

To taka wersja minimalistyczna.
Co do softu: tu już zależy jak mi to wszystko będzie szło... na sam początek podstawy - jakieś menu, obsługa pomiaru temp z temp zadaną i odpowiednie sterowanie triakami itp., zmiana czasu postoju itd.

Później może jakaś komunikacja z osobnym modułem po rs232 albo rs485.



Ostatnio edytowano 24 mar 2012, o 21:17 przez xrk014, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 mar 2012, o 21:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

No to superowo , jest jakiś układ odniesienia no ale trzeba i oszczędzać zasoby procesora :)

w czym chcesz pisać ?? C, C++, bascom, ASM ??

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 mar 2012, o 21:23 
Offline
Nowy

Dołączył(a): 19 lut 2012
Posty: 10
Lokalizacja: okolice Cze-wy
Pomógł: 0

Raczej C, za ASM nie przepadam. Wstawki też tu raczej nie będą potrzebne.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 mar 2012, o 22:22 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 24 mar 2012
Posty: 13
Pomógł: 0

Witaj
Zamiast pisać proste menu do zapisu id scalaków można to zrobić w prosty sposób
Prosta procedura odczytu id i zapis pod odpowiedni adres eeproma .
Ja robię to tak :
Procedura sprawdza przed główną pętlą programu stany portów .
można wykorzystać switch -y które masz bo są a szkoda innych portów i w zależności od kombinacji wciśnięć zapisuje id jako np ds1 ,ds2
podczas zapisywania ds podpinam na magistralę tylko jeden.
wciskam odpowiednią kombinację i załączamy urządzenie po sprawdzeniu i zapisie komunikat na lcd i zapis do eeproma pod adres który potem wykorzystuje gł pętla .
i potem wyłączamy i kolejny .
Jest to o tyle dobre że zajmuje dużo mniej miejsca niż nawet proste menu .
Robisz raz i z bańki .
Nawet jak wymieniasz jeden ds to odpowiednia kombinacja klawiszy power on i zawsze dopisze go tam gdzie trzeba

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 mar 2012, o 23:21 
Offline
Moderator
Avatar użytkownika

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

No i kolejna dobra podpowiedź jak to można realizować sobie programowo ;) jeśli chodzi o DS'ki ;)

_________________
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: 25 mar 2012, o 12:40 
Offline
Użytkownik

Dołączył(a): 15 lut 2012
Posty: 344
Lokalizacja: Bydgoszcz
Pomógł: 11

A co sądzicie o takim pomyśle:
Najpierw zdefiniować strukturę która by opisywała czujnik(temperatura , numer seryjny i numer czujnika) a następnie przypisać te dane pod odpowiedni slot(adres pamięci EEPROM). To by (moim zdaniem) ułatwiło ustawianie poszczególnych czujników pod odpowiednie sloty.

Pozdrawiam!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 mar 2012, o 12:54 
Offline
Moderator
Avatar użytkownika

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

MichalXY napisał(a):
A co sądzicie o takim pomyśle:
Najpierw zdefiniować strukturę która by opisywała czujnik(temperatura , numer seryjny i numer czujnika) a następnie przypisać te dane pod odpowiedni slot(adres pamięci EEPROM). To by (moim zdaniem) ułatwiło ustawianie poszczególnych czujników pod odpowiednie sloty.


No widzisz do tego się to wszystko sprowadza - o to właśnie w tym chodzi. A tym bardziej, że warto pamiętać o jednym, w pamięci EEPROM szczególnie wszystkie zmienne warto trzymać TYLKO I WYŁĄCZNIE w postaci struktur - i to zdecydowanie.

_________________
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: 27 mar 2012, o 00:13 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 24 mar 2012
Posty: 13
Pomógł: 0

MichalXY napisał(a):
A co sądzicie o takim pomyśle:
Najpierw zdefiniować strukturę która by opisywała czujnik(temperatura , numer seryjny i numer czujnika) a następnie przypisać te dane pod odpowiedni slot(adres pamięci EEPROM). To by (moim zdaniem) ułatwiło ustawianie poszczególnych czujników pod odpowiednie sloty.

Pozdrawiam!


Przepraszam rozumiem struktura ale nie kumam "temperatura" w owej. Czy ma to być wynik pomiaru ?
Jeśli tak to życzę powodzenia aby trzymać go w eepromie , chyba że pomiar raz dziennie bo inaczej zajeździsz eeprom,
zresztą może sie mylę jest już późno idę spać.

Pozdrawiam

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 mar 2012, o 08:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

Nie nie kolego w eepromie tylko przechowywać ID termometrów po wykryciu.

czyli program na starcie identyfikuje DS-y i zapisuje ich ID w pamięci eeprom i przypisuje konkretny ID do właściwego slotu
np na podstawie kolejności ID na magistrali.

jakby trzymać w eepromie wyniki pomiarów to bardzo szybko by się eeprom skończył :)

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sie 2012, o 19:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 lip 2012
Posty: 238
Pomógł: 5

Też trzeba dodać taką rzecz jeśli chce się mierzyć temperatury, a mianowicie warunki - tutaj kolega zakładający temat podał je jasno. Warto byłoby aby przedstawić gotową receptę :) na np. taki układ czujek ds18b20:
- odległość czujnika od uC = ~60m
- grubość żyłki w kablu czujnika = np. 0,22mm
- w korytku w którym znajduje się kabel czujnika/czujników są blisko siebie kable wysokiego napięcia do grzałek ~20kw oraz do silników tzw klatkowych ok100W.
- sama czujka pracuje w warunkach od -30C do +30C
- czasem czujka ma prawo zamarznąć, czyli może znajdować się w lodzie/śniegu/szronie....
- no i na końcu wspomnianego kabla mają być przynajmniej dwa czujniki ....




iiii mam takie pytanie czy ten cyfrowy czujnik da radę na takiej odległości w takich warunkach??

Ciekawi mnie ta kwestia bo wiem gdzie w firmie działają czujniki PT100 na kablach po 80-100M w otoczeniu takim jak opisałem wyżej... i to działa. Ciekawe jak sprawdziłyby się tutaj te cyfrówki.
Dodam że taką cyfrówkę bym ładnie w łusce zaklejonej usadził, tak żeby nie było zwarć przez wilgoć/wodę.
Narazie nikt nie potrafił dokładnie rozjaśnić czy taka konfiguracja ma prawo zadziałać. Oczywiście jeśli chodzi o stronę programową czyli detekcja błędów i zaokrąglanie wahań pomiarów to już jest pikuś... Tylko czy to w takich warunkach ruszy. Jak zapewne wiecie w warunkach terenowych dość trudno jest doświadczenia przeprowadzać więc, dobrze byłoby już wiedzieć te kwestie wcześniej.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lis 2012, o 13:00 

Pomógł: 0

Odświeżę troszeczkę temat.

Idąc za głosem Mirka, jestem właśnie w trakcie przerabiania jego bibliotek na 4 i więcej czujników pod jednym pinem procesora.

Dodatkowo czujniki będą musiały być ściśle ustawione pod dane pomieszczenia z uwzględnieniem ewentualnej późniejszej wymiany.

Czyli każdy czujnik ma ID, które będzie przypisane do pomieszczenia, jeżeli wymienimy jakiś czujnik, to nie nastąpi ich wymieszanie, tylko zostanie albo dodany nowy czujnik z nowym ID, a stary po prostu zostanie nadpisany. Po za tym musi być możliwość dodawania nowych czujników w pełni automatycznie, jedyne co będzie musiał zrobić klient to nazwać sobie czujnik ;).

By nie było za prosto część czujników będzie bezprzewodowa ;) po 433Mhz (pewnie RFM12).

Same biblioteki wymagają odrobinę przeróbek, bo samo przypisywanie miejsc na wyświetlaczu jest w pełni przypadkowe, tj. mamy 4 czujniki, wyciągamy jeden, w tym momencie pojawia się error na jego miejscu czyli prawidłowo. Niestety czasem jest tak, że po włożeniu nowego, przesuwają się poszczególne pomiary miejscami.

Po za tym przy więcej niż 2-3 czujnikach, obsługa ich wykrywania i wyświetlania za pomocą if....else jest trochę nie elegancka.

Można by to załatwić forem, dzięki temu procedura będzie działać dla 1 i 255 czujników ;).....

PS. przepraszam ale projekt światełka będzie musiał poczekać ;).



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lis 2012, o 13:24 
Offline
Moderator
Avatar użytkownika

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

Biblioteki panie kochany nie wymagają żadnych przeróbek. Odradzam ci to zdecydowanie bo sam sobie na przyszłość krzywdę zrobisz i już tłumaczę dlaczego :(

1. w tej chwili biblioteki są uniwersalne można użyć je w dowolnym programie na dowolnym sprzęcie
2. jeśli je powiążesz z nie daj boże jakimś wyświetlaczem czy tam kolejnością dziwną to stracisz uniwersalność

to się robi CAŁKOWICIE inaczej ale też równie prosto

po tym co pisałeś na początku tego postu - myślałem nawet że już jakby kojarzysz ten sposób ale chyba nie - więc podpowiem co nieco

utwórz sobie (ja to nazywam) SLOTY - czyli miejsca na czujniki. Tyle slotów ile chcesz mieć czujników w systemie

można to bardzo ładnie zrobić na strukturach. Np powołujesz do życia strukturę TSLOT a w niej będzie miejsce UWAGA! na numer czujnika i NAZWĘ POMIESZCZENIA i np status (jest czy go nie ma aktualnie) (to taki przykład). Możesz coś jeszcze dodać jak ci pasuje.

A z tego robisz tablicę struktur - o takiej wielkości ile będziesz miał czujników w systemie swoim

i teraz UWAGA! ;)

gdy system startuje to SLOTY są puste więc nie widzi ŻADNEGO czujnika OK ?

i teraz sobie tworzysz kilka własnych funkcji, które:

1. będą potrafiły wyświetlić listę czujników dostępnych na magistrali (to proste) bo taką tablicę już masz w bibliotece - gdzie kolejność się zmienia w zależności od numeru ale to nas czochra

2. będą potrafiły skopiować wybrany numer z tej tablicy czujników magistrali do jakiegoś SLOTU

3. będą potrafiły skasować czujnik ze slotu

4. sprawdzić czy czujnik w SLOCIE znajduje się na liście czujników na magistrali

jak to zrobisz to pomyśl sobie. Pierwsze uruchomienie systemu Sloty puste a serwisant ma po kolei przyporządkować czujniki, więc idzie i wkłada pierwszy DS18B20 w dziurkę w "POKOJU NR 2", na LCD pokazuje się w MENU że czujnik jest dostępny na magistrali (można jeszcze obok numeru wyświetlać jego aktualną temperaturę) - więc BACH dopisujemy go do pierwszego SLOTU i nadajemy mu nazwę "POKÓJ_2"

i tak kolejno wszystkie miejsca przypisujemy do slotów...

OK ale będzie pytanie - a co się stanie gdy czujnik się ZRYPIE ?

po pierwsze widzimy w którym slocie czyli POKOJU nie działa prawda ? więc idziemy i go wyłyżeczkujemy - a następnie włożymy Nowy.

I teraz wracamy do LCD i gdy w MENU przeglądamy czujniki na magistrali - to kurczę jak go tu rozpoznać, który to jest ? temperatura się wyrównała i jest taka sama jak w innych pokojach przecież

no to co za problem dodać jeszcze * (gwiazdkę) do tego czujnika na magistrali, który (sprawdzamy w locie) nie jest przydzielony jeszcze do żadnego SLOTU ??? więc od razu go zobaczymy

gorzej będzie jak np od razu padnie kilka czujników ale też bez przesady ;) najpierw włożymy pierwszy i na liście pojawi się TYLKO jeden z *, a my wiemy jaki to POKÓJ czyli też SLOT - więc CIACH wyrzucamy stary numer i przypisujemy nowy numer

kurczę wtedy takie operacje są proste. Oczywiście ciężko wszystko zmieścić na LCD czasem ale jak się ma jakiegoś BLUTUTA pod ręką to można sobie na PC napisać jeszcze sofcik do zarządzania ;)

na elektrodzie kiedyś zrobiłem coś takiego:

http://www.elektroda.pl/rtvforum/viewto ... 1b06eaa0ef

nie wiem czy ten filmik będzie działał w tym wątku ale pod koniec widać jak przydzielam sloty, czujniki itp - a wszystko tylko w oparciu o wyświetlacz LCD 2x16

a biblioteka nadal zostaje biblioteką uniwersalną

_________________
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 lis 2012, o 13:41 

Pomógł: 0

Wielkie dzięki, zapomniałem o strukturach ;).

Bibliotek nie chcę ruszać, tj. folderu 1wire ;), nawet go nie dotykam ;). Źle się wyraziłem, chodziło mi właśnie o samo wykrywanie czujników tj. przypisywanie ich do konkretnych pomieszczeń.

Sam jestem zwolennikiem nie wyważania otwartych drzwi :).



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lis 2012, o 13:49 
Offline
Moderator
Avatar użytkownika

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

No właśnie a tu struktury przydadzą się jak miód do rany ;)

_________________
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 lis 2012, o 13:57 

Pomógł: 0

No to czeka mnie przetrawienie kolejnego działu "Język C nowoczesne programowanie" ;). Na początek przeczytałem rozdział o strukturach i uniach w Twojej książce :).

Z racji braku możliwości dynamicznego tworzenia tablic w C, czy nie lepiej by było tą strukturę zapisywać w eepromie? bo nie bardzo mogę sobie wyobrazić w jaki sposób można stworzyć tablicę, której rozmiar będzie zależał od ilości czujników.

Chyba, że z góry zakładamy iż będzie max 10 czujników i robimy tablicę

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


W sumie 10 czujników to tylko 50bajtow.



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

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