ATNEL tech-forum https://forum.atnel.pl/ |
|
SunDuino - Nelduino - iButton czyli zabawa z 1Wire https://forum.atnel.pl/topic80.html |
Strona 1 z 1 |
Autor: | SunRiver [ 27 lis 2011, o 17:58 ] |
Tytuł: | SunDuino - Nelduino - iButton czyli zabawa z 1Wire |
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: Dedykowanego czytnika DS9092L zawierającego Diodę sygnalizacyjna LED w kolorze zielonym 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 : 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#. życzę miłej zabawy z pastylkami IButton |
Autor: | mirekk36 [ 27 lis 2011, o 22:38 ] |
Tytuł: | Re: SunDuino - Nelduino - iButton czyli zabawa z 1Wire |
Bardzo fajny artykuł z tego wyszedł |
Autor: | SunRiver [ 27 lis 2011, o 23:09 ] |
Tytuł: | Re: SunDuino - Nelduino - iButton czyli zabawa z 1Wire |
Zdało by się jeszcze w GCC napisać to samo narazie walcze w GCC z DS1904L ale jakos mi nie idzie |
Autor: | kierlan [ 28 lis 2011, o 06:55 ] |
Tytuł: | Re: SunDuino - Nelduino - iButton czyli zabawa z 1Wire |
hehe, nuda robi swoje |
Autor: | SunRiver [ 28 lis 2011, o 16:42 ] |
Tytuł: | Re: SunDuino - Nelduino - iButton czyli zabawa z 1Wire |
Tak zwłaszcza jak się w zakamarkach "warsztatu" walają dziwne drobiazgi |
Autor: | chemik0 [ 25 cze 2013, o 21:29 ] |
Tytuł: | Re: SunDuino - Nelduino - iButton czyli zabawa z 1Wire |
Witam, Odkopię trochę temat z pytaniem do Sun-a: Jest jakaś szansa na powtórkę z rozrywki dla GCC? |
Autor: | SunRiver [ 25 cze 2013, o 21:32 ] |
Tytuł: | Re: SunDuino - Nelduino - iButton czyli zabawa z 1Wire |
chemik , ale to nie jest problem wystarczy odczytywać ID pastylki |
Autor: | chemik0 [ 25 cze 2013, o 21:38 ] |
Tytuł: | Re: SunDuino - Nelduino - iButton czyli zabawa z 1Wire |
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 ... |
Autor: | SunRiver [ 25 cze 2013, o 21:39 ] |
Tytuł: | Re: SunDuino - Nelduino - iButton czyli zabawa z 1Wire |
jak bedę maił czas to zrobie |
Autor: | chemik0 [ 25 cze 2013, o 21:45 ] |
Tytuł: | Re: SunDuino - Nelduino - iButton czyli zabawa z 1Wire |
Wspaniale !!! Czekam z niecierpliwością. Z góry wielkie dzięki. |
Autor: | chemik0 [ 28 cze 2013, o 21:59 ] |
Tytuł: | Re: SunDuino - Nelduino - iButton czyli zabawa z 1Wire |
Witam, Jako że niecierpliwy człowiek jestem i nie dawało mi to spokoju, pomęczyłem temat i UDAŁO 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... 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. |
Autor: | Krauser [ 28 cze 2013, o 23:40 ] |
Tytuł: | Re: SunDuino - Nelduino - iButton czyli zabawa z 1Wire |
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. |
Autor: | chemik0 [ 29 cze 2013, o 11:03 ] |
Tytuł: | Re: SunDuino - Nelduino - iButton czyli zabawa z 1Wire |
Dziękuję za wszelkie podpowiedzi, wieczorkiem przetestuję możliwości zmian i dam znać jakie oszczędności przyniosły. |
Autor: | SunRiver [ 29 cze 2013, o 12:40 ] |
Tytuł: | Re: SunDuino - Nelduino - iButton czyli zabawa z 1Wire |
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ąć |
Autor: | SunRiver [ 16 lip 2013, o 19:55 ] |
Tytuł: | Re: SunDuino - Nelduino - iButton czyli zabawa z 1Wire |
Nic to nie zmienia , najpierw trzeba mieć klucze żeby je z czytać wiec gdzie tu sens |
Autor: | SunRiver [ 16 lip 2013, o 20:19 ] |
Tytuł: | Re: SunDuino - Nelduino - iButton czyli zabawa z 1Wire |
proponuje byś uzywał czytnika/skanera siatkówki oka |
Autor: | SunRiver [ 16 lip 2013, o 20:43 ] |
Tytuł: | Re: SunDuino - Nelduino - iButton czyli zabawa z 1Wire |
nie oto chodzi , tylko sam powiedz każdemu dajesz klucze do skopiowania ?? stoisz na rogu i dajesz klucz do odbicia każdemu ?? bez jaj |
Autor: | SunRiver [ 16 lip 2013, o 20:56 ] |
Tytuł: | Re: SunDuino - Nelduino - iButton czyli zabawa z 1Wire |
Ale to co tu opisałem to tylko zabawka w celu pokazania jak tego używać a nie żeby coś zabezpieczać .... |
Autor: | SunRiver [ 16 lip 2013, o 21:02 ] |
Tytuł: | Re: SunDuino - Nelduino - iButton czyli zabawa z 1Wire |
ibutona możesz sobie zrobic z wszystkiego co jest na 1Wire nawet zwykłego DS18B20 i możesz dodatkowo sobie wprowadzić do identyfikacji odczyt temperatury |
Autor: | Radziu [ 11 paź 2014, o 15:36 ] |
Tytuł: | Re: SunDuino - Nelduino - iButton czyli zabawa z 1Wire |
Czy pastylkę DS1990 można odczytywać na tej samej linii do której podłączony jest czunik DS18B20? |
Autor: | SunRiver [ 11 paź 2014, o 17:38 ] |
Tytuł: | Re: SunDuino - Nelduino - iButton czyli zabawa z 1Wire |
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) |
Autor: | Radziu [ 11 paź 2014, o 20:14 ] |
Tytuł: | Re: SunDuino - Nelduino - iButton czyli zabawa z 1Wire |
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. |
Autor: | SunRiver [ 11 paź 2014, o 21:16 ] |
Tytuł: | Re: SunDuino - Nelduino - iButton czyli zabawa z 1Wire |
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 |
Strona 1 z 1 | Strefa czasowa: UTC + 1 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |