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



Teraz jest 28 lis 2024, o 20:29


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 24 ] 
Autor Wiadomość
PostNapisane: 27 lis 2011, o 17:58 
Offline
Użytkownik
Avatar użytkownika

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

Pastylki Ibutton firmy DALLAS to nic nowego na rynku, są to urządzenia pracujace na magistrali 1Wire. Magistrala ta

wykożystywana jest dosyć czesto przez elektroników do transmisji z popularnym Termometrem cyfrowym DS18B20,

ale urzadzeń na tej magistrali jest wiele firma DALLAS poza słynnymi termometrami DS18xxx produkuje pastylki

iButton wśród których znajdziemy proste DS1990 - które mogą pracować jako klucz gdyż dysponują unikalnym kodem,

ale też sa pastylki zawierające termometr , pamięć i wiele innych. Zaletą pastylek jest łatwość użycia i fakt iż

moga byc zasilane pasożytniczo dzięki czemu wystarcza 2 przewody MASA i DATA .

W tym temacie skupimy się na najprostrzych pastylkach DS1990R w rozmiarze F5 .




DS1990R zawiera tylko unikalny kod - 64 bitowy ID , który możemy tylko odczytywać , ale świadomość faktu iż kod ten

jest unikalny (nigdy się nie powtarza) umożliwia nam stworzenie układu będącego np. kodowym Zamkiem lub Alarmem

uzbrajanym przy pomocy pstylki.




...:: DANE PSTYLKI DS1990R ::...

Wszystkie dane znajdziemy w nocie PDF pod Adresem: http://pdfserv.maxim-ic.com/en/ds/DS199 ... 90R-F5.pdf

Tak więc do naszych niecnych celów użyjemy:

Obrazek

Dedykowanego czytnika DS9092L zawierającego Diodę sygnalizacyjna LED w kolorze zielonym

Obrazek

Potrzebna nam będzie też płytka Sunduino lub Arduino lub inny klon z mikrokontrolerem AVR

Przekaźnik na 12V i tranzystor NPN np 2N2222 lub BC547C i parę rezystorów 1K i 4.7K.




Z racji iż nasz czytnik posiada diodę LED użyjemy jej do sygnalizacji poprawności KLUCZA.




..:: PROGRAM ZAŁOŻENIA ::..




Założenie programu jest bardzo proste , Czytnik oczekuje na przyłożenie Pastylki po czym program

sprawdza odczytany klucz z bazą danych i po weryfikacji oznajmia nam miganiem diody co 0,5s ,

że klucz jest prawidłowy i tym samym zezwala na dostęp uruchamiając przekaźnik, lub miganiem szybkim

co 150ms informuje nas iż kod jest nieprawidłowy / nierozpoznany i tym samym nie zezwala na dostęp.

W przykładzie użyjemy zakodowanych 8 pastylek zezwalających na dostęp dla 8 użytkowników.

...:: KOD PROGRAMU ::...

W programie użyta została biblioteka dla Arduino IDE OneWire.h ułatwiająca korzystanie z magistrali 1Wire

w środowisku ARDUINO IDE, która jest do pobrania w REPO-Duino wraz z plikiem PDE programu prezentowanego

poniżej. Program dodatkowo wysyła na terminal komunikaty , które można wyświetlić na Serial LCD lub przerobić

na wyświetlanie przez LCD zgodny z HD77480 :


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


Resztę czyli potrzebne biblioteki OneWire schemat połaczeń znajdziecie na mojej stronie życzę miłej zabawy z pastylkami IButton

Przy wpisywaniu własnych pastylek przyda się to iz program wyświetla w terminalu ID przytknietej pastylki
wystarczy tylko go przepisać do tablicy i gotwe. ID jest już podane w DEC :)

Przykład działania w terminalu -- pierwsza Linia oznaczona jako ID to kod naszej pastylki
w przypadku niezgodności kodów w terminalu wyswietlone zostaja numery IDE zakodowanych pastylek
od strony czytnika informacja jest tylko miganie diody w czytniku.

Widoczny terminal powstał z potrzeby w Visual C#.

Obrazek


życzę miłej zabawy z pastylkami IButton

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lis 2011, o 21:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 24 paź 2011
Posty: 580
Lokalizacja: Warszawa
Pomógł: 0

Witam!!!

To teraz pół żartem pół serio :D

Jako, że jest niedziela wieczór a my elektronicy nigdy się nie pozwolimy nudzić... prezentuje żartobliwe lecz skuteczne rozwiązanie dla braku ibuttona.

