Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:03
Słowo do przodu
Widziałem wiele samouczków o tym, jak zautomatyzować ręczne rolety i rolety, no cóż, w tym zautomatyzujemy rolety elektryczne. Omówimy rolety elektryczne zasilane przez silniki elektryczne na prąd stały (DC), które otwierają się lub zamykają, odwracając polaryzację prądu.
Chociaż kupując rolety elektryczne dostaniesz trochę automatyki, istnieją powody, aby wykonać automatykę samodzielnie, np.:
* możesz mieć tylko przełącznik obok nich do sterowania góra/dół
* jest taniej (niektóre firmy oferują zaawansowaną automatyzację za dużo dodatkowych $$)
* bardziej elastyczne, można je zaprogramować tak, aby otwierały się lub zamykały w różnych okolicznościach, dowiemy się o tworzeniu serwera WWW w pythonie, który będzie łączył się z interfejsem bluetooth odcieni i udostępnia API do sterowania odcieniami, będziemy również integrować to z rzeczami i tam możesz robić takie rzeczy, jak sterowanie roletami według harmonogramu lub sterowanie za pomocą wejścia czujnika
Będzie to samouczek średniozaawansowany, będziesz potrzebować umiejętności takich jak lutowanie, programowanie arduino, podstawowa znajomość elektroniki i trochę jak instalować usługi na serwerze, uruchamiać je i konfigurować.
Jeśli podobały Ci się filmy z YouTube, możesz zasubskrybować tutaj.
Krok 1: Rzeczy wymagane
Wskazówka: powiększ zdjęcia, aby wyświetlić na nich opisowe etykiety
Części:
1. arduino pro mini 16Mhz 5V typu (eBay) 2$
2. Moduł bluetooth HC-05 (eBay) 3,3 $
3. Przekaźniki dwukanałowe 5 V (eBay) 1,6 $
4. Tranzystor NPN, który jest oceniany na co najmniej kilka amperów, użyłem Tip142T <1 $
5. 220 omów, rezystor 0,25 W <1 $
6. dioda, 1N4004 <1 $
7. przewody do podłączenia części <1 $
8. PCB (eBay) <1 $ za sztukę
9. 2 x KF301-2P wtykowe złącze śrubowe (eBay) <1 $ za sztukę
10. Przewody połączeniowe męsko-żeńskie (eBay) 1,2$ x 2 za pęczek
11. Regulator L7805CV 5 V (eBay) <1 $ za sztukę
12. Gniazdo jack męskie i żeńskie 5,5 mm DC (eBay) <1 $ za sztukę!
13. Rurki termokurczliwe lub taśma izolacyjna
14. Zasilanie, zasilanie musi mieć napięcie 12V i 2-3A.
Uratowałem moją z ładowarki 12 V 2 A (eBay) 3,2 $
14. Listwa zaciskowa (eBay) 15c
15. uchwyt bezpiecznika (Aliexpress) 1 $ za sztukę!
16. bezpiecznik (eBay) <1 $ za sztukę
17. męskie i żeńskie złącza pcb (eBay) <1 $ za to, czego potrzebujemy
18. Kabel zasilający AC
19. obudowa z plastikowego pudełka, moja miała 6 x 19 cm
Narzędzia:
1. Lutownica z lutownicą
2. Przecinak do drutu
3. Różne śrubokręty
4. Przecinak
5. wiertarka elektryczna i wiertło 8,5 mm
6. Adapter USB na szeregowy FTDI FT232RL do programowania arduino pro mini
7. Laptop z zainstalowanym ArduinoIDE do programowania arduino
8. Zapalniczka, jeśli używasz rurek termokurczliwych
9. Smartfon obsługujący połączenie bluetooth (w przykładzie używam androida) z zainstalowanym oprogramowaniem bluetooth
10. Opcjonalnie: szkło powiększające, multimetr, szczypce
Krok 2: Przygotowania
Wybór zasilacza i plastikowego pudełka
Pierwszą rzeczą jest ustalenie, ile prądu i jakie napięcie mają silniki żaluzji.
Można to zrobić czytając specyfikacje lub wykonując pomiary za pomocą multimetru. Zwykle działają 12 V i 1-3 A (moje to 2,5 A i 12 V). Pomnóż prąd przez ile z nich potrzebujesz jeździć jednocześnie (jeżdżę dwoma), aby znaleźć maksymalny potrzebny prąd. Powinieneś znaleźć zasilacz o dokładnie takim samym napięciu i najlepiej takim samym natężeniu lub nieco wyższym.
Na tym etapie trochę oszukałem, używając zasilacza 12 V i 2,5 A do napędzania dwóch silników 12 V i 2,5 A, co oznacza, że silniki zużywają dwa razy więcej mocy niż może dać zasilacz. Ale używając techniki zwanej PWM (sprawdź link, aby zobaczyć więcej szczegółów), udało mi się jednocześnie napędzać silnik z niższą prędkością.
Powodem, dla którego to zrobiłem, jest zaoszczędzenie miejsca w pudełku (wybrałem mniejsze pudełko).
Plastikowa obudowa będzie musiała pomieścić zasilacz, dwa przekaźniki, małą płytkę drukowaną z elektroniką i przewodami, więc dobierz rozmiar tak, aby wszystko się zmieściło.
Mój zasilacz miał plastikową obudowę, którą rozerwałem dremelem, przeciąłem istniejące przewody iw ten sposób otrzymałem tani i mały zasilacz pasujący do mojego projektu (patrz zdjęcia).
Przygotuj kable silnika
Musisz obliczyć, jak długie będą kable silnika, czyli do momentu, gdy dotrą do skrzynki kontrolnej, którą budujemy. Możliwe, że istniejące kable nie są wystarczająco długie i będziesz musiał je przedłużyć, zdjąć oba przewody (istniejący kabel ostrzowy i przedłużacze) na jednym końcu, założyć rurki termokurczliwe, przylutować przewody, a następnie podgrzać za pomocą lżejsze do zaizolowania.
Na końcu przedłużacza znajduje się męskie gniazdo wtykowe typu jack o średnicy 5,5 mm. Trzeba przylutować dwa przewody do gniazda, efekt końcowy będzie taki jak na zdjęciach.
Wkładanie żeńskiej wtyczki 5,5 mm DC Power Plug do pudełka
Za pomocą wiertarki wywierć dwa otwory wystarczająco duże, aby podnośnik mógł się przez nie przesunąć. Włóż gniazda wtykowe, przykręć za pomocą nakrętek. Następnie przylutuj grube czarne i czerwone przewody do każdego z wejść jack, a następnie zaizoluj je rurką termokurczliwą. Przewody powinny być wystarczająco długie, aby łatwo wchodzić do listwy zaciskowej, ale nie za długie, aby zajmowały zbyt dużo miejsca.
Mocowanie uchwytu bezpiecznika za pomocą bezpiecznika
Z jednej strony skrzynki wywierć mały otwór, aby umieścić małą nakrętkę, która przytrzymuje oprawkę bezpiecznika. Następnie za pomocą szczypiec, śrubokręta i nakrętki dokręć ją mocno na miejscu. Uchwyt bezpiecznika powinien znajdować się w pobliżu miejsca zasilania i powinien znajdować się wewnątrz skrzynki. Jeszcze raz sprawdź zdjęcia.
Krok 3: Budowanie PCB z elektroniką
Płytka pomieści mikrokontroler, komunikację bluetooth, moduł RTC, tranzystor mocy z diodą zabezpieczającą i małym rezystorem, przewody połączeniowe oraz regulator 5V.
Dołączyłem schemat fritziga, więc wszystko będzie łatwe. Pierwsze zdjęcie przedstawia wyeksportowany obraz schematu, dołączyłem również plik sketch.fzz (oryginalny plik, który można otworzyć za pomocą tego narzędzia)
Kroki lutowania:
1. przeciąć żeńskie złącza PCB, są dwa 12-pinowe złącza dla mikrokontrolera, jest też 6-pinowe złącze dla bluetooth i kolejne 12-pinowe złącza po prawej stronie mikrokontrolera i dwupinowe złącze dla ujemnego przekaźnika i pozytywna moc
2. Po odcięciu wszystkich złączy należy je przylutować z tyłu płytki drukowanej
3. Przylutuj dwa złącza wtykowe KF301-2P
4. Umieść regulator L7805CV 5V na płytce drukowanej. Zagnij nóżki i przylutuj z drugiej strony, a następnie odetnij nadmiar nóżek za pomocą przecinaka do kabli
5. Przylutuj tranzystor NPN Tip142T i diodę zabezpieczającą 1N4004, odetnij nadmiar nóżek po
6. Przylutuj rezystor 220 omów między odpowiednim pinem cyfrowym 5 a pinem podstawy tranzystora
7. Przylutuj grubsze przewody między tranzystorem a wtykami KF301-2P (czerwony i czarny jak zaznaczono na zdjęciach)
8. Przylutuj wszystkie cienkie przewody czerwony (+), czarny (-) i biały (sygnał) zgodnie ze schematem Fritziga
9. Przylutuj męskie piny na mikrokontrolerze, potrzebujesz dwóch 12 męskich pinów po bokach
10. Wykonać połączenia pomiędzy każdym z odpowiednich styków żeńskich mikrokontrolera z prawej strony (jest to lepiej wyjaśnione na zdjęciach). Połączenia zostaną wykonane za pomocą samego lutu (piny będą zwarte)
11. Opcjonalnie: za pomocą lupy sprawdź luty pod kątem zwarć i sprawdź, czy przewody są prawidłowo przylutowane z tyłu PCB, możesz również sprawdzić multimetrem (ustawienie rezystancji) czy nie ma zwarcia między plusem a ujemne połączenia. Kolejnym testem jest zasilanie układu bez mikrokontrolera, bluetooth
12. Umieść mikrokontroler i bluetooth HC-05 na płytce drukowanej
Krok 4: Okablowanie i montaż
Do tej pory mamy już gotową płytkę drukowaną, nasze plastikowe pudełko, okablowanie kabli żaluzji i przygotowane inne komponenty. Wszystko, co musimy teraz zrobić, to podłączyć system.
1. przez górny boczny otwór w puszce włóż kabel zasilający AC, zdejmij go i przylutuj do zasilacza (jeśli twój zasilacz ma śruby to przykręć)
2. za pomocą czerwonego drutu przylutuj wyjście (+) zasilacza do jednego z bezpieczników, użyj kawałka rurki termokurczliwej, aby ukryć odsłonięty drut.
3. przylutować drugi czerwony przewód z drugiej strony bezpiecznika nałożyć rurkę termokurczliwą, drugą stronę przewodu włożyć i wkręcić w wejście (+) złącza śrubowego KF301-2P
4. przylutuj czarny przewód do wyjścia (-) zasilacza a następnie przykręć go do wejścia PCB złącza śrubowego KF301-2P
4. Za pomocą męsko-żeńskich złączy płytki stykowej podłącz dodatni i ujemny przekaźnika do dodatnich i ujemnych złączy żeńskich płytki drukowanej. Podłącz również piny 8 i 9 mikrokontrolera (za pomocą złączy macierzystych PCB po lewej stronie PCB) do pinów wyzwalających przekaźnik
5. podłącz jedną stronę listwy zaciskowej do czerwonych lub czarnych przewodów wychodzących z żeńskich złączy wtykowych 5,5 mm DC Power Plug. W przypadku, gdy masz więcej niż jedno złącze żeńskie 5,5 mm, tak jak ja, wszystkie czerwone przewody wylądują w lewym górnym rogu listwy zaciskowej, a wszystkie czarne przewody w prawym górnym rogu listwy zaciskowej (patrz zdjęcia). Kiedy będziesz obsługiwać rolety, jeśli nie poruszają się w tym samym kierunku, odwrócimy przewody tutaj (więcej o tym później)
6. podłączyć przewody dodatnie i ujemne wychodzące ze złącza śrubowego KF301-2P (wyjście) do środka zacisków przekaźnika. Środek zacisków nazywa się wspólnym.
7. podłącz lewą stronę lewego przekaźnika (nieważne jak zwrócisz się ku rzeczywistości) z lewą stroną prawego przekaźnika z dolną lewą stroną listwy zaciskowej. Następnie podłącz prawą stronę lewego przekaźnika z prawą stroną prawego przekaźnika do dolnej prawej strony listwy zaciskowej. Listwa zaciskowa będzie miała górną stronę podłączoną do żeńskich złączy 5,5 mm (patrz krok 5).
Uwaga: Opisałem blok zacisków jako posiadający górną i dolną stronę, z których każda ma lewą i prawą stronę. Nie ma znaczenia, jak trzymasz blok zacisków, o ile pamiętasz, która strona jest jaka. Możesz sprawdzić zdjęcia, a zwłaszcza schemat fritziga.
Krok 5: Kod Arduino
Kod należy wgrać do arduino pro mini za pomocą przejściówki USB na szeregowy FTDI FT232RL.
Będziesz musiał podłączyć pin GND, VCC, Rx, Tx i DTR do arduino pro mini. Następnie otwórz oprogramowanie arduino wybierz narzędzia/port i dowolny port, którego używasz. Następnie Tools/Board/Arduino Pro lub Pro Mini. Następnie narzędzia/płyta/procesor/ATmega328 (5 V 16 Mhz).
Na koniec otwórz szkic poniżej i naciśnij upload.
Korekty: Jedyną rzeczą, którą można dostosować w szkicu, jest pwmPower. Wartość może wynosić od 0 do 255 i w przybliżeniu reprezentuje, jaka część mocy zasilającej trafi do silników zasłon. To w zasadzie szybkie włączanie i wyłączanie zasilania. Zaimplementowałem go głównie po to, aby umożliwić korzystanie z mniejszego zasilacza bez przegrzewania lub wyłączania. Jeśli twój zasilacz ma większą moc niż pobierają silniki, możesz ustawić pwmPower na 255.
Jak więc działa ten program: najpierw nasłuchuje łącza szeregowego (wtórnego oprogramowania szeregowego) dla przychodzących transmisji. Po nadejściu transmisji wiadomość jest odczytywana w buforze do momentu pojawienia się „;” jest obecny lub osiągnięty został koniec bufora. Następnie jest analizowany i jeśli jest w poprawnym formacie (np.: O45;) wywoływana jest funkcja toggleState z pierwszym stanem parametru, a następnie czasem trwania.
Aby uzyskać przełącznik polaryzacji, oba przekaźniki są albo otwarte, albo zamknięte. Tranzystor jest włączany i wyłączany za pomocą PWM na określony czas. O45 będzie oznaczać otwarte przez 45 sekund.
Po wykonaniu polecenia bufor jest czyszczony.
Krok 6: Użycie
Z kontroli możemy korzystać na więcej niż jeden sposób
1. Za pomocą aplikacji bluetooth na Androida lub iPhone'a (najprostsza)
W moim demo wybrałem aplikację na Androida o nazwie Bluetooth Controller. Ta aplikacja pozwala dostosować przyciski, które będą wysyłać dane szeregowe. Stworzyłem dwa przyciski o nazwie Up i Down, skojarzyłem Up z kodem "C40;" a dół z "O35;".
"C40;" oznacza, że zamknę (chowam) rolety na 40 sekund, „035” oznacza, że otworzę (podnoszą się) na 35 sekund. ";" jest terminatorem polecenia, który wybrałem w moim szkicu, co oznacza, że sygnalizuje koniec polecenia.
2. Za pomocą skryptu Pythona, który działa nieprzerwanie w tle
To jest zaawansowana część samouczka. Mam mande skrypt Pythona, który będzie działał na serwerze jak raspberry pi lub laptop z dostępem do Internetu. Połączy się z bluetooth w skrzynce kontrolnej i ujawni API http. Dostęp do API można uzyskać bezpośrednio lub za pośrednictwem rzeczypeak.
Wyjaśnię krok po kroku, co musisz zrobić
a. pierwszą rzeczą jest sparowanie bluetooth
będziesz używać polecenia bluetoothctl z konsoli, wpisz wewnątrz
zasilanie włączone
wykrywalny na agencie na agencie domyślnym możliwy do parowania podczas skanowania na parze xx:xx:xx:xx:xx:xx (i wprowadź hasło) zaufanie xx:xx:xx:xx:xx:xx (jeśli brak hasła):
następnie otwórz plik konfiguracyjny bluetooth
vim /etc/bluetooth/rfcomm.conf
wewnątrz musisz skonfigurować swoje urządzenie Bluetooth w następujący sposób:
rfcomm1 {
wiązać tak; urządzenie your_bluetooth_mac_address coś w stylu 97:D3:31:21:A0:51; kanał 1; komentarz "Połączenie z moimi zasłonami bt"; }
powiąż, uruchom ponownie usługi bluetooth
sudo rfcomm bind allsudo /etc/init.d/bluetooth restart sudo hciconfig hci0 up
b. install flask, flask basic auth:
sudo -H pip install Flask Flask-BasicAuth
C. utwórz plik server.py z następującym kodem i uruchom serwer:
# użycie: python httpToBluetooth nazwa użytkownika hasło adres_Bluetooth
# Uwaga: używana jest nazwa użytkownika, hasło
importuj system operacyjny, bluetooth, sys, wątki
from flask import Flask from flask_basicauth import BasicAuth z kolejki import Queue app = Flask(_name_) configuration = sys.argv app.config['BASIC_AUTH_USERNAME'] = configuration[1] app.config['BASIC_AUTH_PASSWORD'] = configuration[2] = Queue() basic_auth = BasicAuth(app) class BluetoothBackground(threading. Thread): def _init_(self, bluetooth_address, queue): threading. Thread._init_(self) self._bluetooth_address = bluetooth_address self._queue = kolejka self.shutdown = False def run (self): self._bluetooth = self.get_bluetooth() podczas gdy nie self.shutdown: wiadomość = self._queue.get() self._bluetooth.send(wiadomość) self._bluetooth.close() def get_bluetooth(self): connection = bluetooth. BluetoothSocket(bluetooth. RFCOMM) connection.settimeout(Brak) try: connection.connect((self._bluetooth_address, 1)) z wyjątkiem wyjątku, e: print 'Błąd połączenia z bluetooth' + str(e) connection.setblocking(False) zwraca klasę połączenia Webserver(threading. Thread): def run(self): port = in t(os.environ.get('PORT', 5000)) app.run(host='0.0.0.0', port=port, debug=True, use_reloader=False) @app.route("/send_to_serial/") @basic_auth.required def send_to_serial(command): queue.put(polecenie) return 'ok' threads = threads.append(BluetoothBackground(configuration[3], queue)) threads.append(Webserver()) [thread.start () dla wątku w wątkach]
aby uruchomić serwer wykonaj:
hasło użytkownika python server.py 97:D2:31:20:A0:51
Ok, więc server.py to nasz skrypt, użytkownik i hasło to dane uwierzytelniające używane do uwierzytelniania, a „97:D2:31:20:A0:51” to adres MAC Bluetooth.
D. używaj swojego serwera do wysyłania poleceń z dowolnego miejsca na świecie
z przeglądarki wpisz:
- wprowadź użytkownika i hasło, które ustawiłeś wcześniej podczas uruchamiania serwera python
- "C30;" to polecenie, które zostanie przekazane do urządzenia bluetooth (nasza skrzynka, która będzie sterować zasłonami)
- sprawdź, czy port 5000 nie jest blokowany przez twoją zaporę (używamy tego portu)
- jeśli jesteś za routerem (np. raspberry pi) musisz zrobić przekierowanie portów z routera z portu 5000 na port 5000
mi. możesz użyć rzeczypeak, aby robić takie rzeczy, jak kontrolowanie rolet w harmonogramie lub gdy zmienią się niektóre dane czujnika kanału. Na przykład możesz podłączyć czujnik światła (na zewnątrz), aby mówić, a gdy poziom światła spadnie do pewnej wartości (jest wieczór), możesz zamknąć rolety, aby ludzie na zewnątrz cię nie widzieli.
Możesz połączyć shadery (serwer Pythona, który skonfigurowaliśmy wcześniej) z Thingspeak za pomocą ThingHTTP.
Dołączyłem obraz formularza ThingHTTP z danymi wypełnionymi jako przykład i obraz z TimeControl Więc dla maksymalnej elastyczności Thingspeak powinien robić wszystko, czego potrzebujesz.
3. Przez moją aplikację do automatyzacji domu
To trochę bardziej skomplikowane, moja aplikacja do automatyki domowej robi dużo więcej niż kontrolowanie odcieni.
Steruje również oświetleniem, drzwiami, ma wiele czujników, integruje się z przełącznikami i ma złożone reguły zdefiniowane przez użytkownika, które mogą na przykład otworzyć rolety, jeśli poziom światła w środku jest niski lub jeśli jest rano.
Możesz sprawdzić moje repozytorium github, a jeśli masz pytania, chętnie na nie odpowiem.
Jeśli uważasz, że mój samouczek jest nieco przydatny, udostępnij go lub dodaj do ulubionych. Chcę też zobaczyć kilka ciekawych komentarzy:)
Zalecana:
Odcienie pikseli LED RGB: 17 kroków (ze zdjęciami)
Odcienie pikseli LED RGB: Cześć wszystkim, w tej instrukcji pokażę, jak zrobić parę odcieni pikseli LED. Pierwotnie stworzyłem je do noszenia w domu na Boże Narodzenie/Nowy Rok, jako rodzaj mobilnej ozdoby, ale ostatecznie okazały się nieco bardziej cyberpunkowe
Zautomatyzowane ramię robota do lutowania: 7 kroków (ze zdjęciami)
Zautomatyzowane ramię robota do lutowania: Ta instrukcja pokazuje, jak lutować części elektroniczne na płytce drukowanej za pomocą ramienia robota Pomysł na ten projekt przyszedł mi do głowy przypadkowo, gdy szukałem różnych możliwości ramion robotów, a potem odkryłem, że jest kilku, którzy obejmuje
Zautomatyzowane LEGO BB-8!: 25 kroków (ze zdjęciami)
Zautomatyzowane LEGO BB-8!: absolutnie UWIELBIAMY nowe zestawy LEGO Star Wars, które pojawiły się w ciągu ostatnich kilku lat. Są dobrze zaprojektowane, fajne w budowie i świetnie wyglądają. Tym, co sprawiłoby im jeszcze większą frajdę, byłoby, gdyby również poruszały się samodzielnie!Zdjęliśmy z półki LEGO
Odcienie Arduino (angielski): 7 kroków (ze zdjęciami)
Arduino Shades (angielski): Jest to instrukcja tworzenia urządzenia, które sprawi, że każda roleta będzie automatyczna i „inteligentna”. Wszystko, czego potrzebujesz: Parametryczny plik CAD z uzębieniem łańcucha kulkowego 3D firmy John AbellaAdafruit osłona silnika Arduino Uno Fotorezystancja silnika krokowego J
Odcienie Arduino: 8 kroków (ze zdjęciami)
Arduino Shades: Aby uzyskać wersję angielską, kliknij tutajDit een instructable voor het maken van een apparaatje dat elk rolgordijn automatisch en smart kan maken. Het enige wat je nodig hebt to: Parametryczne koło zębate łańcucha kulowego 3D Plik CAD van John Abella Adafruit osłona silnika