Turinys:

Automatiniai „Windows“atspalviai: 6 žingsniai (su nuotraukomis)
Automatiniai „Windows“atspalviai: 6 žingsniai (su nuotraukomis)

Video: Automatiniai „Windows“atspalviai: 6 žingsniai (su nuotraukomis)

Video: Automatiniai „Windows“atspalviai: 6 žingsniai (su nuotraukomis)
Video: Удивительная планировка пола - место для велосипедов - дизельный отопитель 2024, Liepa
Anonim
Image
Image
Automatiniai „Windows“atspalviai
Automatiniai „Windows“atspalviai
Automatiniai „Windows“atspalviai
Automatiniai „Windows“atspalviai

Žodis į priekį

Mačiau daug pamokų, kaip automatizuoti rankinius atspalvius ir žaliuzes, o šiame mes automatizuosime elektrinius atspalvius. Mes apimsime elektros atspalvius, kuriuos valdo nuolatinės srovės (DC) elektros varikliai, kurie atsidaro arba užsidaro, pakeisdami srovės poliškumą.

Nors jei perkate elektrinius atspalvius, jūs gausite automatizavimą, yra priežastis, kodėl turite atlikti automatizavimą patys:

* šalia jų gali būti tik jungiklis, skirtas valdyti aukštyn/žemyn

* tai pigiau (kai kurios įmonės siūlo pažangią automatizavimą už daug papildomų USD $)

* lankstesni, galite užprogramuoti, kad jie būtų atidaryti ar uždaryti įvairiomis aplinkybėmis, mes sužinosime, kaip sukurti žiniatinklio serverį „python“, kuris prisijungs prie atspalvių „Bluetooth“sąsajos, ir parodysime API, kuri valdys atspalvius, taip pat integruosime su daiktų kalbėjimu ir ten galite atlikti tokius veiksmus kaip atspalvių valdymas pagal tvarkaraštį arba valdymas per jutiklio įvestį

Tai bus tarpinė pamoka, jums reikės tokių įgūdžių kaip litavimas, „arduino“programavimas, pagrindinis elektroninis supratimas ir tam, kaip įdiegti paslaugas serveryje, jas paleisti ir konfigūruoti.

Jei jums patiko „YouTube“vaizdo įrašai, galite užsiprenumeruoti čia.

1 žingsnis: reikalingi dalykai

Reikalingi dalykai
Reikalingi dalykai
Reikalingi dalykai
Reikalingi dalykai

Patarimas: padidinkite paveikslėlius, kad pamatytumėte jų aprašomąsias etiketes

Dalys:

1. arduino pro mini 16Mhz 5V tipo (eBay) 2 $

2. „Bluetooth“modulis „HC-05“(„eBay“) 3,3 USD

3. 5 V Dviejų kanalų relės („eBay“) 1,6 $

4. NPN tranzistorius, skirtas bent keliems stiprintuvams, naudoju „Tip142T“<1 $

5. 220 omų, 0,25 W rezistorius <1 $

6. diodas, 1N4004 <1 $

7. laidai dalims prijungti <1 $

8. PCB („eBay“) <1 $ už gabalą

9. 2 x KF301-2P kištukinis varžtas (eBay) <1 $ už gabalą

10. vyriškos ir moteriškos jungties laidai („eBay“) 1,2 USD x 2 už krūvą

11. L7805CV 5V reguliatorius („eBay“) <1 $ už vnt

12. 5,5 mm nuolatinės srovės kištukinio lizdo patinas ir patelė („eBay“) <1 $ už gabalą

13. Termiškai susitraukiantis vamzdelis arba izoliacinė juosta

14. Maitinimas, maitinimas turi būti 12V ir 2-3A.

Aš išgelbėjau savo iš 12 V 2 A įkroviklio („eBay“) 3,2 USD

14. Gnybtų juostos blokas („eBay“) 15c

15. saugiklių laikiklis („Aliexpress“) 1 USD už gabalą

16. saugiklis („eBay“) <1 $ už gabalą

17. vyrų ir moterų PCB jungtys („eBay“) <1 $ už tai, ko mums reikia

18. Kintamosios srovės maitinimo kabelis

19. plastikinės dėžutės gaubtas, mano buvo 6 x 19 cm

Įrankiai:

1. Lituoklis su lituokliu

2. Vielos pjaustytuvas

3. Įvairūs atsuktuvai

4. Pjaustytuvas

5. elektrinis gręžtuvas ir 8,5 mm grąžtas

6. USB į nuoseklųjį FTDI adapterį FT232RL programuoti arduino pro mini

7. Nešiojamasis kompiuteris su „ArduinoIDE“įdiegtas programuoti arduino

8. Lengvesnis, jei naudojate termiškai susitraukiantį vamzdelį

9. Išmanusis telefonas, galintis prijungti „Bluetooth“(pavyzdyje naudoju „Android“) su įdiegta „Bluetooth“programine įranga

10. Pasirinktinai: didinamasis stiklas, multimetras, replės

2 žingsnis: Paruošimas

Pasirengimas
Pasirengimas
Pasirengimas
Pasirengimas
Pasirengimas
Pasirengimas

Maitinimo šaltinio ir plastikinės dėžutės pasirinkimas

Pirmas dalykas yra nustatyti, kiek srovės ir kokios įtampos veikia atspalvių varikliai.

Tai galima padaryti skaitant specifikacijas arba atliekant matavimus naudojant multimetrą. Paprastai jie veikia 12 V ir 1-3 amperų (mano yra 2,5 A ir 12 V). Padauginkite srovę iš to, kiek iš jų turite važiuoti vienu metu (aš vairuoju du), kad sužinotumėte maksimalią reikalingą srovę. Turėtumėte rasti maitinimo šaltinį, kurio įtampa yra tokia pati, o idealiu atveju - tos pačios srovės stipris arba šiek tiek didesnis.

Šiame žingsnyje aš šiek tiek sukčiavau, naudodamas 12 V ir 2,5 A maitinimo šaltinį, kad galėčiau valdyti du 12 V ir 2,5 A variklius, o tai reiškia, kad varikliai sunaudoja dvigubai daugiau energijos, nei gali duoti maitinimo šaltinis. Tačiau naudojant techniką, vadinamą PWM (norėdami sužinoti daugiau informacijos, patikrinkite nuorodą), man pavyko vienu metu varyti variklį mažesniu greičiu.

Priežastis, kodėl tai padariau, yra sutaupyti vietos dėžutėje (pasirinkau mažesnę dėžutę).

Plastikiniame korpuse reikės maitinimo šaltinio, dviejų relių, mažos plokštės su elektronika ir laidais, todėl pasirinkite dydį, kad viskas tilptų.

Mano maitinimo šaltinis turėjo plastikinį korpusą, kurį suplėšiau naudodamas „dremel“įrankį, nutraukiau esamus laidus ir tokiu būdu turiu pigų ir mažą maitinimo šaltinį, tinkantį mano projektui (žr. Paveikslėlius).

Paruoškite variklio kabelius

Turite apskaičiuoti, kiek laiko truks variklio kabeliai, tai yra, kol jie pasieks valdymo skydelį, kurį mes skleidžiame. Yra tikimybė, kad esami kabeliai nėra pakankamai ilgi, todėl turėsite juos prailginti, nuimti abu laidus (esamą ašmenų kabelį ir ilginimo kabelius) iš vieno galo, uždėti termiškai susitraukiančius vamzdžius, lituoti laidus, tada kaitinti lengviau izoliuoti.

Prailginimo kabelio gale bus 5,5 mm nuolatinės srovės kištukinis lizdas. Turite lituoti du laidus prie lizdo, galutinis rezultatas bus toks, kaip nuotraukose.

5,5 mm nuolatinės srovės kištukinio lizdo įdėjimas į dėžutę

Naudodami gręžimo mašiną, išgręžkite dvi pakankamai dideles skylutes, kad kėliklis galėtų slysti. Įkiškite maitinimo kištukinius lizdus, prisukite veržlėmis. Tada lituokite storus juodus ir raudonus laidus prie kiekvieno lizdo, tada izoliuokite juos termiškai susitraukiančiu vamzdžiu. Laidai turi būti pakankamai ilgi, kad lengvai patektų į gnybtų juostos bloką, bet ne per ilgi, kad užimtų per daug vietos.