Skoro wiemy, że każdy element na 1wire, pastylki i czujniki mają swój unikalny kod zbudujemy czytnik wraz z pastylką domowej roboty :).

Zakładam, że nie każdy ma w swoim zapleczu ibuttony i czytniki, ale płytkę uniwersalną bądź breadboarda znajdzie każdy, czujnik DS18B20 też sądzę że ma każdy z nas zatem do dzieła!!

Potrzebne elementy:
1. 2x rezystor 4,7Kohm
2. kawałek płytki uniwersalnej lub breadboard
3. pare kabelków
4. DS18B20

teraz tak:

łączymy środkową nogę (DATA) DS18B20 z prawą patrząc na napisy (VCC)
następnie od środkowej nogi podpinamy kabelkiem do procesora tam gdzie kabelek data od ibuttona.
gnd do gnd. kolejny krok to poprzez rezystor 4,7Khom vcc od DS18B20 do vcc.

Prawie gotowe, teraz odczytujemy kod naszego czujnika w terminalu( po wgraniu kodu SunRivera) wyskoczy nam, że klucz jest nieprawidłowy ale uzyskamy nasze ID.

Teraz zamieszczamy je w tabeli naszego programu i...

DZIAŁA!! MAMY SWÓJ DOMOWY ZESTAW "IBUTTON" :D

Obrazek

Miłej zabawy :)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lis 2011, o 22:38 
Offline
Moderator
Avatar użytkownika

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

Bardzo fajny artykuł z tego wyszedł ;)

_________________
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 lis 2011, o 23:09 
Offline
Użytkownik
Avatar użytkownika

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

Zdało by się jeszcze w GCC napisać to samo :) narazie walcze w GCC z DS1904L :) ale jakos mi nie idzie

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lis 2011, o 06:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 24 paź 2011
Posty: 580
Lokalizacja: Warszawa
Pomógł: 0

hehe, nuda robi swoje :D

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lis 2011, o 16:42 
Offline
Użytkownik
Avatar użytkownika

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

Tak zwłaszcza jak się w zakamarkach "warsztatu" walają dziwne drobiazgi :)

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 cze 2013, o 21:29 
Offline
Użytkownik

Dołączył(a): 27 paź 2011
Posty: 74
Pomógł: 2

Witam,
Odkopię trochę temat z pytaniem do Sun-a:

Jest jakaś szansa na powtórkę z rozrywki dla GCC?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 cze 2013, o 21:32 
Offline
Użytkownik
Avatar użytkownika

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

chemik , ale to nie jest problem :) wystarczy odczytywać ID pastylki :)

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 cze 2013, o 21:38 
Offline
Użytkownik

Dołączył(a): 27 paź 2011
Posty: 74
Pomógł: 2

Jakoś mi jeszcze nie idzie z 1-Wire.
Próbowałem pokombinować z DS2401 bo wpadło mi kilka w łapki, ale jakoś nie wychodzi.
Z arduino nie ma problemu, ale też jakoś mi nie po drodze.

Gdyby jednak kiedyś dopadła Cię MEGA nuda chętnie powrócę do tematu.

Pozdrawiam ...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 cze 2013, o 21:39 
Offline
Użytkownik
Avatar użytkownika

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

jak bedę maił czas to zrobie :)

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 cze 2013, o 21:45 
Offline
Użytkownik

Dołączył(a): 27 paź 2011
Posty: 74
Pomógł: 2

:D Wspaniale !!!
Czekam z niecierpliwością.
Z góry wielkie dzięki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 cze 2013, o 21:59 
Offline
Użytkownik

Dołączył(a): 27 paź 2011
Posty: 74
Pomógł: 2

Witam,
Jako że niecierpliwy człowiek jestem i nie dawało mi to spokoju, pomęczyłem temat i UDAŁO :lol: się.
Co prawda nie jest to pewnie optymalne rozwiązanie, ale do moich zastosowań sprawdza się idealnie.

Poniżej przedstawiam kilka linii kodu dla GCC odczytującego numer seryjny DS-a i porównującego go z zadeklarowanym wcześniej w tablicy numerem.

Dla potomności i co by się MISTRZ Sun nie musiał zajmować pierdołami...

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



Bardzo proszę o wszelkie uwagi i propozycje możliwości zmian i optymalizacji.

Pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 cze 2013, o 23:40 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

1. Jak chcesz zaoszczędzić RAM to key_DB umieść w pamięci programu
2. permited, czujniki_cnt, key są z modyfikatorem volatile. Chyba niepotrzebnie, bo nie widzę żeby zmieniały się w jakimś przerwaniu. A obsługa tych zmiennych wymaga dodatkowych instrukcji na odczytywanie ich z pamięci.
3. permited zerujesz a zmienne globalne są zerowane z automatu
4. Zmienne na potrzeby pętli możesz tworzyć w instrukcji for, chyba, że używasz jakiegoś starego standardu C
5. Funkcja key_check zwraca wartość, a przecież ta funkcja modyfikuje zmienną globalną, więc albo jedno albo drugie, a które to już zależy jak wykorzystasz tą funkcję, a w tym przykładzie nie wykorzystujesz tego co ta funkcja zwraca, ale z drugiej strony lepiej zwracać wynik niż zmieniać zmienną globalną, bo kod jest bardziej czytelny. Zmienne globalne to można zmieniać w funkcji obsługi przerwania, bo nie ma innego wyjścia.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 cze 2013, o 11:03 
Offline
Użytkownik

Dołączył(a): 27 paź 2011
Posty: 74
Pomógł: 2

Dziękuję za wszelkie podpowiedzi, wieczorkiem przetestuję możliwości zmian i dam znać jakie oszczędności przyniosły.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 cze 2013, o 12:40 
Offline
Użytkownik
Avatar użytkownika

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

no widzę że chemik się wziąłeś ostro do dzieła , zaiste słuszna decyzja przynosząca wyjątkowo duże korzyści zarówno dydaktyczne jak i projektowe i za to zaiste chwała ci :)

A kolega Krauser wyłuszczył wszystko jak na dłoni nic dodać nic ująć :)

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lip 2013, o 19:55 
Offline
Użytkownik
Avatar użytkownika

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

Nic to nie zmienia , najpierw trzeba mieć klucze żeby je z czytać wiec gdzie tu sens :P

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lip 2013, o 20:19 
Offline
Użytkownik
Avatar użytkownika

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

proponuje byś uzywał czytnika/skanera siatkówki oka :P

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lip 2013, o 20:43 
Offline
Użytkownik
Avatar użytkownika

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

nie oto chodzi , tylko sam powiedz każdemu dajesz klucze do skopiowania ??
stoisz na rogu i dajesz klucz do odbicia każdemu ??

bez jaj :)

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lip 2013, o 20:56 
Offline
Użytkownik
Avatar użytkownika

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

Ale to co tu opisałem to tylko zabawka w celu pokazania jak tego używać
a nie żeby coś zabezpieczać ....

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lip 2013, o 21:02 
Offline
Użytkownik
Avatar użytkownika

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

ibutona możesz sobie zrobic z wszystkiego co jest na 1Wire :P
nawet zwykłego DS18B20

i możesz dodatkowo sobie wprowadzić do identyfikacji odczyt temperatury :P

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 paź 2014, o 15:36 
Offline
Użytkownik

Dołączył(a): 12 mar 2014
Posty: 266
Lokalizacja: Warszawa
Zbananowany użytkownik

Pomógł: 2

Czy pastylkę DS1990 można odczytywać na tej samej linii do której podłączony jest czunik DS18B20?

_________________
Wysłane z Nokii 3310



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 paź 2014, o 17:38 
Offline
Użytkownik
Avatar użytkownika

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

Tak przecież pracuje na magistrali 1Wire , możesz mieć tam podłączone różne urządzenia --- DS18B20, DS1990, i wiele innych ....
każdy ma indywidualny nr ID (podobno się nie powtarza)

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 paź 2014, o 20:14 
Offline
Użytkownik

Dołączył(a): 12 mar 2014
Posty: 266
Lokalizacja: Warszawa
Zbananowany użytkownik

Pomógł: 2

Tyle wiem, bardziej chodziło mi o to, czy takie podłączanie iButtona w czasie kiedy jest transmisja z czujnikiem temperatury nie spowoduje jakiś problemów. Oczywiście program trzeba będzie też zmodyfikować, aby nie wykrywał czujnika temp jako niewłaściwego klucza.

_________________
Wysłane z Nokii 3310



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 paź 2014, o 21:16 
Offline
Użytkownik
Avatar użytkownika

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

W zasadzie wystarczy tylko czytać odpowiednie ID i Adres , w przypadku DS18B20 będziesz tylko czytał temperaturę więc możesz przypisać jego ID i je pomijać .

-----
Pacane z SunTALK v.1.21b

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



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: 24 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO