Съдържание:

Автоматизирани сенки за Windows: 6 стъпки (със снимки)
Автоматизирани сенки за Windows: 6 стъпки (със снимки)

Видео: Автоматизирани сенки за Windows: 6 стъпки (със снимки)

Видео: Автоматизирани сенки за Windows: 6 стъпки (със снимки)
Видео: Ето Защо НАСА Никога не се Върна на ЛУНАТА - Moon Discoveries 2024, Юли
Anonim
Image
Image
Автоматизирани сенки за Windows
Автоматизирани сенки за Windows
Автоматизирани сенки за Windows
Автоматизирани сенки за Windows

Една дума напред

Виждал съм много уроци за това как да автоматизираме ръчните сенници и щори, и в този ще автоматизираме електрическите сенници. Ще покрием електрическите сенници, управлявани от електродвигатели с непрекъснат ток (DC), които се отварят или затварят чрез обръщане на полярността на тока.

Въпреки че, ако купувате електрически сенници, ще получите известна автоматизация, има причина да правите автоматизацията сами, като:

* може да имате само превключвател близо до тях за управление нагоре/надолу

* е по -евтино (някои компании предлагат разширена автоматизация за много допълнителни $$)

* по -гъвкави, можете да ги програмирате за отваряне или затваряне при различни обстоятелства, ще научим за създаването на уеб сървър в python, който ще се свърже с интерфейса на сенките bluetooth, и ще изложим API за управление на сенките, ние също ще интегрираме го с thingspeak и там можете да правите неща като контрол на нюансите по график или да го контролирате чрез вход на сензора

Това ще бъде междинен урок, ще ви трябват умения като запояване, програмиране на arduino, основно електронно разбиране и някои как да инсталирате услуги на сървър, да ги изпълнявате и конфигурирате.

Ако харесвате видеоклиповете в YouTube, можете да се абонирате тук.

Стъпка 1: Необходими неща

Необходими неща
Необходими неща
Необходими неща
Необходими неща

Съвет: увеличете снимките, за да видите описателните етикети върху тях

Части:

1. arduino pro mini 16Mhz 5V тип (eBay) 2 $

2. Bluetooth-модул HC-05 (eBay) 3,3 $

3. 5 V Двуканални релета (eBay) 1,6 $

4. NPN транзистор, който е оценен за поне няколко ампера, използвах Tip142T <1 $

5. 220 ома, 0.25W резистор <1 $

6. диод, 1N4004 <1 $

7. проводници за свързване на частите <1 $

8. PCB (eBay) <1 $ за брой

9. 2 x KF301-2P щепселен винтов конектор (eBay) <1 $ за брой

10. мъже-женски джъмпер проводници (eBay) 1,2 $ x 2 за куп

11. L7805CV 5V регулатор (eBay) <1 $ за брой

12. 5.5 мм DC захранващ жак гнездо мъжки и женски (eBay) <1 $ за брой

13. Термосвиваема тръба или изолационна лента

14. Захранване, захранването трябва да бъде номинално за 12V и 2-3A.

Спасих моя от зарядно устройство 12 V 2 A (eBay) 3,2 $

14. Клемен блок (eBay) 15в

15. държач за предпазител (Aliexpress) 1 $ за брой

16. предпазител (eBay) <1 $ за брой

17. мъжки и женски PCB конектори (eBay) <1 $ за това, от което се нуждаем

18. Захранващ кабел за променлив ток

19. пластмасова кутия, моята беше 6 х 19 см

Инструменти:

1. Поялник с спойка

2. Резачка за тел

3. Различни отвертки

4. Фреза

5. електрическа бормашина и 8,5 мм свредло

6. USB към сериен FTDI адаптер FT232RL за програмиране на arduino pro mini

7. Лаптоп с инсталиран ArduinoIDE за програмиране на arduino

8. Запалка, ако използвате термосвиваеми тръби

9. Смартфон, способен за Bluetooth връзка (използвам android в примера) с инсталиран софтуер за bluetooth

10. По избор: лупа, мултицет, клещи

Стъпка 2: Подготовка

Подготовки
Подготовки
Подготовки
Подготовки
Подготовки
Подготовки

Избор на захранване и пластмасова кутия

Първото нещо е да се определи колко ток и какво напрежение работят сенчестите двигатели.

Това може да стане чрез четене на спецификациите или извършване на измервания с помощта на мултицет. Обикновено те работят с 12 V и 1-3 ампера (моите са 2.5 A и 12 V). Умножете тока по колко от тях трябва да шофирате едновременно (карам двама), за да разберете максималния необходим ток. Трябва да намерите захранване с точно същото напрежение и в идеалния случай със същия ампераж или малко по -високо.

На тази стъпка аз малко изневерих, използвайки 12 V и 2.5 A захранване, за да задвижвам два 12 V и 2.5 A мотора, което означава, че двигателите използват два пъти повече мощност, отколкото може да даде захранването. Но използвайки техника, наречена PWM (проверете връзката, за да видите повече подробности), успях да управлявам двигателя едновременно с по -ниска скорост.

Причината да направя това е да спестя място в кутията (избрах по -малка кутия).

Пластмасовият корпус ще трябва да побере захранването, две релета, малка печатна платка с електрониката и проводниците, така че изберете размера, така че всичко да пасва.

Моето захранване имаше пластмасов корпус, който разкъсах с помощта на инструмент dremel, отрязах съществуващите проводници и по този начин имам евтино и малко захранване, подходящо за моя проект (вижте снимките).

Подгответе кабелите на двигателя

Трябва да изчислите колко дълго ще бъдат кабелите на двигателя, тоест докато стигнат до контролната кутия, която изграждаме. Шансовете са, че съществуващите кабели не са достатъчно дълги и ще трябва да ги удължите, да отстраните двата проводника (съществуващия кабел на ножовете и удължителните кабели) в единия край, да поставите термосвиваеми тръби, да запоите проводниците и след това да нанесете топлина с по -лек за изолация.

В края на удължителния кабел ще има мъжки 5.5 мм DC захранващ жак. Трябва да запоите двата проводника към гнездото, крайният резултат ще бъде като на снимките.

Поставяне на женския 5.5mm DC захранващ жак в кутията

С помощта на пробивната машина пробийте два отвора, достатъчно големи, за да може плъзгането на крика. Поставете щекерите на захранващия щепсел, завийте с помощта на гайките. След това запояйте дебели черни и червени проводници към всеки от входовете на жаковете, след което ги изолирайте с термосвиваема тръба. Проводниците трябва да са достатъчно дълги, за да влизат лесно в клемната лента, но не и да заемат твърде много място.

Закрепване на държача на предпазителя с предпазителя

От едната страна на кутията пробийте малък отвор, за да поставите малка гайка, която държи на място държача на предпазителя. След това, използвайки клещите, отвертката и гайката, я завийте здраво. Стойката на предпазителя трябва да е близо до мястото на захранване и да е вътре в кутията. Още веднъж проверете снимките.

Стъпка 3: Изграждане на печатни платки с електроника

Изграждане на печатни платки с електроника
Изграждане на печатни платки с електроника
Изграждане на печатни платки с електроника
Изграждане на печатни платки с електроника
Изграждане на печатни платки с електроника
Изграждане на печатни платки с електроника

Печатната платка ще побере микроконтролера, Bluetooth комуникацията, RTC модула, захранващ транзистор с диод за защита и малък резистор, конектори и 5V регулатор.

Прикачих схемата на фрициг, така че нещата ще бъдат лесни. Първата снимка представлява експортираното изображение на схемата и аз също прикачих sketch.fzz (оригиналният файл, можете да го отворите с този инструмент)

Стъпки за запояване:

