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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 19 maja 2025, o 05:06


    Strefa czasowa: UTC + 1





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

    Dołączył(a): 30 sty 2013
    Posty: 169
    Lokalizacja: Silesia - P-ce
    Pomógł: 10

    Cześć

    Poniżej przedstawię obsługę moduły RFM69 na raspberrypi. Program pisałem w NetBeans na windowsie w języku C (stosowałem cross-compiler)

    Z góry przepraszam z chaos.

    Biblioteka wykorzystuje również bibliotekę wiringPI, która niestety nie będzie już uaktualniana (tu można o tym poczytać). Może uda mi się jeszcze przy wykorzystaniu spiDEV to oprogramować.

    Całej biblioteki nie będę umieszczał tylko fragmenty, które zostały zmienione - bazuje ona na bibliotece od Mirka..
    A więc tak, obsługa komend wygląda następująco:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Do tej funkcji przekazywane są trzy argumenty, w pierwotnej były dwa, więc wszystkie odnośniki do tej funkcji należy zmienić. Przykład
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Biblioteka będzie obsługiwała sprzętowo SPI, więc należy usunąć wszystko co było związane z obsługą programową SPI:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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

    oraz zmieniony został sposób przesyłania danych FIFO, na:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    W funkcji odpowiedzialnej za ustawianie ID naszej sieci należy zmienić część gdzie odczytujemy dane z przestrzeni programu. Zmieniamy to na:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Teraz przechodzimy do funkcji inicjalizującej nasz układ rfm. Na początku znajduje się kod odpowiedzialny za konfigurację przerwać z mikrokontrolera AVR - usuwamy to jak i konfigurację wejść wyjść.

    W funkcji odbierającej dane zmieniłem sposób odczytu długości odbieranej ramki danych, oraz odbiór samej ramki danych:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Zostały utworzone dodatkowe dwie funkcje do ustawienia pinów RST i IRQ, oraz funkcja resetująca układ:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Ze względu na brak jeszcze umiejętności obsługi wątków i przerwań, sprawdzanie czy naleciały nowe dane wykonuję w pętli głównej, poprzez sprawdzanie stanu pinu IRQ:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Możliwe jest też wykorzystanie funkcji rfm69_receiving i odczyt co jakiś czas czy ta funkcja zwróci 1, co będzie informacją o odebranych danych. Tylko w tym przypadku należy dodać jakąś zwłokę czasową w pętli.

    Na początku biblioteki należy zmienić też dołączane biblioteki:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Obsługa tak zmodyfikowanej biblioteki wygląda następująco (dla odbioru) :
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Jednak biblioteki od Mirka są uniwersalne - po małych przeróbkach nawet na malince można odpalić jego bibliotekę.
    Jeżeli coś pominąłem to poprawię. Jeżeli zauważyłeś jakiś błąd to pisz;)

    Pozdrawiam

    _________________
    Niewiele trzeba by być szczęślwym.Wystarczy chcieć



    Ostatnio edytowano 30 gru 2019, o 16:05 przez danielos, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 30 gru 2019, o 16:04 
    Offline
    Moderator
    Avatar użytkownika

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

    Bardzo ciekawa konwersja ;) gratki za odpalenie na malince

    _________________
    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  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 

    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