Maaasahan, Ligtas, Nako-customize na Remote Control ng SMS (Arduino / pfodApp) - Walang Kinakailangan na Coding: 4 na Hakbang
Maaasahan, Ligtas, Nako-customize na Remote Control ng SMS (Arduino / pfodApp) - Walang Kinakailangan na Coding: 4 na Hakbang
Anonim
Maaasahan, Ligtas, Nako-customize na Remote Control ng SMS (Arduino / pfodApp) - Walang Kinakailangan na Coding
Maaasahan, Ligtas, Nako-customize na Remote Control ng SMS (Arduino / pfodApp) - Walang Kinakailangan na Coding

I-update ang ika-6 ng Hulyo 2018: Ang isang bersyon na 3G / 2G ng proyektong ito, na gumagamit ng SIM5320, ay magagamit dito

Update: Ika-19 ng Mayo 2015: Gumamit ng pfodParser library Bersyon 2.5 o mas mataas. Inaayos nito ang isang naiulat na problema ng hindi pinapayagan ang sapat na oras para sa kalasag upang kumonekta sa network pagkatapos ng pag-up up

Panimula

Paano naiiba ang remote control ng pfodSMS mula sa iba pang mga pagpapatupad: -

  • Ito ay Maaasahan - ang mga utos ay palaging tumugon sa at nawalang mga mensahe ay muling hiniling
  • Ito ay Secure - gumagamit ng 128 bit na proteksyon ng password
  • Hindi ito nangangailangan ng anumang mga account ng serbisyo sa web ng third party - nangangailangan lamang ng aktibong SIM card (nang walang isang pin)
  • Napapasadya ito - maaari mong gamitin ang pfodDesigner upang lumikha ng pagmamay-ari ng pasadyang menu
  • Madali ito - bumubuo ang pfodDesigner ng lahat ng code. Hindi mo kailangang gumawa ng anumang pag-coding.
  • Ito ay Flexible - lahat ng mga screen ng pfod ay magagamit sa pamamagitan ng SMS, tulad ng mga sub-menu, multi at solong listahan ng pagpipilian, pag-input ng teksto, pag-log ng data at paglalagay.

Tingnan ang disenyo ng mensahe ng pfodSMS kung paano ginawang mapagkakatiwalaan ang koneksyon sa SMS. Tingnan ang Hamon at Seguridad ng Tugon para sa konektadong Internet na mga pfodDevices para sa mga detalye ng seguridad ng 128bit. Tingnan ang mga menu ng pfodDesigner, Android / Arduino na ginawa Simple para sa mga detalye sa pagdidisenyo ng iyong sariling pasadyang menu. Tingnan ang pfodSpecification.pdf para sa mga detalye ng lahat ng mga mensahe at screen ng pfod na maaari mong idagdag ang iyong sarili.

Halimbawa ng Proyekto - Pagkontrol sa SMS na Hot Water

Bilang isang halimbawa ng proyekto na itinuturo na ito ay naglalarawan kung paano i-on at i-off ang iyong pampainit ng tubig sa pamamagitan ng SMS at suriin kung ito ay naka-on o naka-off. Kakailanganin mo ng isang elektrisista upang mai-install ito.

Hakbang 1: Mabilis na Pagsisimula - Remote Control ng SMS

Mabilis na Pagsisimula - Remote Control ng SMS
Mabilis na Pagsisimula - Remote Control ng SMS
Mabilis na Pagsisimula - Remote Control ng SMS
Mabilis na Pagsisimula - Remote Control ng SMS

Narito ang isang mabilis na gabay sa pagsisimula sa pagbuo ng iyong sariling kontrol sa mainit na tubig sa SMS.

  1. Bilhin ang mga bahagi sa listahang ito..
  2. I-install ang bersyon ng Arduino IDE 1.5.8 at i-download at i-install ang pfodParser library..
  3. I-download ang libreng pfodDesigner.
  4. Idisenyo ang iyong pasadyang menu upang i-on at i-off ang isang digital input mula sa isang slider ng menu sa iyong Android mobile.
  5. Bumuo ng code, piliin ang SeeedStudio SIM900 GPRS kalasag bilang koneksyon. (Mayroon ding pagpipilian para sa kalasag ng IteadStudio SIM900).
  6. Ilipat ang nabuong code mula sa iyong mobile sa IDE (tingnan ang pfodAppForAndroidGettingStarted.pdf para sa mga detalye), idagdag ang iyong lihim na password, sumulat at mag-download sa Arduino Mega 2560.
  7. I-install ang iyong SIM card sa kalasag ng GPRS at isaksak ang kalasag sa Mega 2560. Siguraduhin na ang mga Serial na link ay nakatakda sa Hardware Serial tulad ng ipinakita sa itaas..
  8. Ikonekta ang digital na output sa solidong estado, o normal, relay sa pagitan ng D3 at GND (o alinmang pin ang pinili mo sa pfodDesigner). Tingnan ang Paano Magdagdag ng Mga Relay sa Arduino para sa higit pang mga detalye sa mga relay..
  9. Mag-apply ng USB power sa Mega. Pinapagana ng code ng library ang kalasag ng GPRS para sa iyo..
  10. I-install ang pfodApp sa iyong Android mobile at mag-set up ng isang koneksyon sa SMS sa no telepono ng kalasag. (tingnan ang pfodAppForAndroidGettingStarted.pdf para sa mga detalye). Itakda ang password para sa koneksyon kung nagdagdag ka ng isa..
  11. Kumonekta at makita ang iyong pasadyang menu na ipinapakita sa pamamagitan ng SMS. I-click ang pindutan upang i-on o i-off ang relay..
  12. Kunin ang iyong elektrisyan upang mai-install ang relay sa iyong Hot Water circuit at i-wire ang suplay ng kuryente ng USB upang mapagana ang Mega at kalasag

Hakbang 2: Maraming Detalye

pfodDesigner

Lilikha ang pfodDesigner ng lahat ng code na kailangan mo upang i-on at i-off ang solidong estado o ilang pag-relay, ngunit sinusuportahan ng koneksyon ng SMS sa pfodParser library ang lahat ng mga screen ng pfod kaya kapag nagsimula ka na maaari kang magdagdag ng mga sub-menu, mga numerong slider, mga multi-text slider, mga input screen ng teksto, pag-log ng data at paglalagay ng lahat sa pamamagitan ng SMS. Suriin ang pfodSpecification.pdf para sa lahat ng mga screen at mensahe na suportado.

Narito ang nabuong code. Wala itong prompt at isang solong switch upang mapanatili ang maikling mensahe. Ang mga mahahabang menu ay ipinapadala sa pamamagitan ng maraming mga mensahe sa SMS na mas matagal bago dumating. Kung mayroon kang isang mahabang menu, ang sms koneksyon code sa pfodParser library ang humahawak sa lahat ng ito para sa iyo.

Upang magdagdag ng isang password sa iyong koneksyon sa SMS baguhin ang linya

parser.connect (& pfodSMS); // ikonekta ang parser sa SMS streamto sa isang bagay tulad ng parser.connect (& pfodSMS, F ("173057F7A706AF9BBE65D51122A14CEE"));

ngunit gamitin ang iyong sariling password ng hanggang sa 32 hex digit, 0..9 A.. F. Ang mga password ay mas maikli pagkatapos 32 hex digit ay naka-pad na may 0's. Tingnan ang Isang Simpleng Wifi / Internet pfodDevice na may 128bit security (Arduino) para sa kung paano makabuo ng isang random na password at mai-output ito sa isang QR code para sa madaling pag-input sa iyong Android. Tingnan din ang pfodAppForAndroidGettingStarted.pdf

Ang pfodDesigner ay bubuo din ng code para sa mga koneksyon sa bluetooth at wifi sa pamamagitan ng Serial at Ethernet sa pamamagitan ng SPI lahat na may opsyonal na seguridad ng 128bit

pfodApp

Ang unang bagay na mapagtanto ay ang SMS ay sloooow at maaaring hindi makarating doon sa lahat o dumating sa labas ng kaayusan. Kaya't kapag nakakonekta ka sa pfodApp magkakaroon ng ilang pagkaantala bago magkaroon ng isang tugon sa SMS. Kung nawala o naantala ang mensahe, awtomatikong magpapadala ito ng pfodApp pagkatapos ng 3mins. Pagkatapos ng 5 nasabing pagsubok na muli ang sasabihin sa iyo ng pfodApp na nawala ang koneksyon. Maaari mong ayusin ang oras na 3mins sa screen ng pag-edit ng koneksyon ng pfodApp.

Kung nagdagdag ka ng isang password pagkatapos ay mayroong isang anim na mga mensahe sa SMS (tatlo sa bawat paraan) bago ang pangunahing menu ay natanggap ng pfodApp. Ang mga sobrang mensahe na ito ay nangyayari lamang sa paunang koneksyon pagkatapos na walang mga labis na mensahe kapag gumagamit ng isang password. Kaya magsimula nang walang password upang makita na gumagana ang bawat bagay at pagkatapos ay idagdag ang password sa ibang pagkakataon.

SMS / GPRS kalasag

Ang mga posibleng problema ay ang mga SIM card na protektado ng mga pin number o hindi pinahintulutang kumonekta sa network. Awtomatikong binibigyan ng library ng pfod ang kalasag ng GPRS at hinahanap ang tugon na 'handa nang tumawag'. Kung ang tugon na iyon ay hindi dumating ang kapangyarihan ng library ay bumaba at subukang muli, kaya kung nakikita mo ang ilaw ng kuryente sa kalasag ng GPRS na nagpapatuloy sa 20sec at pagkatapos ay patayin, mayroong isang problema sa pagkonekta sa network. Ilabas ang SIM at subukan ito sa isang normal na telepono. Suriin na hindi ka sinenyasan para sa isang numero ng pin.

Kung hindi iyon ang problema, kakailanganin mong i-on ang start-up na pag-debug, tulad ng inilarawan sa ibaba, upang makita kung ano ang nangyayari.

Pagpapatakbo ng kalasag ng Mega / GPRS

Ang kalasag ay gumuhit ng hanggang sa 2A pulsed at hanggang sa 0.5A na tuloy-tuloy. Ipagpalagay na isang 12V na supply ng baterya, ang 0.5A ay lumampas sa kapasidad ng Mega sa suplay ng kuryente sa board. Kaya't ang kalasag na ito ay HINDI dapat pinalakas mula sa 7V hanggang 12V na input sa Mega. Ang kahalili ay upang paganahin ang Mega at kalasag sa pamamagitan ng koneksyon sa USB. Gumamit ako ng isang supply ng 1A USB. Para sa pagsubok ginamit ko ang isang hub na pinapatakbo ng Belkin (F4U020) upang maiwasan ang pagguhit ng sobrang kasalukuyang mula sa USB port ng aking computer.

Para sa isang supply ng baterya na 12V, iminumungkahi ko ang paggamit ng isang kalidad na Automotive USB 5V charger, 1A, o mas mataas. Ang isang kalidad ng supply ng Automotive USB 5V ay dapat na idinisenyo upang mahawakan ang boltahe na mga spike na nagaganap sa mga de-koryenteng sistema ng kotse at sa gayon ay dapat na angkop para sa karamihan sa mga 12V na system ng pagsingil.

Solid State Relay

Dahil ang halimbawang proyekto na ito ay ang pagkontrol sa isang pampainit ng Hot Water, (isang resistive load), perpekto ang isang relay ng Solid State. Kung nais mong buksan o i-off ang mga motor, simulan ang mga generator atbp, kausapin ang iyong elektrisyan tungkol sa isang angkop na relay para sa trabaho. Kung kailangan mo ng isang mataas na power relay maaari kang gumamit ng isang maliit na relay drive ng arduino board upang i-on at i-off ang power relay.

Mayroong maraming mga bersyon solid state relay magagamit. Siguraduhin na bumili ka sa na maaaring hawakan ang kasalukuyang at boltahe ng iyong heater at maaaring makontrol ng 5V dc at ng ilang mga milliamp magagamit mula sa Arduino output pin. Ang ginamit dito, FOTEK SSR-40 DA, lumilipat hanggang sa 380VAC sa 40Amps at kinokontrol ng anumang bagay higit pa sa 3V dc at tumatagal ng mas mababa sa 7mA.

Dapat kang gumamit ng isang heat sink at dapat kang maglagay ng isang Payat na pahid ng compound ng heat sink o thermal grease sa likuran ng solidong relay ng estado bago i-bolting ito sa heat sink. Ang ideya ay upang ganap na takpan ang ibabaw ng pinakapayat na layer ng head sink compound upang punan ang mga mikroskopikong lambak sa ibabaw ng metal. Kapag binuksan ang solidong paglipat ng estado ay bumaba ng 1.6V na bumubuo ng 16Watts ng init sa 10Amps. Ang heat sink ay kailangang alisin ang init na ito kaya kailangan itong mai-mount sa libreng hangin na wala sa loob ng isang plastic box.

Ang pagkaantala ay Masama

Naghahatid ang kalasag ng GPRS ng mga mensahe sa SMS sa pamamagitan ng koneksyon ng Serial anumang oras at ang iyong pangunahing loop () ay dapat tumawag sa cmd = parser.parse (); madalas upang maproseso ang Serial data bago ang 64byte buffer sa Arduino library code ay napunan at nawala ang data.

Kaya dapat mong panatilihin ang iyong pangunahing loop () na tumatakbo nang mabilis. Hindi ka dapat gumamit ng pagkaantala () at dapat suriin na wala sa mga aklatan na iyong ginagamit ang may pagkaantala sa kanila. Gamit ang default na rate ng 19200 baud ng SIM900 sa pamamagitan ng Hardware Serial, hindi ko nahanap na kinakailangan upang madagdagan ang laki ng buffer sa Arduino library code. Hindi ako gumagamit ng Serial ng Software, ang Serial at Serial1 lamang, mga koneksyon sa Serial ng Hardware, at halos lahat ng mga mensahe na ipinapadala ng pfodApp ay napakaliit, 10 o 12 byte. Gayunpaman maaari mong taasan ang laki ng buffer ng Arduino, kung nais mo, sa pamamagitan ng pagbabago ng kahulugan sa HardwareSerial.h mula sa # tukuyin ang SERIAL_BUFFER_SIZE 64 hanggang # tukuyin ang SERIAL_BUFFER_SIZE 128

Gayunpaman ang nahanap ko ay kung pinagana ko ang output ng pag-debug, tulad ng inilarawan sa ibaba, kailangan kong magkaroon ng napakabilis na rate ng baud para sa koneksyon sa terminal kung hindi man ang pagkaantala na ipinakilala sa pamamagitan ng pagpapadala ng mga mensahe ng pag-debug sa terminal na sanhi ng mga bahagi ng mga mensahe sa SMS na hindi nakuha..

Pag-install

Nagdagdag ako ng isang kalasag na terminal ng tornilyo kaya't mayroon akong isang bagay upang ikonekta ang mga Solid State relay wires. Hindi ko pa nai-install ang aking elektrisista ang controller. Kailangan itong ilagay sa isang insulated box, ngunit may heat sink na dumidikit sa pamamagitan ng isang puwang at naka-wire sa tingga ng mainit na lakas ng tubig.

Hakbang 3: Mga Mungkahi para sa Karagdagang Mga Pagpapahusay - Mga Alerto, Pag-log ng Data at Plotting

Ang halimbawa ng proyekto sa itaas ay ipinapakita lamang ay kung paano naka-on o naka-off ang tubig at pinapayagan kang ilipat ito. Ngunit pinangangasiwaan ng koneksyon ng SMS ang lahat ng mga mensahe ng pfod (tingnan ang pfodSpecification.pdf)

Kung nagdagdag ka ng sensor ng temperatura sa iyong arduino maaari mo ring ipadala ang monitor sa temperatura at ipadala ang pagbabasa sa mga regular na agwat. Upang maibalik ang isang pagbabasa ng data ay pareho para sa Bluetooth, wifi o SMS, idagdag lamang ang code tulad ng sample sa ibaba. Tingnan ang Pag-log ng Data at Plotting para sa higit pang mga detalye at halimbawa ng pag-log ng data at paglalagay.

parser.println (oras); parser.print (','); parser.println (temperatura);

Kapag nakita ng library ng pfodSMS ang bagong linya mula sa println (), ipapadala nito ang raw data bilang isang SMS. Sa iyong mobile, iwanan lamang ang pfodApp na tumatakbo sa background at aabisuhan ka ng iyong mobile kapag natanggap ang isang SMS. Buksan muli ang pfodApp upang dalhin ito sa harap at pagkatapos buksan ang screen ng Raw Data mula sa menu ng mobile upang makita ang data. Tandaan: Ang mga mensahe ng pfodSMS ay mga character na UTF-8 kasama ang mga numero ng koneksyon at mensahe, naka-encode gamit ang isang pag-encode ng Base64 upang hindi sila magmukhang normal na teksto. Tingnan ang disenyo ng mensahe ng pfodSMS para sa lahat ng mga detalye.

Maaari mong gamitin ang parehong proseso upang magpadala ng isang alerto kapag may isang bagay na nagbabago nang malayuan. ibig sabihin, parser.println (F ("Labas na Temperatura sa ibaba 0 ℃")); Tandaan: ang character UTF-8 na character sa string. Ipinapasa ng pfodSMS ang lahat ng mga character na UTF-8 sa pfodApp.

Hakbang 4: Pag-debug Habang Ginagamit ang Koneksyon sa SMS sa PfodParser Library

Pag-debug Habang Ginagamit ang Koneksyon ng SMS sa PfodParser Library
Pag-debug Habang Ginagamit ang Koneksyon ng SMS sa PfodParser Library
Pag-debug Habang Ginagamit ang Koneksyon ng SMS sa PfodParser Library
Pag-debug Habang Ginagamit ang Koneksyon ng SMS sa PfodParser Library

Ang pfodDesigner ay bumubuo ng code na gumagana, ngunit maaaring gusto mong i-debug ang iyong sariling dagdag na code o tingnan kung ano ang nangyayari habang nagsisimula o tumatanggap ng mga mensahe sa SMS ang kalasag ng GPRS. Mayroong isang pares ng mga diskarte na maaari mong gawin.

Pag-debug ng iyong sariling code

Kung ikaw ay nagde-debug ng iyong sariling code maaari mo lamang na puna ang linya ng pfodSMS at ikonekta ang parser sa Serial at pagkatapos ay alisin ang kalasag ng GPRS at patakbuhin ang Mega mula sa Arduino terminal. ibig sabihin, baguhin ang setup () sa

//pfodSMS.init(&Serial, 9); // huwag simulan ang GPRS Shield parser.connect (& Serial); // ikonekta ang parser sa Serial sa halip na SMS stream

Pagkatapos mula sa terminal ng Arduino maaari kang mag-type sa {.} Upang makuha ang Mega upang ibalik ang pangunahing menu at pagkatapos ay ipadala ang pabalik na utos na nais mong ipatupad, hal. {A`1} upang i-on ang relay at {A`0} upang i-off ito. (Karaniwang nagpapadala ang pfodApp ng mga mensaheng ito para sa iyo kapag na-click mo ang slider.) Pagkatapos ay magdagdag ng labis na pag-debug ng parser.println () upang subaybayan kung ano ang ginagawa ng labis na idinagdag na code.

Pagsubaybay sa kalasag ng GPRS

Kung nais mong makita kung ano ang ginagawa ng kalasag ng GPRS. Paano ito nagsisimula, tumatanggap ng mga SMS msgs atbp Pagkatapos ay kailangan mong baguhin ang mga kable ng kalasag ikonekta ito sa Mega Serial1 (serial isa) at palayain ang koneksyon ng Serial (USB) para sa output ng debug sa Arduino IDE Monitor.

Upang ikonekta ang kalasag ng GPRS sa Mega 2560 Serial1, alisin ang mga link na ipinakita sa itaas at at idagdag ang mga wire sa TX1 at RX1 na mga pin ng Mega.

Pagkatapos baguhin ang setup () code sa

void setup () {Serial1.begin (19200); // baguhin ang Serial sa Serial 1 Serial.begin (57600); // TANDAAN ang mabilis na rate ng baud para sa USB Serial port // sa monitor ng Arduino IDE. para sa (int i = 3; i> 0; i--) {// maghintay ng ilang segundo upang makita kung napaprograma kami ng pagkaantala (1000); } pinMode (cmd_A_pin, OUTPUT); pfodSMS.setDebugStream (& Serial); // kailangang gawin ito bago pfod_SMS.init // o anumang iba pang pfod_SMS na paraan ng pagtawag // simulan ang SMS at ikonekta ang parser // baguhin ang susunod na linya sa Serial1 pfodSMS.init (& Serial1, 9); // ikonekta ang Nakitang GPRS kalasag V2 sa Serial1 sa halip na Serial parser.setDebugStream (& Serial); // kailangang gawin ito bago ang parser.connect // o anumang iba pang paraan ng parser na tumawag sa parser.connect (& pfodSMS); // ikonekta ang parser sa SMS stream}

Ngayon ay maaari mong i-unsment ang ilan sa mga setting ng Pag-debug sa pfodParser library sa hanggang sa pfodSMS_SIM900.cpp file.

Halimbawa un-commenting #define DEBUG_SETUPwill print out (to the debug stream) kung ano ang nangyayari habang pinapagana ang kalasag ng GPRS at hinahanda itong tumanggap ng mga SMS msgs.

Ang hindi pagkomento sa #define DEBUGwill magbibigay ng maraming impormasyon sa mga natanggap na mensahe sa SMS.

Ayan yun !