Talaan ng mga Nilalaman:

Ang Raspberry Pi Zero Garage Door Opener Hardware: 10 Hakbang
Ang Raspberry Pi Zero Garage Door Opener Hardware: 10 Hakbang

Video: Ang Raspberry Pi Zero Garage Door Opener Hardware: 10 Hakbang

Video: Ang Raspberry Pi Zero Garage Door Opener Hardware: 10 Hakbang
Video: FULL BUILD | Rebuilding A DESTROYED Porsche 911 Turbo! 2024, Nobyembre
Anonim
Ang Raspberry Pi Zero Garage Door Opener Hardware
Ang Raspberry Pi Zero Garage Door Opener Hardware

Ang isa sa mga inspirasyon para sa proyektong ito ay ang mahusay na pagtuturo sa Raspberry Pi 3 Garage Door Opener, kasama ang maraming iba pa na matatagpuan sa Internet. Hindi isang napapanahong electronics person, gumawa ako ng maraming karagdagang pagsasaliksik sa mga paraan upang makipag-ugnay sa Raspberry Pi at maraming natutunan tungkol sa kahalagahan ng mga resistors na may mga LED bombilya at sa lahat ng mga kable ng GPIO. Nalaman ko rin ang tungkol sa mga pakinabang ng mga pull-up at pull-down na circuit ng hardware kumpara sa built-in na pagpapaandar ng Pi.

Sapagkat ang proyektong pintuan ng garahe na ito ay talagang isang multi-part na proseso na binubuo ng Pi hardware, software, at pag-install sa iyong (mga) opener ng pinto ng garahe naisip kong magtutuon muna ako sa hardware ng Pi, dahil kinakailangan ito para sa bawat iba pang hakbang.

Ang aking diskarte ay upang maging napaka-basic, kumikilos bilang isang buod ng pag-aaral na ginawa ko upang makumpleto ang hardware. Magsisimula ito sa ilang impormasyon, at pagkatapos ay magtatayo kami ng mga circuit sa isang breadboard. Ang bawat hakbang ay pinipino ang aming disenyo at kaalaman, na nagtatapos sa pagbuo ng isang permanenteng solusyon sa hardware upang mai-interface ang Pi gamit ang isang relay at reed sensors.

Bilang karagdagan, hindi katulad ng ilang iba pang mga proyekto, nagpasya akong gumamit ng isang Raspberry Pi Zero W, na nabenta ko kanina, ngunit nakaupo pa rin na hindi ginagamit sa aking mesa. Ang nakabaligtad ay iyon, habang prototyping, kung nasira ko ang alinman sa mga circuit ng GPIO ito ay mura at madaling palitan at panatilihin ang prototyping. Ang downside ay mayroon lamang itong isang processor ng ARMv6 kaya ang ilang mga bagay, tulad ng Java, ay hindi magagamit.

Ang iba pang bagay na nagpasya akong gawin ay lumikha ng aking sariling add-on board para sa circuitry, kaya't kailangan kong palitan o palitan ang aking Pi, hangga't pareho ang mga pinout, ang board ay madaling mai-plug sa bagong Pi. Inaasahan nitong mabawasan ang pugad ng mga kable ng mga kable.

Ang aking mga palagay ay:

  • Komportable ka sa paghihinang
  • Alam mo na kung paano gamitin ang pangunahing mga utos ng terminal sa Raspberry Pi
  • Gumagamit ka ng Raspbian Buster o mas bago.
  • Mayroon kang ilang mga interface sa linya ng utos ng Pi; alinman sa isang nakatuon na monitor, keyboard, atbp AT / O gamit ang SSH.
  • Pamilyar ka sa pangunahing konsepto ng disenyo ng de-koryenteng circuit; halimbawa, alam mo ang pagkakaiba sa pagitan ng lakas at lupa at naiintindihan mo ang konsepto ng isang maikling-circuit. Kung maaari kang maglagay ng isang bagong outlet sa iyong bahay, dapat kang makasunod.

Mga gamit

Nakasalalay sa kung gaano ka nakatuon sa proyektong ito, maaari kang magsimula sa mga bagay lamang na kinakailangan sa bawat hakbang at mula doon. Maraming mga bahagi na ito ay magagamit sa iyong lokal na electronics o DIY / Maker shop, ngunit isinama ko ang mga link ng Amazon upang mapabuti ang mga paglalarawan.

  • MakerSpot RPi Raspberry Pi Zero W Protoboard (upang gawin ang pangwakas na HAT para sa Pi)
  • 2 Channel DC 5V Relay Module (kumuha ng isang 1-channel kung mayroon kang isang pinto, 2 para sa 2 pintuan, atbp.)
  • Overhead Door Switch, Normally Open (NO) (Kung sa ngayon ay prototyping ka lamang at nais na gumamit ng ilang mga murang switch ng tambo upang makapagsimula, ayos lang)
  • Electronic Fun Kit Bundle (naglalaman ito ng lahat ng mga resistors na kailangan ko, kasama ang isang breadboard at power unit para sa pagtulong sa prototype at pagsubok at alamin bago ko gawin ang permanenteng board). Kung mayroon ka na ng lahat ng ito, tiyaking mayroon kang kaunting 10K, 1K, at 330 ohm resistors na madaling gamitin.
  • Breadboard Jumper Wires (anumang gagawin)
  • Panghinang na may maliit na tip
  • Rosin-core solder
  • Mas malinis na tip ng bakal na panghinang
  • Spare 9v power supply (upang mapatakbo ang breadboard)
  • Murang mga prototyping board para sa kasanayan sa paghihinang (opsyonal)
  • Pagpapatakbo ng Raspberry Pi Zero o Pi na iyong pinili
  • Mga pin ng header para sa Raspberry Pi (kung ang iyo ay wala nang header dito)
  • Nag-stack ng mga header para magamit sa protoboard HAT.
  • Maliit na plato ng ilong ng karayom
  • Screwdriver kit ng Jeweler
  • Maliit na mga cutter sa gilid (para sa paggupit ng kawad pagkatapos ng paghihinang)
  • Mga Tweezer
  • Ang ilang maliit na wire na sukat (mas gusto ko ang solid-core) para magamit sa protoboard
  • Isang maliit na silicone (kung pipiliin mong gumamit ng 1.8mm ibabaw na mga mount ng LED sa halip na ang mga ibinigay sa kit bundle)
  • Natagpuan ko na ang isang nagpapalawak na lampara ay sobrang nakakatulong upang makita ang maliit na gawaing panghinang

Hakbang 1: Panimula sa Raspberry Pi GPIO

Ang pangunahing interface na gagamitin namin sa Raspberry Pi ay ang GPIO (Pangkalahatang Pakay Input / Output).

Hanapin ang iyong tamang diagram ng pin para sa iyong Pi dito. Ang pagtuturo na ito ay magtutuon sa Pi Zero W v1.1.

Gagamitin lamang namin ang mga berdeng GPIO pin, pag-iwas sa mga SDA, SCL, MOSI, MISO, atbp na mga pin. (Natuklasan ko na ang ilang mga GPIO pin ay may mga espesyal na layunin, isa sa mga pakinabang ng prototyping sa isang breadboard, kaya't natigil ako sa mga GPIO pin 17 (pin # 11), 27 (pin # 13), at 12 (# 32) na tulad ng mga ito. sa mabuting posisyon para sa aking breadboard.

Ang mga GPIO pin ay idinisenyo upang mapatakbo bilang mga digital (binary) switch; mayroon silang lohikal bilang isa sa dalawang estado: 1 o zero. Ang mga estado na ito ay nakasalalay sa kung ang pin ay naghahatid o tumatanggap ng boltahe sa itaas ng isang partikular na threshold (1) o nagbibigay o tumatanggap ng boltahe sa ibaba ng isang partikular na threshold. (Pag-uusapan natin ang tungkol sa mga threshold mamaya.)

Mahalagang tandaan na, habang ang Raspberry Pi ay maaaring magbigay ng parehong 5V at 3.3V (3V3), ang mga GPIO pin ay nagpapatakbo gamit ang hanggang sa 3.3V. Higit pa rito at napinsala mo ang GPIO at posibleng ang buong controller. (Ito ang dahilan kung bakit nag-prototype kami sa isang breadboard, at ginagamit ang pinakamurang Pi posible!)

Ang estado ng mga pin ay maaaring manipulahin alinman sa pamamagitan ng software (output) o ng iba pang mga aparato na nagpapakain sa estado (input).

Bigyan natin ito ng isang shot gamit ang ilang pangunahing mga utos ng SYSFS. Hindi ako sigurado kung nangangailangan ito ng WiringPi, ngunit kung may mga isyu kang maaaring gusto mong i-install ito kung gumagamit ka ng kaunting imahe ng Raspbian.

Una, bigyan natin ang ating sarili ng pag-access sa GPIO 17:

sudo echo "17"> / sys / class / gpio / export

Suriin natin ngayon ang halaga ng GPIO:

sudo cat / sys / class / gpio / gpio17 / halaga

Ang halaga ay dapat na zero.

Sa puntong ito, hindi alam ng GPIO kung ito ay input o output. Tulad ng naturan, kung susubukan mong manipulahin ang halaga ng GPIO, makakatanggap ka ng "error sa pagsulat: Hindi pinapayagan ang operasyon". Kaya sabihin na lang natin sa pin na ito ay output:

sudo echo "out"> / sys / class / gpio / gpio17 / direksyon

At itakda ngayon ang halaga sa 1:

sudo echo "1"> / sys / class / gpio / gpio17 / halaga

Suriin muli ang halaga upang makita … at ang halaga ay dapat na 1.

Binabati kita, lumikha ka lamang ng isang output GPIO at binago ang estado!

Ngayon, may kaunti pa rito, ngunit alamin muna ang ilang mga bagay.

Hakbang 2: Pag-unawa sa Mga Resistor

Kaya, maaari kang maghanap ng mga resistors sa Wikipedia, ngunit ano ang kahulugan ng mga ito sa amin? Pangunahin na pinoprotektahan ang aming mga bahagi.

Naaalala kapag pinag-usapan natin ang tungkol sa mga GPIO na nagpapatakbo sila hanggang sa 3.3V? Ang ibig sabihin nito ay kung bibigyan mo ng isang pin ang GPIO higit pa rito, maaari mo itong iprito. Bakit ito mahalaga? Minsan may mga maliliit na pagtaas sa anumang circuit at kung ang maximum ay 3.3V, ang anumang maliit na sinok ay maaaring maging sanhi ng mga problema. Ang pagpapatakbo sa maximum na boltahe ay isang mapanganib na panukala.

Totoo ito lalo na para sa mga LED. Ang isang LED ay kukuha ng mas maraming lakas hangga't maaari. Sa huli ang LED ay masusunog, ngunit ang makabuluhang kasalukuyang gumuhit ay maaaring gumamit ng lahat ng magagamit na kuryente sa isang circuit, na nagiging sanhi nito upang madepektong paggawa.

Halimbawa: ano ang mangyayari kung maglalagay ka ng isang tinidor sa parehong mga prongs ng isang outlet ng kuryente? Mayroong kaunti-sa-walang pagtutol, at hihipan mo ang circuit breaker. (At marahil ay saktan ang iyong sarili sa proseso.) Bakit hindi ito ginagawa ng toaster? Dahil ang mga elemento ng pag-init nito ay nagbibigay ng paglaban, at dahil dito ay hindi iginuhit ang buong pagkarga ng circuit.

Kaya paano natin maiiwasang mangyari ito sa isang LED? Sa pamamagitan ng paglilimita sa dami ng kasalukuyang ginagamit upang himukin ang LED gamit ang isang risistor.

Ngunit anong sukat ng risistor? Yeah, nabasa ko ang ilang mga artikulo sa web at sa wakas ay naayos na ang isang 330Ω risistor para sa 3.3V na may LED. Maaari mong basahin ang lahat ng kanilang mga kalkulasyon at malaman ito sa iyong sarili, ngunit sinubukan ko ang ilan sa isang breadboard at 330 ay gumagana nang maayos. Ang isang sanggunian na aking nasuri ay ang mga forum ng Raspberry Pi, ngunit ang isang paghahanap sa Google ay makakatuklas ng marami pa.

Gayundin, ang mga Pi GPIO pin ay nangangailangan ng proteksyon mula sa sobrang lakas. Naaalala kung paano ko nasabi na gumagamit sila ng Hanggang SA 3.3V? Sa gayon, medyo mas mababa ay hindi masakit. Karamihan sa mga proyekto ay gumagamit ng 1KΩ resistors at ginawa ko ang pareho. Muli, maaari mong kalkulahin ito sa iyong sarili ngunit ito ay isang napakapopular na pagpipilian. Muli, ang mga forum ng Raspberry Pi ay nagbibigay ng ilang impormasyon.

Kung hindi mo ito lubos na naintindihan, gumawa ng higit pang pagbabasa. O sundin lamang ang mga tagubilin. Alinmang gumagana para sa iyo.

Maraming mga resistors ang may label sa packaging ngunit sa sandaling alisin mo ang mga ito, paano mo masasabi sa kanila na magkahiwalay sila? Maaaring sabihin sa iyo ng maliit na may kulay na mga guhitan sa risistor.

Susunod, tatambad namin ang isang simpleng LED sa isang breadboard na may kapangyarihan upang makapagsimula ang mga bagay.

Hakbang 3: Kable ng isang LED

Kable ng isang LED
Kable ng isang LED

Ang unang hakbang ay upang mag-wire ng isang LED sa breadboard. Kapag natagpuan namin iyon nang ligtas, ikonekta namin ito sa Raspberry Pi at makontrol ito mula sa GPIO pin.

Inaasahan na ang iyong breadboard ay dumating na may isang mapagkukunan ng lakas para sa 3.3v. Kung hindi, maaari mong i-wire ang lahat at ikonekta ito nang direkta sa Pi.

Maghanap ng isang LED at i-wire ito sa breadboard tulad ng ipinakita gamit ang isang 330Ω risistor. Ang mas mahabang binti ng LED ay ang anode, ang mas maikling paa ay ang katod. Ang anode ay kumokonekta sa lakas na 3.3V habang kumokonekta ang katod pabalik sa lupa. Ang risistor ay maaaring maging bago ang LED; hindi na ito mahalaga. Ang mga karaniwang kulay ng kawad ay:

  • Pula = 5V
  • Orange = 3.3V
  • Itim = lupa

Sa sandaling mayroon ka ng wireboard na wired at nagbibigay ng lakas, ang LED ay dapat na ilaw. Huwag magpatuloy maliban kung nais mong gumana ito.

Hakbang 4: Pagkonekta sa LED sa GPIO

Pagkonekta sa LED sa GPIO
Pagkonekta sa LED sa GPIO

Kaya ngayon mayroon kaming isang gumaganang LED na may isang risistor. Ngayon ay oras na upang ikonekta ang LED na iyon sa Raspberry Pi. Ang aming layunin ay upang lumikha ng isang output GPIO at ikonekta ang GPIO sa LED upang kapag pinapagana namin ang GPIO, ang LED ay sindihan. Sa kabaligtaran, kapag hindi namin pinagana ang GPIO, papatayin ang LED. (Gagamitin ito mamaya bilang circuit na "pipindutin" ang pindutan upang buksan ang pintuan ng garahe.)

Alisin ang lakas mula sa breadboard at ikonekta ang Pi tulad ng ipinakita. (Mas mahusay na gawin ito habang ang Pi ay pinapatakbo din.) Ikinonekta namin ang supply ng 3.3V mula sa GPIO 17 at ang lupa sa isa sa mga ground pin.

Ngayon boot ang Pi at ang LED ay dapat na naka-off. Ipatupad ang parehong mga utos na ginawa namin dati upang i-set up ang GPIO pin at i-output ang halaga:

sudo echo "17"> / sys / class / gpio / export

sudo echo "out"> / sys / class / gpio / gpio17 / direksyon sudo cat / sys / class / gpio / gpio17 / halaga

Ang halaga ay dapat na zero.

Ngayon paganahin natin ang GPIO:

sudo echo "1"> / sys / class / gpio / gpio17 / halaga

Dapat nitong buksan ang LED. Upang patayin ang LED, huwag paganahin ang GPIO tulad ng sumusunod:

sudo echo "0"> / sys / class / gpio / gpio17 / halaga

Ang isa sa mga bagay na maaaring mangyari ay na, na may sapat na pagkagambala o on / off na cycle ng LED, maaari mong mapansin na ang LED ay nananatiling bahagyang naiilawan. Mayroong isang dahilan para dito, at pag-uusapan natin ito sa hinaharap na hakbang.

Hakbang 5: Paggamit ng isang Relay upang himukin ang LED

Paggamit ng isang Relay upang himukin ang LED
Paggamit ng isang Relay upang himukin ang LED

Tulad ng nakasaad sa nakaraang hakbang, ang LED ay isang stand-in para sa "pindutan." Gayunpaman, habang pinapagana ng GPIO ang aming LED, hindi nito maaaring "pindutin" ang aming pindutan ng pintuan ng garahe. Ang isang pindutan ng pindutan ay mahalagang nag-uugnay lamang sa dalawang mga terminal ng pindutan, sa epekto na gumaganap ng isang pindutin ang pindutin. Ang kailangan mo upang maisagawa ang "pindutin" na ito ay isang relay.

Ang isang relay ay hindi hihigit sa isang switch na pinalakas ng isang bagay. Sa kasong ito, maaaring sabihin ng aming Raspberry Pi ang relay na "pindutin" ang pindutan ng pintuan ng garahe. Para sa aming prototype, sasabihin ng Raspberry Pi ang relay upang i-on ang LED … upang masubukan namin ang aming circuit.

Ano ang kailangan nating malaman tungkol sa aming relay:

  • Ang relay ay nagpapatakbo sa 5V. Ito ang kapangyarihan lamang upang mapatakbo ang relay at hindi ginagamit sa anumang ibang bahagi ng circuit.
  • Nais naming i-wire ang aming relay bilang "karaniwang bukas." Nangangahulugan iyon na ang relay ay mananatiling bukas (hindi kumokonekta sa dalawang mga wire, o "pagpindot sa pindutan", hanggang sa aktibo.
  • Ang partikular na relay na ito ay naaktibo kapag ang GPIO ay naghahatid ng zero na kapangyarihan sa 3.3V na konektor ng relay. Sa katunayan, ito ay tila paatras. Kapag naibigay ang 3.3V, ang relay ay pinakawalan. Manatili sa amin sa proyektong ito at makikita mo kung paano ito gumagana.
  • Ang dalawang koneksyon sa relay terminal ay ganap na hiwalay mula sa Raspberry Pi. Ang ibig sabihin nito ay maaari kang lumipat ng isang kawad sa anumang na-rate na kasalukuyang sapagkat natatanggap nito ang kasalukuyan mula sa isa pang mapagkukunan ng kuryente. Ang simpleng maliit na maliit na Raspberry Pi na may 3.3V at 5V ay maaaring magpatakbo ng isang relay na kumokontrol sa mas malaking boltahe. Ito ay kung paano maaaring patakbuhin ng isang maliit na maliit na pindutan sa iyong dashboard ang iyong malaking amperage na gumuhit ng mga maiinit na upuan.

Kaya't magsimula tayo.

Una, muling ikabit (ngunit pinapagana pababa) ang panlabas na yunit ng kuryente para sa iyong breadboard. Ang lakas na ito ay tatakbo sa LED circuit, habang kinokontrol ng Raspberry Pi ang relay.

Susunod, lumikha ng pahinga sa linya ng 3.3V na nagpapatakbo sa LED. (Sa mga switch at relay, lagi naming nais na ilipat ang "mainit", hindi ang lupa.) Ito ay ipinahiwatig sa kahel at asul sa diagram.

Ikonekta ang Raspberry Pi tulad ng ipinakita sa 5V na nagpapatakbo ng relay, 3.3V na kumikilos bilang switch, at ang lupa na bumalik sa Raspberry Pi. Sa halimbawang ito na konektado ko ang 3.3V sa GPIO 17. Inirerekumenda ko ang pagkonekta ng isang 1KΩ risistor sa wire na GPIO tulad ng ipinakita, upang maprotektahan ang GPIO mula sa mga problema. (Nabanggit ito sa hakbang ng Mga Resistors.)

Patayin ang breadboard at ngayon ay pasiglahin ang iyong Pi. Ang LED ay dapat na naiilawan.

Patakbuhin ngayon ang mga sumusunod na utos sa Pi:

sudo echo "17"> / sys / class / gpio / export

sudo echo "out"> / sys / class / gpio / gpio17 / direksyon sudo cat / sys / class / gpio / gpio17 / halaga

Ang halaga ay dapat na zero.

Ngayon paganahin natin ang GPIO:

sudo echo "1"> / sys / class / gpio / gpio17 / halaga

Dapat nitong patayin ang LED.

Hakbang 6: Pagdaragdag ng isang Pull-Up Resistor

Pagdaragdag ng isang Pull-Up Resistor
Pagdaragdag ng isang Pull-Up Resistor

Sa puntong ito, dapat gumana ang lahat ng iyong mga bagay. Ngunit may isang bagay na hindi pa namin napag-usapan tungkol sa mga GPIO, at iyon ang "lumulutang" boltahe na posible batay sa threshold na nabanggit namin dati.

Habang ang mga GPIO sa pangkalahatan ay mayroong dalawang lohikal na estado (1 at zero), tinutukoy nito ang mga estado na ito batay sa kung mayroon itong boltahe sa itaas o sa ibaba ng boltahe na threshold, tulad ng nabanggit namin sa seksyon ng GPIO. Ngunit ang problema sa karamihan ng mga GPIO ay ang posibilidad ng isang "lumulutang" boltahe; sa kaso ng Raspberry Pi, sa isang lugar sa pagitan ng zero at 3.3V. Maaari itong maganap mula sa pagkagambala o mula sa pagtaas / pagbaba ng boltahe sa isang circuit.

Hindi namin nais ang isang sitwasyon kung saan ang aming garahe ng pindutan ng relay na pindutan ay maaaring aktibo lamang mula sa lumulutang na boltahe. Sa katunayan, nais namin itong buhayin lamang kapag sinabi namin ito sa.

Ang mga sitwasyong tulad nito ay nalulutas sa pamamagitan ng paggamit ng pull-up at pull-down resistors upang ipatupad ang isang partikular na boltahe at maiwasan ang lumulutang na boltahe. Sa aming kaso, nais naming siguraduhin na magbigay ng boltahe upang maiwasan ang pag-relay mula sa pag-aktibo. Kaya kailangan namin ng isang pull-up risistor upang magdala ng boltahe sa itaas ng threshold. (Ang mga threshold ay nakakatawang bagay … Sinubukan kong basahin ang tungkol sa mga ito at upang makita kung ang mga ito ay mahusay na natukoy at nakakuha ng maraming impormasyon na nasa aking ulo, at ang ilan na tila sobrang simple. Sapat na sabihin na sa isang multimeter nakikita ko iyon ang boltahe ay mas mababa kaysa sa 3.3V, ngunit dahil gumana ang lahat habang na-prototyp ko ito, lumipat lang ako. Maaaring mag-iba ang iyong agwat ng mga milya, at ito ang dahilan kung bakit namin ito breadboard bago maghinang ng aming huling produkto.)

Oo naman, ang Raspberry Pi ay may parehong panloob na pull-up at pull-down na resistors na maaari mong itakda sa code o sa boot. Gayunpaman, ito ay lubos na madaling kapitan sa pagkagambala. Habang posible na gamitin ang mga ito, dahil nakikipagtulungan na kami sa mga resistors sa isang circuit, maaaring sulitin ang katatagan na gamitin ang panlabas.

Mas mahalaga, lumilikha ito ng pull-up at nagdaragdag ng sapat na boltahe na ang default ng GPIO pin na default sa 1 bago pa ipasimula ang Pi. Natatandaan kung paano naka-aktibo ng aming relay ang LED na naiilawan nang una nating gawing pinasimulan ang Pi hanggang sa masara namin ito? Pinipigilan ng paggamit ng pull-up ang relay mula sa pag-aktibo sa pagsisimula dahil ang relay 3.3V input ay tumatanggap ng boltahe sa parehong oras na ang 5V input ay tumatanggap ng boltahe. Maaari rin nating gawin ito sa pag-configure ng Pi kung nais natin, ngunit muli, dahil nakikipag-kable din tayo sa mga resistor, tila hindi gaanong mahina sa mga pag-update at pamamahagi ng operating system.

Ang iba't ibang mga pagsasaayos ay maaaring mangailangan ng iba't ibang mga resistors, ngunit isang 10kΩ risistor ang nagtrabaho kasama ang relay na mayroon ako. Ang LED sa aking relay ay masyadong malabo sa pag-boot up, ngunit ang pull-up ay nagbibigay ng sapat na boltahe upang maiwasan ang pag-aktibo ng relay.

Magdagdag tayo ng isang pull-up risistor sa aming circuit. Sa diagram ng breadboard, nagdagdag ako ng isang 10kΩ risistor sa pagitan ng 3.3V input sa relay at isang 3.3V na mapagkukunan.

Ngayon mayroon kaming isang circuit na angkop para sa "pagpindot" ng pindutan ng pintuan ng garahe; ang pagpapalit ng LED at 330Ω risistor na may aktwal na mga wire ng pindutan ay dapat na madali.

Hakbang 7: Sensor ng Reed Switch

Reed Switch Sensor
Reed Switch Sensor

Napakaganda, alam namin kung ano ang hitsura ng aming circuit upang buhayin ang nagbukas ng pintuan ng garahe. Gayunpaman, hindi ba magandang malaman kung nakasara ang pintuan ng garahe, o kung bukas ito? Upang magawa iyon, kailangan mo ng kahit isang reed switch. Inirekomenda ng ilang mga proyekto ang dalawa, ngunit pareho silang gagamit ng parehong disenyo ng circuit.

Gumagamit kami ng isang "normal na bukas" (NO) pagsasaayos ng reed switch. Nangangahulugan iyon na ang aming circuit ay bukas hanggang sa ang reed switch ay nasa loob ng proximity ng magnet, na isasara ang circuit at papayagan ang daloy ng kuryente.

Ang mga pangunahing pagkakaiba sa pagitan ng pag-setup ng sensor at ang pag-setup ng relay ay:

  • Ang GPIO na konektado sa sensor ay makakakita ng lakas, kaya't ito ay magiging isang input GPIO (habang ang relay ay gumamit ng isang output GPIO na nag-supply ng boltahe)
  • Dahil ang default na estado ay umiiral bilang karaniwang bukas, nangangahulugan iyon na ang aming circuit ay hindi magiging aktibo. Tulad ng naturan, ang estado ng GPIO ay dapat na 0. Baliktad sa konsepto ng pull-up risistor sa relay circuit, nais naming tiyakin na ang aming boltahe ay nasa ibaba ng threshold kapag ang circuit ay bukas. Mangangailangan ito ng isang pull-down risistor. Karaniwan itong kapareho ng pull-up, ngunit nakakonekta sa lupa sa halip na kapangyarihan.

Tulad ng relay circuit, pupunta kami sa mga kawad na bagay sa isang breadboard bago isabit ito sa Pi.

Gamitin natin ang ating pinapatakbo na breadboard at kawad ng isang LED, 330Ω resistor, at ground wire. Pagkatapos ay mag-hook up ng 3.3V sa isang gilid ng reed switch at isang jumper mula sa kabilang panig ng reed switch sa LED. (Kung mayroon kang switch na tambo na sumusuporta sa HINDI at NC, gamitin ang posisyon na HINDI.) Ilipat ang magnet mula sa switch ng tambo at i-on ang lakas ng breadboard. Ang LED ay dapat manatiling patay. Ilipat ang pang-akit patungo sa switch ng tambo at dapat ilawan ng LED. Kung kabaligtaran ito, mayroon kang wired para sa NC (karaniwang sarado)

Hakbang 8: Pagkonekta sa Reed Switch sa Pi

Pagkonekta sa Reed Switch sa Pi
Pagkonekta sa Reed Switch sa Pi

Kaya't ngayon na mayroon kaming circuit na gumagana nang walang Pi, maaari naming alisin ang lakas mula sa breadboard at ikonekta namin ang Pi.

Gagamitin namin ulit ang GPIO17 dahil alam na namin kung nasaan ito.

Tulad ng relay circuit, protektahan namin ang GPIO pin gamit ang isang resistor na 1KΩ; gayunpaman, gagamit kami ng isang 10kΩ risistor sa lupa upang lumikha ng isang pull-down.

Kapag na-wire na natin ang lahat, ilipat natin ang magnet mula sa switch ng tambo, boot ang P, i at dalhin ang ating sarili sa isang linya ng utos at simulan ang GPIO, na tandaan na sa oras na ito lumilikha kami ng isang input na GPIO:

sudo echo "17"> / sys / class / gpio / export

sudo echo "in"> / sys / class / gpio / gpio17 / direksyon sudo cat / sys / class / gpio / gpio17 / halaga

Ang halaga ay dapat na zero. Ilipat ang magnet sa switch ng tambo. Ang ilaw ng LED ay dapat na ilaw, at ang halaga ay 1.

Voila! Na-wire namin ang aming switch ng tambo sa Pi!

Hakbang 9: Paggawa ng isang Permanenteng Solusyon sa isang Prototyping Board

Gumagawa ng isang Permanenteng Solusyon sa isang Prototyping Board
Gumagawa ng isang Permanenteng Solusyon sa isang Prototyping Board
Gumagawa ng isang Permanenteng Solusyon sa isang Prototyping Board
Gumagawa ng isang Permanenteng Solusyon sa isang Prototyping Board
Gumagawa ng isang Permanenteng Solusyon sa isang Prototyping Board
Gumagawa ng isang Permanenteng Solusyon sa isang Prototyping Board
Gumagawa ng isang Permanenteng Solusyon sa isang Prototyping Board
Gumagawa ng isang Permanenteng Solusyon sa isang Prototyping Board

Ngayong alam na natin kung ano ang dapat magmukhang mga circuit, oras na upang maghinang ng isang permanenteng bersyon sa isang prototyping board. Dahil gumagamit ako ng isang Pi Zero W, kumuha ako ng maliliit na mga board ng proto.

Naisip ko na mas mahusay na gamitin ang format na Zero at makapag-stack ng isa o higit pang mga board, isang add-on na module na tinatawag ng Raspberry Pi na HAT (Hardware Attached on Top). Sa totoo lang, technically dahil wala itong anumang uri ng EEPROM at hindi nagrerehistro mismo, hindi ito isang HAT ngunit kailangan kong tawagan ito. Ngunit ang format ay nai-mount nang maayos at inaalis ang isang pugad ng mga daga ng mga kable, kaya't maganda iyon.

Ang hamon ay ang mga board ng proto ay uri ng maliit, kaya't hindi ka masyadong magkakasya sa kanila. Gayundin, wala sa mga butas ang nakakonekta sa mga hilera tulad ng mas malaking mga board ng proto. Habang ito ay maaaring mukhang hindi maginhawa, ito ay talagang isang tagapagligtas.

Ang naisip ko ay makakalikha ako ng isang HAT para sa bawat pintuan ng garahe na nais kong kontrolin. Sa ganitong paraan, maaari mong palawakin ang proyektong ito upang magkasya sa iyong pangangailangan.

Sa board ng proto, nalaman ko na may sapat na silid upang lumikha ng tatlong mga circuit:

  1. relay circuit
  2. circuit ng sensor
  3. pangalawang sensor circuit

Iyon ay medyo mabuti para sa anumang proyekto ng pintuan ng garahe doon.

Kaya ang ginawa ko ay gumamit ng GPIO17 at 27 para sa mga sensor, at GPIO12 para sa relay. Ang talagang magandang bagay tungkol sa board ng proto na ito ay maaari kang mag-wire sa GPIO nang hindi hinawakan ang header. Ngunit oo, kakailanganin mong maghinang ng isang stacking header bilang karagdagan sa iyong resistors (at, opsyonal, LEDs).

Medyo nilikha ko ulit ang mga circuit na prototyped namin sa board. Maaari mong sabihin na ang aking paghihinang ay hindi perpekto ngunit gumagana pa rin ito. (Ang susunod na mga board ay magiging mas mahusay dahil mayroon akong kasanayan.) Mayroon akong isang Aoyue 469 at isang buhok lamang sa itaas ng setting 4 ang pinakamahusay na temperatura batay sa mga rekomendasyon para sa paghihinang ng header ng GPIO.

Ginamit ko ang panlabas na konektadong mga hilera para sa lupa at ang panloob para sa 3.3V. At ginamit ko ang resistor wire upang kumilos bilang isang tulay dahil wala kaming konektadong mga hilera. Ang natitirang lahat ay dayagonal at patagilid dahil iyon ang pinakamahusay na paraan na maaari kong hanapin upang magkasya ang mga ito sa pisara.

Mula sa L-R (pagtingin sa harap, sa gilid ng risistor), ang mga output pin na idinagdag ko ay para sa sensor GPIO wire, ang pangalawang sensor GPIO wire, at ang relay GPIO wire. Sa halip na direktang mga kable sa GPIO, na maaari naming gawin mula sa header, ang mga pin na ito ay kumonekta sa lahat ng aming resistors at, sa kaso ng mga sensor, nagdagdag ako sa isang microLED. (Tandaan kung paano ang LED ay nasa isang ganap na magkakahiwalay na loop, kaya kung masunog ang circuit ay gumagana pa rin.)

Ang naka-attach ay isang Fritzing file, ngunit dahil ang mga Instructable ay nagkakaroon ng mga isyu sa mga pag-upload ng file, kinailangan kong bigyan ito ng maling extension ng "txt" upang mai-embed ito.

Hakbang 10: Mga Sanggunian

Proyekto ng Bubukas ng Pinto ng Raspberry Pi Garage (ang inspirasyon)

Patnubay sa Idiot sa isang Buksan ng Pinto ng Raspberry Pi Garage

iPhone o Android Garage Door Opener

Dapat ba akong gumamit ng risistor o hindi?

Paggamit ng Pullup at Pulldown Resistors sa Raspberry Pi

Pagse-set up ng SSH

Mga Diagram ng Raspberry Pi Pin.

Utos ng SYSFS

Mga KablePi

Mga resistor at LED

Proteksyon (sic) GPIO Pins

Calculator at Tsart ng Code ng Kulay ng Resistor

Hilahin-Up at hilahin Down Resistors

Mga Threshold ng Boltahe ng GPIO

Mga Antas ng Boltahe ng Pag-input ng GPIO

Pagkontrol ng GPIO sa config.txt

GPIO Pull Up Resisance (sic)

Bakit kailangan natin ng panlabas na mga resistors na paghila kung ang mga microcontroller ay may panloob na resistors na paghila?

Ano ang isang Raspberry Pi HAT?

Paano maghinang ang konektor ng Raspberry Pi Zero W GPIO

Inirerekumendang: