Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Wprowadzenie do GPIO Raspberry Pi
- Krok 2: Zrozumienie rezystorów
- Krok 3: Okablowanie LED
- Krok 4: Podłączanie diody LED do GPIO
- Krok 5: Używanie przekaźnika do sterowania diodą LED
- Krok 6: Dodawanie rezystora podciągającego
- Krok 7: Czujnik kontaktronowy
- Krok 8: Podłączanie kontaktronu do Pi
- Krok 9: Tworzenie trwałego rozwiązania na płytce prototypowej
- Krok 10: Referencje
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Jedną z inspiracji dla tego projektu była drobna instrukcja obsługi otwierania drzwi garażowych Raspberry Pi 3, a także kilka innych znalezionych w Internecie. Nie będąc doświadczonym elektronikiem, przeprowadziłem wiele dodatkowych badań nad sposobami interfejsu z Raspberry Pi i dowiedziałem się wiele o znaczeniu rezystorów z żarówkami LED i całym okablowaniem GPIO. Dowiedziałem się również o zaletach obwodów sprzętowych podciągających i opuszczających w porównaniu z wbudowaną funkcjonalnością Pi.
Ponieważ ten projekt drzwi garażowych jest naprawdę wieloczęściowym procesem obejmującym sprzęt Pi, oprogramowanie i instalację z otwieraczem drzwi garażowych, pomyślałem, że najpierw skupię się na sprzęcie Pi, ponieważ jest on potrzebny na każdym innym kroku.
Moje podejście jest bardzo podstawowe, stanowiąc podsumowanie nauki, którą zrobiłem, aby móc skompletować sprzęt. Zacznie się od pewnych informacji, a następnie zbudujemy obwody na płytce stykowej. Każdy krok udoskonali nasz projekt i wiedzę, czego kulminacją będzie zbudowanie trwałego rozwiązania sprzętowego do łączenia Pi z przekaźnikiem i czujnikami kontaktronowymi.
Dodatkowo, w przeciwieństwie do innych projektów, zdecydowałem się na Raspberry Pi Zero W, które jakiś czas temu trafiłem do sprzedaży, ale wciąż leżało nieużywane na moim biurku. Plusem jest to, że podczas prototypowania, jeśli uszkodziłem któryś z obwodów GPIO, wymiana i utrzymanie prototypu było tanie i łatwe. Minusem jest to, że ma tylko procesor ARMv6, więc niektóre rzeczy, takie jak Java, nie będą użyteczne.
Inną rzeczą, którą postanowiłem zrobić, było stworzenie własnej płytki dodatkowej dla obwodów, więc jeśli będę musiał zmienić lub wymienić moje Pi, o ile pinouty są takie same, płytkę należy łatwo podłączyć do nowego Pi. Miejmy nadzieję, że zminimalizuje to gniazdo szczurzego okablowania.
Moje założenia to:
- Wygodnie lutujesz
- Wiesz już, jak korzystać z podstawowych poleceń terminala na Raspberry Pi
- Używasz Raspbian Buster lub nowszego.
- Masz interfejs do wiersza poleceń Pi; albo z dedykowanym monitorem, klawiaturą itp. I/LUB za pomocą SSH.
- Znasz podstawową koncepcję projektowania obwodów elektrycznych; na przykład znasz różnicę między zasilaniem a uziemieniem i rozumiesz pojęcie zwarcia. Jeśli możesz umieścić nowe gniazdko w swoim domu, powinieneś być w stanie podążać dalej.
Kieszonkowe dzieci
W zależności od tego, jak bardzo jesteś oddany temu projektowi, możesz zacząć od rzeczy potrzebnych na każdym kroku i od tego miejsca. Wiele z tych części jest dostępnych w lokalnym sklepie z elektroniką lub w sklepie dla majsterkowiczów, ale zamieściłem linki do Amazon, aby poprawić opisy.
- MakerSpot RPi Raspberry Pi Zero W Protoboard (aby stworzyć ostateczną czapkę dla Pi)
- 2-kanałowy moduł przekaźnika DC 5 V (uzyskaj 1-kanałowy, jeśli masz jedne drzwi, 2 na 2 drzwi itp.)
- Przełącznik drzwi napowietrznych, normalnie otwarty (NIE) (Jeśli w tej chwili dopiero tworzysz prototyp i chcesz użyć tanich kontaktronów, aby rozpocząć, w porządku)
- Pakiet Electronic Fun Kit Bundle (zawierał wszystkie potrzebne rezystory, a także płytkę stykową i zasilacz do pomocy w prototypowaniu, testowaniu i nauce, zanim zrobiłem płytkę stałą). Jeśli już to wszystko masz, upewnij się, że masz pod ręką kilka rezystorów 10K, 1K i 330 omów.
- Przewody połączeniowe płyty chlebowej (dowolne zrobi)
- Lutownica z małą końcówką
- Lut z rdzeniem kalafonii
- Środek do czyszczenia grotów lutownicy
- Zapasowy zasilacz 9v (do zasilania płytki stykowej)
- Tanie płytki prototypowe do ćwiczeń lutowniczych (opcjonalnie)
- Działający Raspberry Pi Zero lub Pi do wyboru
- Piny nagłówka dla Raspberry Pi (jeśli nie masz jeszcze nagłówka)
- Nagłówki do układania w stosy do użytku na płycie prototypowej HAT.
- Małe szczypce półokrągłe
- Zestaw śrubokrętów jubilerskich
- Małe obcinaki boczne (do cięcia drutu po lutowaniu)
- Pinceta
- Trochę drutu o małej grubości (wolę solid-core) do użycia na płycie prototypowej
- Trochę silikonu (jeśli zdecydujesz się na użycie diod LED do montażu powierzchniowego 1,8 mm zamiast tych dostarczonych w zestawie)
- Zauważyłem, że lampa powiększająca była bardzo pomocna, aby zobaczyć małe prace lutownicze
Krok 1: Wprowadzenie do GPIO Raspberry Pi
Głównym interfejsem, którego będziemy używać z Raspberry Pi, jest GPIO (General Purpose Input/Output).
Znajdź właściwy schemat pinów dla swojego Pi tutaj. Ta instrukcja skupi się na Pi Zero W v1.1.
Będziemy używać tylko zielonych pinów GPIO, unikając pinów SDA, SCL, MOSI, MISO itp. (Odkryłem, że niektóre piny GPIO mają specjalne cele, co jest jedną z zalet prototypowania na płytce stykowej, więc utknąłem na pinach GPIO 17 (pin #11), 27 (pin #13) i 12 (#32) tak jak były w dobrych pozycjach dla mojej płytki stykowej.
Piny GPIO są zaprojektowane do pracy jako przełączniki cyfrowe (binarne); istnieją logicznie jako jeden z dwóch stanów: 1 lub zero. Stany te zależą od tego, czy pin dostarcza lub odbiera napięcie powyżej określonego progu (1), czy też dostarcza lub odbiera napięcie poniżej określonego progu. (O progach porozmawiamy później.)
Należy zauważyć, że chociaż Raspberry Pi może dostarczać zarówno 5 V, jak i 3,3 V (3V3), piny GPIO działają przy napięciu do 3,3 V. Więcej i uszkodzisz GPIO i ewentualnie cały kontroler. (Dlatego wykonujemy prototypy na płytce prototypowej i używamy najtańszego możliwego Pi!)
Stan pinów może być manipulowany przez oprogramowanie (wyjście) lub przez inne urządzenia podające stan (wejście).
Zróbmy to, używając podstawowych poleceń SYSFS. Nie jestem pewien, czy wymaga to WiringPi, ale jeśli napotkasz problemy, możesz go zainstalować, jeśli używasz minimalnego obrazu Raspbian.
Najpierw dajmy sobie dostęp do GPIO 17:
sudo echo "17" > /sys/class/gpio/export
Sprawdźmy teraz wartość GPIO:
sudo cat /sys/class/gpio/gpio17/value
Wartość powinna wynosić zero.
W tym momencie GPIO nie wie, czy jest to wejście czy wyjście. W związku z tym, jeśli spróbujesz manipulować wartością GPIO, otrzymasz "błąd zapisu: operacja niedozwolona". Powiedzmy więc, że pin jest wyprowadzany:
sudo echo "out" > /sys/class/gpio/gpio17/direction
A teraz ustaw wartość na 1:
sudo echo "1" > /sys/class/gpio/gpio17/value
Sprawdź ponownie wartość, aby zobaczyć… a wartość powinna wynosić 1.
Gratulacje, właśnie utworzyłeś wyjściowe GPIO i zmieniłeś stan!
Teraz jest trochę więcej, ale najpierw nauczmy się kilku rzeczy.
Krok 2: Zrozumienie rezystorów
Możesz więc wyszukać rezystory na Wikipedii, ale co one dla nas oznaczają? Przede wszystkim chronią nasze komponenty.
Pamiętasz, jak mówiliśmy o GPIO, że działają do 3,3 V? Oznacza to, że jeśli dasz pinowi GPIO więcej, możesz go usmażyć. Dlaczego to jest ważne? Czasami w dowolnym obwodzie występują niewielkie przepięcia, a jeśli maksymalna wartość wynosi 3,3 V, każda mała czkawka może powodować problemy. Praca na maksymalnym napięciu to ryzykowna propozycja.
Dotyczy to zwłaszcza diod LED. Dioda LED pobiera tyle energii, ile może. Ostatecznie dioda LED wypali się, ale znaczny pobór prądu może zużyć całą dostępną moc w obwodzie, powodując jego awarię.
Na przykład: co by się stało, gdybyś włożył widelec do obu bolców gniazdka elektrycznego? Opór jest znikomy lub nie ma go wcale, i spowodujesz przepalenie wyłącznika. (I prawdopodobnie zraniłeś się w tym procesie.) Dlaczego toster tego nie robi? Ponieważ jego elementy grzejne zapewniają opór i jako takie nie pobierają całego obciążenia obwodu.
Jak więc zapobiec temu, aby stało się to z diodą LED? Ograniczając ilość prądu używanego do napędzania diody LED za pomocą rezystora.
Ale jaki rozmiar rezystora? Tak, przeczytałem kilka artykułów internetowych i ostatecznie zdecydowałem się na rezystor 330 Ω na 3,3 V z diodą LED. Możesz przeczytać wszystkie ich obliczenia i samemu to rozgryźć, ale przetestowałem kilka na płytce prototypowej i 330 działało dobrze. Jedno z referencji, które sprawdziłem, znajdowało się na forach Raspberry Pi, ale wyszukiwanie Google odkryje o wiele więcej.
Podobnie piny Pi GPIO wymagają ochrony przed przepięciem. Pamiętasz, jak powiedziałem, że używają DO 3,3 V? Cóż, trochę mniej nie zaszkodzi. Większość projektów używa rezystorów 1KΩ i ja zrobiłem to samo. Ponownie możesz to obliczyć samodzielnie, ale jest to bardzo popularny wybór. Ponownie, fora Raspberry Pi dostarczają pewnych informacji.
Jeśli nie rozumiesz tego do końca, poczytaj więcej. Lub po prostu postępuj zgodnie z instrukcjami. Cokolwiek działa dla Ciebie.
Wiele rezystorów jest oznaczonych na opakowaniu, ale po ich usunięciu, jak je odróżnić? Małe kolorowe paski na rezystorze mogą ci powiedzieć.
Następnie podłączymy prostą diodę LED na płytce stykowej z zasilaniem, aby rozpocząć.
Krok 3: Okablowanie LED
Pierwszym krokiem jest podłączenie diody LED na płytce stykowej. Gdy już zaczniemy działać bezpiecznie, podłączymy go do Raspberry Pi i sterujemy nim z pinu GPIO.
Mam nadzieję, że twoja płytka prototypowa została wyposażona w źródło zasilania 3,3 V. Jeśli nie, możesz wszystko podłączyć i podłączyć bezpośrednio do Pi.
Znajdź diodę LED i podłącz ją do płytki stykowej, jak pokazano, używając rezystora 330 Ω. Dłuższa noga diody LED to anoda, krótsza noga to katoda. Anoda łączy się z zasilaniem 3,3 V, podczas gdy katoda łączy się z powrotem do masy. Rezystor może znajdować się przed diodą LED; nie ważne. Standardowe kolory przewodów to:
- Czerwony = 5V
- Pomarańczowy = 3,3 V
- Czarny = ziemia
Po podłączeniu płytki stykowej i doprowadzeniu zasilania dioda LED powinna się zaświecić. Nie kontynuuj, chyba że to działa.
Krok 4: Podłączanie diody LED do GPIO
Więc teraz mamy działającą diodę LED z rezystorem. Teraz nadszedł czas, aby podłączyć tę diodę LED do Raspberry Pi. Naszym celem jest stworzenie wyjściowego GPIO i podłączenie tego GPIO do diody LED, aby po włączeniu GPIO dioda LED zaświeciła się. I odwrotnie, gdy WYŁĄCZYMY GPIO, dioda LED zgaśnie. (Będzie to później używane jako obwód, który „naciśnie” przycisk, aby otworzyć drzwi garażowe).
Odłącz zasilanie od płytki stykowej i podłącz Pi, jak pokazano. (Najlepiej to zrobić, gdy Pi jest również wyłączone.) Podłączyliśmy zasilanie 3,3 V z GPIO 17 i uziemienie do jednego z pinów uziemienia.
Teraz uruchom Pi, a dioda LED powinna być wyłączona. Wykonaj te same polecenia, które wykonaliśmy wcześniej, aby ustawić pin GPIO i wyprowadzić wartość:
sudo echo "17" > /sys/class/gpio/export
sudo echo "out" > /sys/class/gpio/gpio17/kierunek sudo cat /sys/class/gpio/gpio17/value
Wartość powinna wynosić zero.
Teraz włączmy GPIO:
sudo echo "1" > /sys/class/gpio/gpio17/value
Powinno to włączyć diodę LED. Aby wyłączyć diodę LED, wystarczy wyłączyć GPIO w następujący sposób:
sudo echo "0" > /sys/class/gpio/gpio17/value
Jedną z rzeczy, które MOGĄ się zdarzyć, jest to, że przy wystarczających zakłóceniach lub cyklach włączania/wyłączania diody LED możesz zauważyć, że dioda LED pozostaje lekko zapalona. Jest ku temu powód i porozmawiamy o tym w przyszłym kroku.
Krok 5: Używanie przekaźnika do sterowania diodą LED
Jak wspomniano w poprzednim kroku, dioda LED jest zastąpieniem „przycisku” bramy garażowej. Jednak podczas gdy GPIO może zasilać naszą diodę LED, nie może "nacisnąć" przycisku drzwi garażowych. Naciśnięcie przycisku zasadniczo łączy tylko dwa terminale przycisków, w efekcie wykonując naciśnięcie przycisku. To, czego potrzebujesz, aby wykonać tę "prasę", to przekaźnik.
Przekaźnik to nic innego jak przełącznik zasilany przez coś. W takim przypadku nasze Raspberry Pi może powiedzieć przekaźnikowi, aby „nacisnął” przycisk drzwi garażowych. W przypadku naszego prototypu Raspberry Pi powie przekaźnikowi, aby włączył diodę LED… tylko po to, abyśmy mogli przetestować nasz obwód.
Co musimy wiedzieć o naszej sztafecie:
- Przekaźnik pracuje na 5V. Jest to moc tylko do obsługi przekaźnika i nie jest używana w żadnej innej części obwodu.
- Chcemy podłączyć nasz przekaźnik jako „normalnie otwarty”. Oznacza to, że przekaźnik pozostaje rozwarty (nie łączy dwóch przewodów lub „naciska przycisk” do momentu aktywacji).
- Ten konkretny przekaźnik jest aktywowany, gdy GPIO dostarcza zero zasilania do złącza 3.3V przekaźnika. Rzeczywiście, wydaje się to zacofane. Po dostarczeniu 3,3 V przekaźnik jest zwolniony. Trzymaj się z nami przy tym projekcie, a zobaczysz, jak to działa.
- Dwa zaciski przekaźnika są całkowicie oddzielone od Raspberry Pi. Oznacza to, że możesz przełączać przewód o dowolnym prądzie znamionowym, ponieważ otrzymuje on prąd z innego źródła zasilania. Prosty, maleńki Raspberry Pi z napięciem 3,3 V i 5 V może rzeczywiście obsługiwać przekaźnik, który steruje znacznie większym napięciem. W ten sposób mały przycisk na desce rozdzielczej może obsługiwać podgrzewane siedzenia o dużym natężeniu prądu.
Więc zacznijmy.
Najpierw ponownie podłącz (ale wyłącz) zewnętrzny zasilacz do płyty prototypowej. Ta moc uruchomi obwód LED, podczas gdy Raspberry Pi steruje przekaźnikiem.
Następnie stwórz przerwę w linii 3,3V zasilającej diodę LED. (Przy przełącznikach i przekaźnikach zawsze chcemy przełączać „na gorąco”, a nie na masę.) Na schemacie są one oznaczone kolorem pomarańczowym i niebieskim.
Podłącz Raspberry Pi tak, jak pokazano, z napięciem 5 V zasilającym przekaźnik, 3,3 V działającym jako przełącznik i uziemieniem powracającym do Raspberry Pi. W tym przykładzie podłączyłem 3,3V do GPIO 17. Zalecam podłączenie rezystora 1KΩ do przewodu GPIO, jak pokazano, aby chronić GPIO przed problemami. (Wspomniano o tym w kroku Rezystory.)
Włącz płytkę stykową, a teraz włącz swoje Pi. Dioda powinna się świecić.
Teraz uruchom następujące polecenia na Pi:
sudo echo "17" > /sys/class/gpio/export
sudo echo "out" > /sys/class/gpio/gpio17/kierunek sudo cat /sys/class/gpio/gpio17/value
Wartość powinna wynosić zero.
Teraz włączmy GPIO:
sudo echo "1" > /sys/class/gpio/gpio17/value
Powinno to wyłączyć diodę LED.
Krok 6: Dodawanie rezystora podciągającego
W tym momencie wszystkie twoje rzeczy powinny działać. Ale jest jedna rzecz, o której nie rozmawialiśmy o GPIO, a jest to „pływające” napięcie, które jest możliwe w oparciu o próg, o którym wspomnieliśmy wcześniej.
Chociaż GPIO na ogół mają dwa stany logiczne (1 i zero), określa te stany na podstawie tego, czy ma napięcie powyżej lub poniżej progu napięcia, jak wspomnieliśmy w sekcji GPIO. Ale problemem w większości GPIO jest możliwość "pływającego" napięcia; w przypadku Raspberry Pi gdzieś pomiędzy zerem a 3,3V. Może to wynikać z zakłóceń lub ze wzrostu/spadku napięcia w obwodzie.
Nie chcemy sytuacji, w której nasz przekaźnik przycisku drzwi garażowych może po prostu aktywować się pod napięciem. Rzeczywiście, chcemy, aby aktywował się tylko wtedy, gdy mu to powiemy.
Sytuacje takie jak ta są rozwiązywane za pomocą rezystorów pull-up i pull-down, aby wymusić określone napięcie i uniknąć napięcia pływającego. W naszym przypadku chcemy zadbać o to, aby zapewnić napięcie, aby przekaźnik nie zadziałał. Potrzebujemy więc rezystora podciągającego, aby podnieść napięcie powyżej progu. (Progi to zabawne rzeczy…Próbowałem o nich przeczytać i sprawdzić, czy są dobrze zdefiniowane i otrzymałem wiele informacji, które były ponad moją głową, a niektóre wydawały się zbyt proste. Wystarczy powiedzieć, że z multimetrem mogłem to zobaczyć napięcie było niższe niż 3,3 V, ale ponieważ wszystko działało tak, jak go prototypowałem, po prostu ruszyłem dalej. Twój przebieg może się różnić, dlatego robimy to przed lutowaniem naszego produktu końcowego.)
Jasne, Raspberry Pi ma zarówno wewnętrzne rezystory pull-up, jak i pull-down, które można ustawić w kodzie lub podczas rozruchu. Jest jednak bardzo podatny na zakłócenia. Chociaż możliwe jest ich użycie, ponieważ już pracujemy z rezystorami w obwodzie, może być warte stabilności, aby użyć zewnętrznego.
Co ważniejsze, powoduje to podciąganie i dodaje wystarczające napięcie, aby stan pinów GPIO był domyślnie ustawiony na 1 przed zainicjowaniem Pi. Pamiętasz, jak nasz przekaźnik aktywował diodę LED, gdy po raz pierwszy zainicjowaliśmy Pi, dopóki go nie wyłączyliśmy? Zastosowanie podciągania zapobiega zadziałaniu przekaźnika przy uruchomieniu, ponieważ na wejście przekaźnika 3,3V jest podawane napięcie w tym samym czasie, co na wejście 5V. Moglibyśmy to również zrobić w konfiguracji Pi, jeśli chcemy, ale znowu, ponieważ i tak łączymy się z rezystorami, wydaje się, że jest mniej podatny na aktualizacje i dystrybucje systemu operacyjnego.
Różne konfiguracje mogą wymagać różnych rezystorów, ale rezystor 10 kΩ działał z przekaźnikiem, który miałem. Dioda LED na moim przekaźniku była bardzo słaba podczas uruchamiania, ale podciąganie zapewniało wystarczające napięcie, aby zapobiec aktywacji przekaźnika.
Dodajmy do naszego obwodu rezystor podciągający. Na schemacie płytki stykowej dodałem rezystor 10kΩ między wejściem 3,3V na przekaźniku a źródłem 3,3V.
Teraz mamy obwód odpowiedni do „wciskania” przycisku drzwi garażowych; wymiana diody LED i rezystora 330Ω na rzeczywiste przewody przycisków powinna być łatwa.
Krok 7: Czujnik kontaktronowy
Świetnie, wiemy, jak wygląda nasz obwód, aby aktywować otwieracz drzwi garażowych. Czy nie byłoby jednak miło wiedzieć, czy brama garażowa jest zamknięta, czy otwarta? Aby to zrobić, potrzebujesz przynajmniej jednego kontaktronu. Niektóre projekty zalecają dwa, ale oba będą wykorzystywać ten sam projekt obwodu.
Używamy konfiguracji kontaktronu „normalnie otwartego” (NO). Oznacza to, że nasz obwód jest otwarty, dopóki kontaktron nie znajdzie się w pobliżu magnesu, który zamknie obwód i umożliwi przepływ prądu.
Główne różnice między konfiguracją czujnika a konfiguracją przekaźnika to:
- GPIO podłączone do czujnika będzie wykrywać zasilanie, więc będzie to GPIO wejściowe (podczas gdy przekaźnik korzystał z GPIO wyjściowego, które dostarczało napięcie)
- Ponieważ stan domyślny istnieje jako normalnie otwarty, oznacza to, że nasz obwód nie będzie aktywny. W związku z tym stan GPIO powinien wynosić 0. Odwrotnie do koncepcji rezystora podciągającego w obwodzie przekaźnika, będziemy chcieli upewnić się, że nasze napięcie jest poniżej progu, gdy obwód jest otwarty. Będzie to wymagało rezystora pull-down. To w zasadzie to samo, co podciąganie, ale podłączone do uziemienia zamiast do zasilania.
Podobnie jak obwód przekaźnika, zamierzamy podłączyć elementy na płytce stykowej przed podłączeniem jej do Pi.
Wykorzystajmy naszą zasilaną płytkę stykową i podłączmy diodę LED, rezystor 330 Ω i przewód uziemiający. Następnie podłącz 3,3V z jednej strony kontaktronu i zworkę z drugiej strony kontaktronu do diody LED. (Jeśli masz kontaktron obsługujący NO i NC, użyj pozycji NO.) Odsuń magnes od kontaktronu i włącz zasilanie płytki stykowej. Dioda LED powinna pozostać wyłączona. Przesuń magnes w kierunku kontaktronu, a dioda LED powinna się zaświecić. Jeśli jest odwrotnie, masz to podłączone do NC (normalnie zamknięte)
Krok 8: Podłączanie kontaktronu do Pi
Więc teraz, gdy mamy obwód pracujący bez Pi, możemy odłączyć zasilanie od płytki stykowej i podłączyć Pi.
Znowu użyjemy GPIO17, ponieważ wiemy już, gdzie to jest.
Podobnie jak obwód przekaźnika, będziemy chronić pin GPIO rezystorem 1KΩ; jednak będziemy używać rezystora 10kΩ do uziemienia, aby stworzyć pull-down.
Kiedy już wszystko okablowamy, odsuńmy magnes od kontaktronu, uruchommy P, i i przejdźmy do wiersza poleceń i zainicjujmy GPIO, zwracając uwagę, że tym razem tworzymy wejściowe GPIO:
sudo echo "17" > /sys/class/gpio/export
sudo echo "w" > /sys/class/gpio/gpio17/kierunek sudo cat /sys/class/gpio/gpio17/value
Wartość powinna wynosić zero. Przesuń magnes na kontaktron. Dioda LED powinna się zaświecić, a wartość wynosi 1.
Voila! Podłączyliśmy nasz kontaktron do Pi!
Krok 9: Tworzenie trwałego rozwiązania na płytce prototypowej
Skoro już wiemy, jak powinny wyglądać nasze układy, czas na wlutowanie wersji permanentnej na płytkę prototypową. Ponieważ używam Pi Zero W, uzyskałem małe prototypy.
Pomyślałem, że dobrze byłoby użyć formatu Zero i móc łączyć jedną lub więcej płyt, dodatkowy moduł, który Raspberry Pi nazywa HAT (Hardware Attached on Top). Cóż, technicznie skoro nie ma żadnego typu EEPROM i nie rejestruje się, to nie jest HAT, ale muszę to jakoś nazwać. Ale format montuje się ładnie i eliminuje szczurze gniazdo okablowania, więc to miłe.
Wyzwaniem jest to, że prototypowe plansze są dość małe, więc nie można na nich zbyt wiele zmieścić. Ponadto żaden z otworów nie jest połączony rzędami, jak większe proto plansze. Chociaż może się to wydawać niewygodne, w rzeczywistości jest to ratunek.
Pomyślałem, że mógłbym stworzyć HAT dla każdej bramy garażowej, którą chciałem kontrolować. W ten sposób możesz rozszerzyć ten projekt, aby dopasować go do swoich potrzeb.
Na płycie prototypowej stwierdziłem, że jest wystarczająco dużo miejsca, aby stworzyć trzy obwody:
- obwód przekaźnika
- obwód czujnika
- drugi obwód czujnika
To całkiem dobre dla każdego projektu bramy garażowej.
Więc to, co zrobiłem, to użycie GPIO17 i 27 dla czujników oraz GPIO12 dla przekaźnika. Naprawdę fajną rzeczą w tej płycie prototypowej jest to, że można podłączyć do GPIO nawet bez dotykania nagłówka. Ale tak, będziesz musiał przylutować nagłówek do łączenia w stos oprócz rezystorów (i opcjonalnie diod LED).
Właściwie odtworzyłem obwody, które prototypowaliśmy na płycie. Widać, że moje lutowanie nie jest idealne, ale nadal działa. (Następne płytki będą lepsze odkąd mam praktykę.) Mam Aoyue 469 i tylko włos powyżej ustawienia 4 był najlepszą temperaturą w oparciu o zalecenia dotyczące lutowania nagłówka GPIO.
Użyłem zewnętrznych połączonych rzędów do uziemienia i wewnętrznego do 3,3V. I użyłem drutu rezystora, aby działał jako mostek, ponieważ nie mieliśmy połączonych rzędów. Reszta jest ukośna i boczna, ponieważ to był najlepszy sposób, w jaki mogłem je zmieścić na planszy.
Od L-R (patrząc na przód, od strony rezystora), dodałem piny wyjściowe dla przewodu GPIO czujnika, przewodu GPIO drugiego czujnika i przewodu GPIO przekaźnika. Zamiast okablowania bezpośrednio do GPIO, co mogliśmy zrobić ze złącza, te piny łączą się ze wszystkimi naszymi rezystorami i w przypadku czujników dodałem w microLED. (Zwróć uwagę, że dioda LED znajduje się w całkowicie oddzielnej pętli, więc jeśli się wypali, obwód nadal działa.)
Załączony jest plik Fritzing, ale ponieważ Instructables ma problemy z przesyłaniem plików, musiałem nadać mu fałszywe rozszerzenie „txt”, aby go osadzić.
Krok 10: Referencje
Projekt otwierania drzwi garażowych Raspberry Pi (inspiracja)
Przewodnik idioty po otwieraczu drzwi garażowych Raspberry Pi
Otwieranie drzwi garażowych na iPhone'a lub Androida
Czy powinienem używać rezystora, czy nie?
Korzystanie z rezystorów pullup i pulldown na Raspberry Pi
Konfigurowanie SSH
Schematy pinów Raspberry Pi.
Polecenia SYSFS
OkablowaniePi
Rezystory i diody LED
Zabezpieczenie (sic!) pinów GPIO
Kalkulator i wykres kodu koloru rezystora
Rezystory podciągające i ściągające
Progi napięcia GPIO
Poziomy napięcia wejściowego GPIO
Sterowanie GPIO w pliku config.txt
Rezystancja podciągania GPIO (sic!)
Dlaczego potrzebujemy zewnętrznych rezystorów ciągnących, skoro mikrokontrolery mają wewnętrzne rezystory ciągnące?
Co to jest kapelusz Raspberry Pi?
Jak wlutować złącze GPIO Raspberry Pi Zero W