1. изрежете женските съединители на печатни платки, има два 12 -пинови конектора за микроконтролера, има и 6 -пинов конектор за bluetooth и още 12 -пинов конектор от дясната страна на микроконтролера и два пинов конектора за релето отрицателно и положителна сила

2. След като всички конектори са отрязани, трябва да бъде запоено на гърба на печатната платка

3. Запояйте двата съединителя KF301-2P

4. Поставете L7805CV 5V регулатор върху печатната платка. Огънете краката му и го запойте от другата страна, след което изрежете излишните крака с ножа за кабел

5. Запоявайте транзистора NPN Tip142T и защитния диод 1N4004, изрежете излишните крака след

6. Запоявайте 220 омовия резистор между съответния цифров щифт 5 и базовия щифт на транзистора

7. Запоявайте по-дебели проводници между транзистора и щепселите KF301-2P (червени и черни, както са маркирани на снимките)

8. Запоявайте всички червени (+), черни (-) и бели (сигнални) тънки проводници според схемата на фрициг

9. Запоявайте мъжки щифтове на микроконтролера, имате нужда от два 12 мъжки щифта отстрани

10. Направете връзки между всеки от съответните женски щифтове на дясната страна на микроконтролера (обяснено е по -добре на снимките). Връзките ще бъдат направени само с спойка (щифтовете ще бъдат близки)

11. По избор: с лупата проверете спойките за къси съединения и проверете дали проводниците са правилно запоени на гърба на печатната платка, също можете да проверите с мултицет (настройка на съпротивлението) дали има късо съединение между положителното и отрицателни връзки. Друг тест е да захранвате веригата без микроконтролера, bluetooth

12. Поставете микроконтролера и HC-05 bluetooth върху печатната платка

Стъпка 4: Окабеляване и монтаж

Окабеляване и монтаж
Окабеляване и монтаж
Окабеляване и монтаж
Окабеляване и монтаж

До този момент ние сме подготвили нашата печатна платка, нашата пластмасова кутия е подготвила кабелите за сенките, а другите ни компоненти са подготвени. Всичко, което трябва да направим сега, е да окабелим системата.

1. през горния страничен отвор в кутията поставете захранващия кабел за променлив ток, отстранете кабела и го запойте върху захранването (ако захранването ви има винтове, завийте го)

2. с помощта на червена жица запоявайте изхода (+) на захранването към една от предпазителите, използвайте малко термосвиваеми тръби, за да скриете открития оголен проводник.

3. запоявайте друг червен проводник от другата страна на предпазителя, приложете свиваща се тръба, другата страна на проводника трябва да бъде поставена и завита във входа (+) на винтовия конектор KF301-2P

4. запоявайте черен проводник към изходната (-) страна на захранването и след това го завийте към входящия конектор на печатната платка KF301-2P

4. С помощта на конектори за мъжки и женски платки свържете релето положително и отрицателно към положителните и отрицателните женски конектори на печатната платка. Свържете също щифтове 8 и 9 на микроконтролера (използвайки съединителите на платката вляво от печатната платка) към щифтовете за задействане на релето

5. свържете едната страна на клемната лента към червените, съответно черни проводници, идващи от женските 5.5mm DC захранващи конектори. Ако имате повече от един 5,5 мм женски конектори, както аз, тогава всички червени проводници ще свършат в горната лява страна на клемния блок и всички черни проводници в горната дясна страна на клемния блок (вижте снимките). Когато управлявате сенниците, ако те не се движат в една и съща посока, ние ще обърнем проводниците тук (повече за това по -късно)

6. свържете положителния и отрицателния проводник, идващ от винтовия конектор KF301-2P (изход) към средата на клемите на релето. Средата на терминалите се нарича обща.

7. свържете лявата страна на лявото реле (няма значение как сте изправени в действителност) към лявата страна на дясното реле към долната лява страна на клемния блок. След това свържете дясната страна на лявото реле към дясната страна на дясното реле към долната дясна страна на клемния блок. Клемният блок ще има горната страна, свързана с женските 5.5 мм конектори (вижте стъпка 5).

Забележка: Описал съм клемния блок като горна и долна страна, всяка от които има лява и дясна страна. Няма значение как държите клемния блок, стига да си спомняте коя страна е какво. Можете да проверите снимките и особено схемата на фрициг.

Стъпка 5: Кодът на Arduino

Кодът на Ардуино
Кодът на Ардуино

Кодът трябва да бъде качен в arduino pro mini с помощта на USB към сериен FTDI адаптер FT232RL.

Ще трябва да свържете GND, VCC, Rx, Tx и DTR щифт към arduino pro mini. След това отворете инструментите/порта на софтуера arduino и какъвто и порт да използвате. След това Tools/Board/Arduino Pro или Pro Mini. След това Инструменти/Борд/Процесор/ATmega328 (5V 16Mhz).

Накрая отворете скицата по -долу и натиснете upload.

Корекции: Единственото нещо, което може да се регулира в скицата, е pwmPower. Стойността може да бъде между 0 и 255 и приблизително представлява колко от захранващата мощност ще отиде за сенчестите двигатели. Това е основно включване и изключване на захранването. Приложих го най -вече, за да ми позволи да използвам по -малко захранване без прегряване или изключване. Ако вашето захранване има по -голяма мощност, отколкото двигателите ще изразходват, можете да настроите pwmPower на 255.

И така, как работи тази програма: първо слуша серийната линия (вторичен софтуерен сериал) за входящи предавания. Когато пристигне предаване, съобщението се чете в буфер до ";" присъства или е достигнат края на буфера. След това се анализира и ако е в правилен формат (напр.: O45;) функцията toggleState се извиква с първото състояние на параметъра и след това с продължителността.

За да се постигне превключвател на полярността, и двете релета се отварят или затварят. Транзисторът се включва и изключва с помощта на ШИМ за определената продължителност. O45 ще означава отворен за 45 секунди.

След изпълнението на командата буферът се изчиства.

Стъпка 6: Използване

Употреба
Употреба
Употреба
Употреба
Употреба
Употреба

Можем да използваме контролите по повече от един начин

1. Чрез Bluetooth или Android приложение (най -простото)

В моята демонстрация избрах приложение за Android, наречено Bluetooth Controller. Това приложение ви позволява да персонализирате бутоните, които ще изпращат серийни данни. Създадох два бутона, наречени нагоре и надолу, свързах Up с кода "C40;" и надолу с "O35;".

"C40;" означава, че ще затворя (прибирам) сенките за 40 секунди, "035" означава, че ще се отворят (те се издигат нагоре) за 35 секунди. ";" е терминаторът на командите, който съм избрал в моята скица, това означава, че той сигнализира края на команда.

2. Чрез скрипт на python, който работи непрекъснато във фонов режим

Това е усъвършенстваната част от урока. Имам mande python скрипт, който ще работи на сървър като малинов pi или лаптоп с достъп до интернет. Той ще се свърже с bluetooth на контролната кутия и ще изложи http API. API може да бъде достъпен директно или чрез thingspeak.

Ще обясня стъпка по стъпка какво ще трябва да направите

а. първото нещо е да сдвоите bluetooth

ще използвате командата bluetoothctl от конзолата, вътрешен тип

включено

откриваем при агент по подразбиране-агент, който може да се запише при сканиране при двойка xx: xx: xx: xx: xx: xx (и въведете парола) доверие xx: xx: xx: xx: xx: xx (ако няма парола):

След това отворете конфигурационния файл за Bluetooth

vim /etc/bluetooth/rfcomm.conf

вътре ще трябва да конфигурирате вашето Bluetooth устройство така:

rfcomm1 {

обвързвам да; устройство your_bluetooth_mac_address нещо като 97: D3: 31: 21: A0: 51; канал 1; коментар "Връзка с моите нюанси bt"; }

bind, рестартирайте bluetooth услугите

sudo rfcomm bind allsudo /etc/init.d/bluetooth рестартиране sudo hciconfig hci0 нагоре

б. инсталиране на колба, колба основно удостоверяване:

sudo -H pip install Flask Flask -BasicAuth

° С. създайте файлов server.py със следния код и стартирайте сървъра:

# употреба: python httpToBluetooth парола за потребителско име bluetooth_address

# Забележка: потребителско име, парола се използват

импортиране на os, bluetooth, sys, threading

от колба за импортиране Колба от flask_basicauth импортиране BasicAuth от опашка за импортиране Опашка app = Flask (_ name_) configuration = sys.argv app.config ['BASIC_AUTH_USERNAME'] = configuration [1] app.config ['BASIC_AUTH_PASSWORD'] = конфигурация [2] que = Queue () basic_auth = BasicAuth (приложение) клас BluetoothBackground (threading. Thread): def _init _ (self, bluetooth_address, queue): threading. Thread._ init _ (self) self._ blue_address = bluetooth_address self._ queue = queue = queue = queue = queue = queue = queue = queue = queue = queue = queue False def run (self): self._ bluetooth = self.get_bluetooth (), но не self.shutdown: message = self._ queue.get () self._ bluetooth.send (message) self._ bluetooth.close () def get_bluetooth (self): връзка = bluetooth. BluetoothSocket (bluetooth. RFCOMM) connection.settimeout (Няма) опитайте: connection.connect ((self._ bluetooth_address, 1)) с изключение на изключение, д: отпечатайте „Error connection to bluetooth“+ str (e) connection.setblocking (False) връщане клас на връзката 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 (команда): queue.put (команда) връщане на 'добре' нишки = threads.append (BluetoothBackground (конфигурация [3], опашка)) threads.append (Webserver ()) [thread.start () за нишка в нишки]

за да стартирате сървъра изпълнете:

python server.py потребителска парола 97: D2: 31: 20: A0: 51

Добре, значи server.py е нашият скрипт, потребителят и паролата са идентификационните данни, използвани за вашето удостоверяване, а „97: D2: 31: 20: A0: 51“е вашият Bluetooth MAC адрес.

д. използвайте вашия сървър, за да изпращате команди от всяка точка на света

от типа на браузъра: https:// your_ip: 5000/send_to_serial/C30;

- въведете потребителя и паролата, които сте задали по -рано при стартиране на сървъра на python

- "C30;" е командата, която ще бъде препратена към Bluetooth устройството (нашата кутия, която ще контролира нюансите)

- проверете дали порт 5000 не е блокиран от вашата защитна стена (използваме този порт)

- ако сте зад рутер (например малиново пи), трябва да направите пренасочване на порт от рутера от порт 5000 до порт 5000

д. можете да използвате thingspeak, за да правите неща като контролиране на нюансите по график по време или при промяна на някои данни от сензора на канала. Например, можете да свържете сензор за светлина (отвън), за да мислите върхово и когато нивото на светлината падне до известно количество (вечерта), можете да затворите сенниците, така че хората отвън да не ви виждат.

Можете да свържете нюансите (сървър на python, който сме настроили по -рано) с thingspeak, използвайки ThingHTTP.

Включих снимка на формуляр ThingHTTP с попълнените данни като пример и картина с TimeControl Така че за максимална гъвкавост thingspeak трябва да прави всичко, от което се нуждаете.

3. Чрез моето приложение за домашна автоматизация

Това е малко по-сложно, моето приложение за домашна автоматизация прави много повече от контролиране на нюансите.

Той също така контролира светлините, вратата, има множество сензори, интегрира се с превключватели и има сложни правила, определени от потребителя, които могат например да отворят сенниците, ако нивото на светлината вътре е ниско или ако е сутрин.

Можете да проверите моето хранилище на github и ако имате въпроси, ще се радвам да отговоря на тях.

Ако сте намерили моя урок донякъде полезен, моля, споделете го или го добавете към любими. И аз искам да видя някои интересни коментари:)

Препоръчано: