- Mga Materyal na Kinakailangan
- Gumagana ang Sound Sensor
- Pagsukat ng Frequency ng Audio sa Oscilloscope
- Whistle Detector Arduino Circuit Diagram
- Pagsukat ng Dalas kasama ng Arduino
- Pagprograma ng iyong Arduino para sa pagtuklas ng sipol
- Gumagawa ang Arduino Whistle Detector
Bilang isang bata ako ay nabighani ng isang laruang music car na napalitaw kapag pumalakpak ka, at pagkatapos na ako ay lumaki naisip ko kung maaari ba nating magamit ang pareho upang i-toggle ang mga ilaw at tagahanga sa aming tahanan. Napakagaling na buksan lamang ang aking Mga Tagahanga at ilaw sa pamamagitan lamang ng pagpalakpak ng mga kamay sa halip na paglakad ang aking tamad na sarili sa switch board. Ngunit madalas na ito ay hindi gumagalaw dahil ang circuit na ito ay tutugon sa anumang malakas na ingay sa kapaligiran, tulad ng isang malakas na radyo o para sa mower ng aking kapitbahay. Kahit na ang pagbuo ng isang clap switch ay isang masaya ring proyekto na dapat gawin.
Noon, nang makita ko ang pamamaraang Pagtuklas ng Whistle na kung saan matutukoy ng circuit para sa sipol. Ang isang sipol hindi tulad ng ibang mga tunog ay magkakaroon ng pare-parehong dalas para sa isang partikular na tagal at kaya maaaring makilala mula sa pagsasalita o musika. Kaya sa tutorial na ito matututunan natin kung paano makilala ang tunog ng sipol sa pamamagitan ng pag-interfaced ng Sound Sensor sa Arduino at kapag nakita ang isang sipol ay magpapalipat- lipat kami ng isang AC lamp sa pamamagitan ng isang relay. Sa paraan malalaman din natin kung paano ang mga signal ng tunog ay natatanggap ng mikropono at kung paano sukatin ang dalas gamit ang Arduino. Tunog kagiliw-giliw na tama kaya't magsimula tayo sa Arduino batay sa Home Automation Project.
Mga Materyal na Kinakailangan
- Arduino UNO
- Modyul ng Sensor ng Sound
- Relay Module
- AC Lampara
- Mga Koneksyon sa Mga Wires
- Breadboard
Gumagana ang Sound Sensor
Bago kami sumisid sa koneksyon ng hardware at code para sa Home Automation Project na ito, tingnan muna natin ang sound sensor. Ang sensor ng tunog na ginamit sa modyul na ito ay ipinapakita sa ibaba. Ang prinsipyo ng pagtatrabaho ng karamihan sa mga tunog na sensor na magagamit sa merkado ay katulad nito, kahit na ang pagbabago ay maaaring magbago nang kaunti.
Tulad ng alam natin na ang bahagi ng primitive sa isang sound sensor ay ang mikropono. Ang mikropono ay uri ng transducer kung saan ang mga converter ay nagpapalakas ng mga alon ng tunog (acoustical na enerhiya) sa elektrikal na enerhiya. Karaniwan ang dayapragm sa loob ng mikropono ay nag-i-vibrate sa mga alon ng tunog sa himpapawid na gumagawa ng signal ng kuryente sa output pin nito. Ngunit ang mga signal na ito ay magiging napakababa ng lakas (mV) at samakatuwid ay hindi maaaring maproseso nang direkta ng isang microcontroller tulad ng Arduino. Sa pamamagitan din ng default ang mga signal ng tunog ay analog sa likas na katangian samakatuwid ang output mula sa mikropono ay magiging isang sine wave na may variable frequency, ngunit ang mga microcontroller ay mga digital na aparato at kaya't mas mahusay itong gumagana sa square wave.
Upang palakasin ang mga mababang signal signal sine at i-convert ito sa square waves ang module ay gumagamit ng on-board LM393 Comparator module tulad ng ipinakita sa itaas. Ang mababang boltahe na audio output mula sa mikropono ay ibinibigay sa isang pin ng kumpara sa pamamagitan ng isang amplifier transistor habang ang isang sanggunian na boltahe ay nakatakda sa kabilang pin gamit ang isang boltahe divider circuit na kinasasangkutan ng isang potensyomiter. Kapag ang boltahe ng output ng audio mula sa mikropono ay lumampas sa preset na boltahe, ang kumpare ay mataas sa 5V (operating boltahe), kung hindi man ay mananatiling mababa ang kumpare sa 0V. Sa ganitong paraan ang mababang signal sine wave ay maaaring maging converter sa high voltage (5V) square wave. Ang snapshot ng oscilloscope sa ibaba ay nagpapakita ng pareho kung saan ang dilaw na alon ay ang mababang signal sine wave at ang asul ay ang output square wave. Angang kontrol ay maaaring makontrol sa pamamagitan ng pag-iba ng potensyomiter sa modyul.
Pagsukat ng Frequency ng Audio sa Oscilloscope
Ang module ng tunog sensor na ito ay babaguhin ang mga sound wave sa himpapawid sa square square kung sino ang dalas ay magiging katumbas ng dalas ng mga sound wave. Kaya sa pamamagitan ng pagsukat ng dalas ng square square mahahanap natin ang dalas ng mga signal ng tunog sa himpapawid. Upang matiyak na gumagana ang mga bagay tulad ng inaakala kong konektado ko ang sound sensor sa aking saklaw upang alamin ang output signal nito tulad ng ipinakita sa video sa ibaba.
Binuksan ko ang mode ng pagsukat sa aking saklaw upang masukat ang dalas at gumamit ng isang Android application (Frequency Sound Generator) mula sa Play Store upang makabuo ng mga signal ng tunog ng kilalang dalas. Tulad ng nakikita mo sa itaas na GID, nasusukat ng saklaw ang mga signal ng tunog na may isang disenteng kawastuhan, ang halaga ng dalas na ipinapakita sa saklaw ay napakalapit sa isang ipinakita sa aking telepono. Ngayon, na alam nating gumagana ang module ay nagpapatuloy sa pag- interfaces ng Sound sensor sa Arduino.
Whistle Detector Arduino Circuit Diagram
Ang kumpletong diagram ng circuit para sa Arduino Whistle Detector Switch circuit gamit ang Sound Sensor ay ipinapakita sa ibaba. Ang circuit ay iginuhit gamit ang Fritzing software.
Ang Sound sensor at ang Relay module ay pinalakas ng 5V pin ng Arduino. Ang output pin ng Sound sensor ay konektado sa digital pin 8 ng Arduino, ito ay dahil sa pagmamay-ari ng timer ng pin na iyon at tatalakayin namin ang higit pa tungkol dito sa seksyon ng programa. Ang module ng Relay ay na-trigger ng pin 13 na konektado din sa built-in na LED sa UNO board.
Sa bahagi ng suplay ng AC ang walang kinikilingan na kawad ay direktang konektado sa Karaniwang (C) pin ng module ng Relay habang ang Phase ay konektado sa Normally Open (NO) pin ng relay sa pamamagitan ng AC load (light bombilya). Sa ganitong paraan kapag ang relay ay napalitaw ang NO pin ay konektado sa C pin at sa gayon ang ilaw bombilya ay mamula. Iba pa ang blub ay mananatiling naka-off. Kapag nagawa na ang mga koneksyon, ganito ang hitsura ng aking hardware.
Babala: Ang pagtatrabaho sa AC circuit ay maaaring mapanganib, maging maingat habang paghawak ng mga live na wires at maiwasan ang mga maikling circuit. Inirerekomenda ang isang circuit breaker o pangangasiwa ng may sapat na gulang para sa mga taong hindi nakaranas ng electronics. Binalaan ka !!
Pagsukat ng Dalas kasama ng Arduino
Katulad ng aming saklaw na pagbabasa ng dalas ng mga papasok na square square, kailangan naming i-program ang Arduino upang makalkula ang dalas. Natutunan na namin kung paano gawin ito sa aming tutorial na Frequency Counter gamit ang pag-andar ng pulso. Ngunit sa tutorial na ito gagamitin namin ang Freqmeasure library upang masukat ang dalas upang makakuha ng tumpak na mga resulta. Gumagamit ang library na ito ng panloob na timer makagambala sa pin 8 upang sukatin kung gaano katagal ang isang pulso ay mananatiling ON. Kapag nasusukat ang oras maaari nating kalkulahin ang dalas gamit ang mga formula F = 1 / T. Gayunpaman dahil direkta kaming gumagamit ng silid-aklatan hindi namin kailangang makarating sa mga detalye ng rehistro at matematika kung paano sinusukat ang dalas. Maaaring ma-download ang library mula sa link sa ibaba:
- Library ng Sukat ng Frequency ng pjrc
Mag-download ang link sa itaas ng isang zip file, maaari mong idagdag ang zip file na ito sa iyong Arduino IDE sa pamamagitan ng pagsunod sa daanan ng Sketch -> Isama ang Library -> Idagdag.ZIP Library.
Tandaan: Ang paggamit ng library ay hindi pagaganahin ang pag- andar ng analogWrite sa pin 9 at 10 sa UNO dahil ang timer ay sasakupin ng library na ito. Gayundin ang mga pin na ito ay magbabago kung ibang mga board ang ginamit.
Pagprograma ng iyong Arduino para sa pagtuklas ng sipol
Ang kumpletong programa na may isang Video na Pagpapakita ay matatagpuan sa ilalim ng pahinang ito. Sa heading na ito ay ipapaliwanag ko ang programa sa pamamagitan ng paghiwalay nito sa maliit na mga snippet.
Tulad ng laging sinisimulan namin ang programa sa pamamagitan ng pagsasama ng mga kinakailangang aklatan at pagdedeklara ng mga kinakailangang variable. Tiyaking naidagdag mo na ang FreqMeasure.h library na tulad ng ipinaliwanag sa itaas na heading. Ang variable na estado ay kumakatawan sa estado ng LED at ang variable ng dalas at pagpapatuloy ay ginagamit upang output ang sinusukat dalas at ang pagpapatuloy ayon sa pagkakabanggit.
# isama
Sa loob ng walang bisa na pag- andar ng pag- setup , sinisimulan namin ang serial monitor sa 9600 baud rate para sa pag-debug. Pagkatapos ay gamitin ang FreqMeasure.begin () function upang simulan ang pin 8 para sa pagsukat ng dalas. Ipinahayag din namin na ang pin 13 (LED_BUILTIN) ay output.
void setup () { Serial.begin (9600); FreqMeasure.begin (); // Mga panukala sa pin 8 sa pamamagitan ng default pinMode (LED_BUILTIN, OUTPUT); }
Sa loob ng walang katapusang loop , patuloy kaming nakikinig sa pin 8 gamit ang pagpapaandar na FreqMeasure.available (). Kung may isang papasok na signal sinusukat namin ang dalas gamit ang FreqMeasure.read (). Upang maiwasan ang error dahil sa ingay sumusukat kami ng 100 mga sample at kumuha ng isang average ng na. Ang code na gawin ang pareho ay ipinapakita sa ibaba.
kung (FreqMeasure.available ()) { // average ng maraming pagbabasa nang magkasama sum = sum + FreqMeasure.read (); bilangin = bilang + 1; kung (count> 100) { frequency = FreqMeasure.countToFrequency (kabuuan / bilang); Serial.println (dalas); kabuuan = 0; bilangin = 0; } }
Maaari mong gamitin ang pagpapaandar ng Serial.println () dito upang suriin ang halaga ng dalas para sa iyong sipol. Sa aking kaso ang natanggap na halagang mula sa 1800Hz hanggang 2000Hz. Ang dalas ng sipol ng karamihan sa mga tao ay mahuhulog sa partikular na saklaw na ito. Ngunit kahit na ang iba pang mga tunog tulad ng musika o boses ay maaaring mahulog sa ilalim ng dalas na ito upang makilala ang mga ito susubaybayan namin ang pagpapatuloy. Kung ang dalas ay tuluy-tuloy para sa 3 beses pagkatapos ay kumpirmahin namin ito na isang tunog ng sipol. Kaya, kung ang dalas ay nasa pagitan ng 1800 hanggang 2000 kung gayon pinapalaki natin ang variable na tinatawag na pagpapatuloy.
kung (dalas> 1800 && dalas <2000) {pagpapatuloy ++; Serial.print ("Pagpapatuloy ->"); Serial.println (pagpapatuloy); dalas = 0;}
Kung ang halaga ng pagpapatuloy ay umabot o lumampas sa tatlo, pagkatapos ay binabago namin ang estado ng LED sa pamamagitan ng pag-toggle ng variable na tinawag na estado. Kung totoo na ang estado binago natin ito sa hindi totoo at kabaligtaran.
kung (pagpapatuloy> = 3 && estado == maling) {estado = totoo; pagpapatuloy = 0; Serial.println ("Binuksan ang Liwanag"); antala (1000);} kung (pagpapatuloy> = 3 && estado == totoo) {state = false; pagpapatuloy = 0; Serial.println ("Mapatay na Napatay"); antala (1000);}
Gumagawa ang Arduino Whistle Detector
Kapag handa na ang code at hardware maaari na nating simulang subukan ito. Siguraduhin na ang mga koneksyon ay tama at paganahin ang module. Buksan ang serial monitor at simulan ang pagsipol, mapapansin mo ang halaga ng pagpapatuloy na nadagdagan at sa wakas ay i-on o i-off ang Lampara. Ang isang sample na shot ng aking serial monitor ay ipinapakita sa ibaba.
Kapag sinabi ng serial monitor na Ang ilaw ay naka-on ang pin 13 ay gagawin nang mataas at ang relay ay mai-trigger upang i-on ang Lampara. Katulad nito ang ilaw ay papatayin kapag sinabi ng serial monitor na Napatay ang ilaw . Kapag nasubukan mo na ang pagtatrabaho maaari mong mapagana ang set-up gamit ang isang 12V adapter at simulang kontrolin ang iyong AC Home Appliance gamit ang sipol.
Ang kumpletong pagtatrabaho ng proyektong ito ay matatagpuan sa video na naka- link sa ibaba. Inaasahan kong naintindihan mo ang tutorial at nasiyahan sa pag-aaral ng bago. Kung mayroon kang anumang problema sa pagkuha ng mga bagay na gumagana, iwanan ang mga ito sa seksyon ng komento o gamitin ang aming forum para sa iba pang mga teknikal na quair.