Saugiklių laikiklio pritvirtinimas prie saugiklio

Vienoje dėžutės pusėje išgręžkite mažą skylę, kad uždėtumėte mažą veržlę, laikančią saugiklių laikiklį. Tada, naudodamiesi replėmis, atsuktuvu ir veržle, tvirtai įsukite į vietą. Saugiklių laikiklis turi būti šalia maitinimo šaltinio ir dėžutės viduje. Dar kartą patikrinkite nuotraukas.

3 žingsnis: PCB kūrimas naudojant elektroniką

PCB kūrimas naudojant elektroniką
PCB kūrimas naudojant elektroniką
PCB kūrimas naudojant elektroniką
PCB kūrimas naudojant elektroniką
PCB kūrimas naudojant elektroniką
PCB kūrimas naudojant elektroniką

PCB laikys mikrovaldiklį, „Bluetooth“ryšį, RTC modulį, maitinimo tranzistorių su diodu apsaugai ir nedidelį rezistorių, jungčių laidus ir 5 V reguliatorių.

Pridedu „Fritzig“schemą, kad viskas būtų paprasta. Pirmasis paveikslėlis rodo eksportuotą schemos vaizdą, taip pat pridėjau sketch.fzz (originalų failą, galite jį atidaryti naudodami šį įrankį)

Litavimo žingsniai:

1. Iškirpkite moterų PCB jungtis, yra dvi 12 kontaktų jungtys mikrovaldikliui, taip pat yra 6 kontaktų „Bluetooth“jungtis ir dar 12 kontaktų jungtys dešinėje mikrovaldiklio pusėje ir dviejų kontaktų jungtis, skirta relės neigiamam ir teigiama galia

2. Nupjovus visas jungtis, jie turi būti lituoti PCB gale

3. Lituokite dvi KF301-2P kištukines jungtis

4. Įdėkite L7805CV 5V reguliatorių ant PCB. Sulenkite kojas ir lituokite kitoje pusėje, tada perpjaukite kojų perteklių kabelių pjaustytuvu

5. Lituokite tranzistorių NPN Tip142T ir apsauginį diodą 1N4004, nupjaukite perteklines kojas.

6. Lituokite 220 omų rezistorių tarp atitinkamo skaitmeninio kaiščio 5 ir tranzistoriaus pagrindo kaiščio

7. Lituokite storesnius laidus tarp tranzistoriaus ir KF301-2P kištukų (raudona ir juoda, kaip jie pažymėti paveikslėliuose)

8. Lituokite visus raudonus (+), juodus (-) ir baltus (signalinius) plonus laidus pagal Fricigo schemą

9. Lituokite kaiščius ant mikrovaldiklio, šonuose reikia dviejų 12 kaiščių

10. Užmegzkite ryšius tarp kiekvieno mikrovaldiklio dešinės pusės atitinkamų kaiščių (tai geriau paaiškinta paveikslėliuose). Sujungimai bus atliekami naudojant tik lydmetalį (kaiščiai bus uždaryti)

11. Pasirinktinai: su padidinamuoju stiklu patikrinkite, ar nėra lydmetalių, ar nėra trumpojo jungimo, ir patikrinkite, ar laidai tinkamai prilituoti PCB gale, taip pat galite patikrinti multimetru (atsparumo nustatymas), ar nėra trumpojo jungimo tarp teigiamo ir neigiami ryšiai. Kitas bandymas - maitinti grandinę be mikrovaldiklio „Bluetooth“

12. Įdėkite mikrovaldiklį ir „Bluetooth-Bluetooth“ant PCB

4 žingsnis: laidai ir surinkimas

Laidai ir surinkimas
Laidai ir surinkimas
Laidai ir surinkimas
Laidai ir surinkimas

Iki šiol mes turime paruoštą savo PCB, plastikinę dėžę, kurioje yra prijungti kabeliai ir kiti komponentai. Viskas, ką mums dabar reikia padaryti, tai prijungti sistemą prie laido.

1. per viršutinę dėžutės šoninę angą įkiškite kintamosios srovės maitinimo kabelį, nuimkite laidą ir prilituokite prie maitinimo šaltinio (jei jūsų maitinimo šaltinyje yra varžtai, tada užsukite)

2. naudodami raudonos vielos lydmetalį, maitinimo šaltinio išėjimą (+) į vieną iš saugiklių pusės, naudokite šiek tiek termiškai susitraukiančio vamzdelio, kad paslėptumėte atvirą atplėštą laidą.

3. lituokite kitą raudoną laidą kitoje saugiklio pusėje, uždėkite susitraukimo vamzdelį, kitą laido pusę reikia įkišti ir įsukti į KF301-2P varžto jungties įvestį (+)

4. lituokite juodą laidą prie maitinimo šaltinio išvesties (-) pusės ir prisukite prie PCB įvesties KF301-2P varžto jungties

4. Naudodami vyriškos ir moteriškos plokštės jungtis, prijunkite teigiamą ir neigiamą relę prie PCB teigiamų ir neigiamų jungčių. Taip pat prijunkite mikrovaldiklio 8 ir 9 kaiščius (naudodami PCB pagrindines jungtis kairėje nuo PCB) prie relės paleidimo kaiščių

5. vieną gnybtų juostos bloko pusę prijunkite prie raudonų atitinkamai juodų laidų, einančių iš 5,5 mm DC maitinimo kištukinių jungčių. Turite daugiau nei vieną 5,5 mm jungtį, kaip aš, tada visi raudoni laidai atsidurs viršutinėje kairėje gnybtų bloko pusėje, o visi juodi laidai - viršutinėje dešinėje gnybtų bloko pusėje (žr.). Kai valdysite atspalvius, jei jie nejuda ta pačia kryptimi, mes pakeisime laidus čia (daugiau apie tai vėliau)

6. prijunkite teigiamus ir neigiamus laidus, gaunamus iš varžtinės jungties KF301-2P (išėjimo), prie relės gnybtų vidurio. Gnybtų vidurys vadinamas bendru.

7. prijunkite kairę kairės relės pusę (nesvarbu, kaip jūs žiūrite iš tikrųjų) prie kairės dešinės relės pusės prie apatinės kairės gnybtų bloko pusės. Tada prijunkite dešinę kairės relės pusę prie dešinės relės pusės prie apatinės dešinės gnybtų bloko pusės. Gnybtų bloko viršutinė pusė bus prijungta prie 5,5 mm jungčių (žr. 5 veiksmą).

Pastaba: aprašiau gnybtų bloką, kurio viršutinė ir apatinė pusės turi kairę ir dešinę. Nesvarbu, kaip laikote gnybtų bloką, kol prisimenate, kokia pusė yra. Galite patikrinti paveikslėlius ir ypač „Fritzig“schemą.

5 žingsnis: „Arduino“kodas

Arduino kodas
Arduino kodas

Kodą reikia įkelti į arduino pro mini naudojant USB į nuoseklųjį FTDI adapterį FT232RL.

Prie arduino pro mini turėsite prijungti GND, VCC, Rx, Tx ir DTR kaiščius. Tada atidarykite „arduino“programinės įrangos pasirinkimo įrankius/prievadą ir bet kurį naudojamą prievadą. Tada įrankiai/lenta/„Arduino Pro“arba „Pro Mini“. Tada įrankiai/lenta/procesorius/ATmega328 (5V 16Mhz).

Galiausiai atidarykite toliau pateiktą eskizą ir paspauskite „Įkelti“.

Koregavimai: Vienintelis dalykas, kurį galima sureguliuoti eskize, yra „pwmPower“. Vertė gali būti nuo 0 iki 255 ir ji apytiksliai parodo, kiek energijos tiekia varikliai. Tai iš esmės greitai įjungia ir išjungia maitinimą. Aš tai įdiegiau daugiausia tam, kad galėčiau naudoti mažesnį maitinimo šaltinį neperkaitęs ar neišjungęs. Jei jūsų maitinimo šaltinis turi didesnę galią nei varikliai, galite nustatyti „pwmPower“į 255.

Taigi, kaip ši programa veikia: pirmiausia ji klauso serijinės linijos (antrinės programinės įrangos serijos), skirtos gaunamiems perdavimams. Kai gaunamas perdavimas, pranešimas skaitomas buferiu, kol „;“yra arba buferio pabaiga pasiekta. Tada jis yra išanalizuotas ir, jei jis yra tinkamo formato (pvz., O45;), funkcija toggleState iškviečiama su pirmojo parametro būsena, o paskui - trukme.

Norint pasiekti poliškumo jungiklį, abi relės yra atidarytos arba uždarytos. Tranzistorius įjungiamas ir išjungiamas naudojant PWM nurodytą laiką. O45 reiškia atidarymą 45 sekundes.

Vykdžius komandą buferis išvalomas.

6 žingsnis: naudojimas

Naudojimas
Naudojimas
Naudojimas
Naudojimas
Naudojimas
Naudojimas

Valdiklius galime naudoti daugiau nei vienu būdu

1. Per „Android“arba „iPhone“„Bluetooth“programą (paprasčiausia)

Savo demonstracijoje pasirinkau „Android“programą, pavadintą „Bluetooth“valdiklis. Ši programa leis jums pritaikyti mygtukus, kurie siunčia serijinius duomenis. Sukūriau du mygtukus aukštyn ir žemyn, susiejau aukštyn su kodu "C40;" ir žemyn su „O35;“.

„C40“; reiškia, kad aš uždarysiu (atitrauksiu) atspalvius 40 sekundžių, „035“reiškia, kad jis atsidarys (jie pakils) 35 sekundes. ";" yra komandos eskizas, kurį pasirinkau eskize, tai reiškia, kad jis signalizuoja komandos pabaigą.

2. Per python scenarijų, kuris nuolat veikia fone

Tai yra papildoma pamokos dalis. Turiu „mande a python“scenarijų, kuris veiks tokiame serveryje kaip „aviečių pi“ar nešiojamasis kompiuteris su prieiga prie interneto. Jis prisijungs prie „Bluetooth“valdymo skydelyje ir parodys http API. API galima pasiekti tiesiogiai arba per dalykų kalbą.

Žingsnis po žingsnio paaiškinsiu, ką reikės daryti

a. pirmas dalykas yra suporuoti „Bluetooth“

jūs naudosite „bluetoothctl“komandą iš konsolės, įveskite vidinį tipą

įjunkite maitinimą

aptinkamas agentas pagal numatytuosius agentus suporuojamas nuskaitant porą xx: xx: xx: xx: xx: xx (ir įveskite slaptažodį) pasitikėkite xx: xx: xx: xx: xx: xx (jei nėra slaptažodžio):

tada atidarykite „Bluetooth“konfigūracijos failą

vim /etc/bluetooth/rfcomm.conf

viduje turėsite konfigūruoti „Bluetooth“įrenginį taip:

rfcomm1 {

įrišti taip; įrenginys your_bluetooth_mac_address kažkas panašaus į 97: D3: 31: 21: A0: 51; 1 kanalas; komentaras "Ryšys su mano atspalviais bt"; }

susieti, iš naujo paleiskite „Bluetooth“paslaugas

sudo rfcomm bind allsudo /etc/init.d/bluetooth iš naujo paleiskite sudo hciconfig hci0 up

b. įdiegti kolbą, kolbos pagrindinį autentifikavimą:

sudo -H pip įdiegti „Flask Flask -BasicAuth“

c. sukurkite failą server.py naudodami šį kodą ir paleiskite serverį:

# naudojimas: „python“„Bluetooth“vartotojo vardo slaptažodis „bluetooth_address“

# Pastaba: naudojamas vartotojo vardas, slaptažodis

importuoti OS, „Bluetooth“, „sys“, „threading“

iš kolbos importavimo Kolba iš kolbos_basicauth importas „BasicAuth“iš eilės importavimo Eilės programa = Kolba (_ name_) configuration = sys.argv app.config ['BASIC_AUTH_USERNAME'] = configuration [1] app.config ['BASIC_AUTH_PASSWORD'] = konfigūracija [2] eilė = Eilė () basic_auth = „BasicAuth“(programos) klasė „BluetoothBackground“(threading. Thread): def _init _ (self, bluetooth_address, queue): threading. Thread._ init _ (self) self._ bluetooth_address = bluetooth_address self._ queue = queue self.shutdown = False def run (self): self._ bluetooth = self.get_bluetooth () while not self.shutdown: message = self._ queue.get () self._ bluetooth.send (message) self._ bluetooth.close () def get_bluetooth (self)): ryšys = „Bluetooth“. „BluetoothSocket“(„Bluetooth. RFCOMM“) ryšys.settimeout (Nėra) pabandykite: connection.connect ((sava ._ bluetooth_address, 1)), išskyrus išimtį, e: spausdinti „Klaida prisijungiant prie„ Bluetooth “+ str (e) ryšys.setblocking (False) grąžinimo ryšio klasė 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 (komanda): queue.put (command) return „ok“threads = threads.append („BluetoothBackground“(konfigūracija [3], eilė)) threads.append (Webserver ()) [thread.start () siūlams siūluose]

paleisti serverį vykdyti:

python server.py vartotojo slaptažodis 97: D2: 31: 20: A0: 51

Gerai, todėl serveris.py yra mūsų scenarijus, naudotojas ir slaptažodis yra jūsų autentifikavimo duomenys, o „97: D2: 31: 20: A0: 51“yra jūsų „Bluetooth“MAC adresas.

d. naudokite savo serverį komandoms siųsti iš bet kurios pasaulio vietos

iš naršyklės tipo: https:// your_ip: 5000/send_to_serial/C30;

- įveskite naudotoją ir slaptažodį, kuriuos anksčiau nustatėte paleidę „python“serverį

- „C30“; yra komanda, kuri bus persiųsta į „Bluetooth“įrenginį (mūsų dėžutė, kuri valdys atspalvius)

- patikrinkite, ar jūsų užkarda neužblokavo prievado 5000 (mes naudojame tą prievadą)

- jei esate už maršrutizatoriaus (pvz., aviečių pi), turite nukreipti prievadą iš maršrutizatoriaus iš 5000 prievado į 5000

e. Galite naudoti „Speakspeak“, kad galėtumėte valdyti atspalvius pagal tvarkaraštį arba kai pasikeičia kai kurių kanalų jutiklių duomenys. Pavyzdžiui, galite prikabinti šviesos jutiklį (lauke), kad galvotumėte, o kai šviesos lygis sumažėja iki tam tikro lygio (vakaras), galite uždaryti atspalvius, kad lauke esantys žmonės jūsų nematytų.

Naudodami „ThingHTTP“galite atspalvius („python“serverį, kurį nustatėme anksčiau) prijungti prie dalykų kalbėjimo.

Aš įtraukiau „ThingHTTP“formos paveikslėlį su užpildytais duomenimis kaip pavyzdį ir paveikslėlį su „TimeControl“. Taigi, norint kuo didesnio lankstumo, „Speak“turėtų daryti viską, ko jums reikia.

3. Per mano namų automatizavimo programą

Tai yra šiek tiek sudėtingiau, mano namų automatizavimo programa daro daug daugiau nei valdo atspalvius.

Jis taip pat valdo žibintus, duris, turi kelis jutiklius, integruotas su jungikliais ir turi sudėtingas vartotojo nustatytas taisykles, kurios, pavyzdžiui, gali atverti atspalvius, jei viduje yra žemas šviesos lygis arba yra rytas.

Galite patikrinti mano „github“saugyklą ir, jei turite klausimų, mielai į juos atsakysiu.

Jei mano pamoka jums pasirodė naudinga, pasidalykite ja arba pridėkite prie mėgstamiausių. Ir aš noriu pamatyti įdomių komentarų:)

Rekomenduojamas: