Patikimas, saugus, pritaikomas SMS nuotolinio valdymo pultas („Arduino“/„pfodApp“) - nereikia kodavimo: 4 žingsniai
Patikimas, saugus, pritaikomas SMS nuotolinio valdymo pultas („Arduino“/„pfodApp“) - nereikia kodavimo: 4 žingsniai
Anonim
Patikimas, saugus, pritaikomas SMS nuotolinis valdymas („Arduino“/„pfodApp“) - nereikia kodavimo
Patikimas, saugus, pritaikomas SMS nuotolinis valdymas („Arduino“/„pfodApp“) - nereikia kodavimo

2018 m. Liepos 6 d. Atnaujinimas: 3G/2G šio projekto versija, naudojant SIM5320, yra čiaAtnaujinimas: 2015 m. Gegužės 19 d.: Naudokite „pfodParser“bibliotekos 2.5 arba naujesnę versiją. Tai išsprendžia problemą, apie kurią pranešta, kad po įjungimo skydas neturi pakankamai laiko prisijungti prie tinklo

>

>

Įvadas

Kuo pfodSMS nuotolinio valdymo pultas skiriasi nuo kitų diegimų:-

  • Tai patikima-į komandas visada reaguojama, o prarastų pranešimų prašoma iš naujo
  • Jis yra saugus - naudoja 128 bitų apsaugą slaptažodžiu
  • Tam nereikia jokių trečiųjų šalių žiniatinklio paslaugų paskyrų - reikia tik aktyvios SIM kortelės (be smeigtuko)
  • Tai galima pritaikyti - galite naudoti „pfodDesigner“, kad sukurtumėte savo pasirinktinį meniu
  • Tai paprasta - „pfodDesigner“sukuria visą kodą. Jums nereikia atlikti jokio kodavimo.
  • Jis yra lankstus-visi pfod ekranai pasiekiami SMS žinutėmis, pvz., Submeniu, kelių ir vieno pasirinkimo sąrašas, teksto įvedimas, duomenų registravimas ir braižymas.

Žr. „PfodSMS“pranešimų dizainą, kaip SMS ryšys yra patikimas. Išsamią informaciją apie 128 bitų saugumą ieškokite skyriuje „Iššūkių ir atsakų sauga“, prijungtiems prie interneto. Žiūrėkite „pfodDesigner“, „Android“/ „Arduino“meniu „Paprasta“, kad gautumėte išsamią informaciją apie savo pasirinktinio meniu kūrimą. Išsamią informaciją apie visus „pfod“pranešimus ir ekranus, kuriuos galite pridėti patys, rasite pfodSpecification.pdf.

Projekto pavyzdys - SMS karšto vandens valdymas

Kaip pavyzdinis projektas šioje instrukcijoje aprašoma, kaip įjungti ir išjungti karšto vandens šildytuvą SMS žinute ir patikrinti, ar jis įjungtas, ar išjungtas. Norėdami jį įdiegti, jums reikės elektriko.

1 veiksmas: greita pradžia - SMS nuotolinis valdymas

Greita pradžia - SMS nuotolinis valdymas
Greita pradžia - SMS nuotolinis valdymas
Greita pradžia - SMS nuotolinis valdymas
Greita pradžia - SMS nuotolinis valdymas

Čia yra greitas pradžios vadovas, kaip sukurti savo SMS karšto vandens valdiklį.

  1. Įsigykite šiame sąraše esančių dalių..
  2. Įdiekite „Arduino IDE“1.5.8 versiją ir atsisiųskite bei įdiekite „pfodParser“biblioteką.
  3. Atsisiųskite nemokamą „pfodDesigner“.
  4. Sukurkite pasirinktinį meniu, kad įjungtumėte ir išjungtumėte skaitmeninį įvestį naudodami „Android“mobiliojo telefono meniu slankiklį.
  5. Sukurkite kodą, pasirinkdami SeeedStudio SIM900 GPRS skydą kaip ryšį. (Taip pat yra galimybė naudoti „IteadStudio SIM900“skydą).
  6. Perkelkite sugeneruotą kodą iš savo mobiliojo telefono į IDE (išsamesnės informacijos ieškokite pfodAppForAndroidGettingStarted.pdf), pridėkite slaptą slaptažodį, sukompiliuokite ir atsisiųskite į „Arduino Mega 2560“.
  7. Įdėkite SIM kortelę į GPRS skydą ir prijunkite skydą prie „Mega 2560“. Įsitikinkite, kad serijos nuorodos yra nustatytos kaip „Hardware Serial“, kaip parodyta aukščiau.
  8. Prijunkite skaitmeninę išvestį prie kietojo kūno arba įprastos relės tarp D3 ir GND (arba bet kurio kištuko, kurį pasirinkote „pfodDesigner“). Norėdami gauti daugiau informacijos apie relės, žr. Kaip pridėti relių prie „Arduino“.
  9. Prijunkite USB maitinimą prie „Mega“. Bibliotekos kodas įjungia GPRS skydą.
  10. Įdiekite „pfodApp“savo „Android“mobiliajame telefone ir nustatykite SMS ryšį su skydo SIM telefonu Nr. (daugiau informacijos rasite pfodAppForAndroidGettingStarted.pdf). Nustatykite ryšio slaptažodį, jei jį pridėjote.
  11. Prisijunkite ir pamatysite savo pasirinktinį meniu, rodomą SMS žinute. Spustelėkite mygtuką, kad įjungtumėte arba išjungtumėte relę.
  12. Paprašykite savo elektriko įdiegti relę į karšto vandens grandinę ir prijungti USB maitinimo šaltinį, kad būtų galima maitinti „Mega“ir skydą

2 žingsnis: daugiau informacijos

pfodDesigner

„PfodDesigner“sukurs visą kodą, kurio reikia įjungti ir išjungti kietojo kūno ar kitą relę, tačiau SMS ryšys „pfodParser“bibliotekoje palaiko visus „pfod“ekranus, todėl pradėję galite pridėti antrinius meniu, skaitmeninius slankiklius, kelių tekstų slankikliai, teksto įvesties ekranai, duomenų registravimas ir braižymas SMS žinutėmis. Peržiūrėkite visus palaikomus ekranus ir pranešimus pfodSpecification.pdf.

Sukurtas kodas yra čia. Jame nėra raginimo ir tik vienas jungiklis, kad pranešimas būtų trumpas. Ilgi meniu siunčiami keliomis SMS žinutėmis, o tai užtrunka ilgiau. Jei turite ilgą meniu, „pfodParser“bibliotekos sms ryšio kodas viską tvarko už jus.

Norėdami pridėti slaptažodį prie savo SMS ryšio, pakeiskite eilutę

parser.connect (& pfodSMS); // prijungti analizatorių prie SMS srauto prie kažko panašaus į parser.connect (& pfodSMS, F ("173057F7A706AF9BBE65D51122A14CEE"));

bet naudokite savo slaptažodį iki 32 šešioliktainių skaitmenų, 0..9 A.. F. Slaptažodžiai, trumpesni nei 32 šešioliktainiai skaitmenys, užpildyti 0. Peržiūrėkite paprastą „Wi -Fi“/interneto pfodDevice su 128 bitų saugumu („Arduino“), kaip sugeneruoti atsitiktinį slaptažodį ir išvesti jį į QR kodą, kad būtų lengva įvesti „Android“. Taip pat žiūrėkite pfodAppForAndroidGettingStarted.pdf

„PfodDesigner“taip pat sukurs kodą „Bluetooth“ir „Wi -Fi“ryšiams per nuoseklųjį ir eternetą per SPI, visi su pasirenkamu 128 bitų saugumu

pfodApp

Pirmas dalykas, kurį reikia suvokti, yra tai, kad SMS skamba labai blogai ir gali visai nepasirodyti arba neatvykti. Taigi, kai prisijungsite prie „pfodApp“, prieš atsakant į SMS, šiek tiek užtruks. Jei pranešimas prarastas arba vėluoja, „pfodApp“automatiškai jį persiųs po 3 minučių. Po penkių tokių bandymų pfodApp praneš, kad ryšys nutrūko. 3 minutes galite reguliuoti „pfodApp“ryšio redagavimo ekrane.

Jei pridėsite slaptažodį, prieš šešis SMS pranešimus (po tris į kiekvieną pusę), kol „pfodApp“gaus pagrindinį meniu. Šie papildomi pranešimai atsiranda tik pradinio prisijungimo metu, po kurio papildomų pranešimų nėra, kai naudojamas slaptažodis. Taigi pradėkite be slaptažodžio, kad pamatytumėte, jog viskas veikia, ir vėliau pridėkite slaptažodį.

SMS/GPRS skydas

Galimos problemos yra SIM kortelės, apsaugotos PIN numeriais arba neįgaliotos prisijungti prie tinklo. „Pfod“biblioteka automatiškai įjungia GPRS skydą ir ieško atsakymo „pasirengęs skambinti“. Jei atsakymas nepasiekiamas, biblioteka išsijungia ir bando dar kartą, taigi, jei matote, kad GPRS skydo maitinimo lemputė užsidega 20 sekundžių, o tada užgęsta, kyla problemų prisijungiant prie tinklo. Išimkite SIM kortelę ir išbandykite ją įprastu telefonu. Patikrinkite, ar jūsų neprašo PIN kodo.

Jei tai ne problema, turėsite įjungti paleidimo derinimą, kaip aprašyta toliau, kad pamatytumėte, kas vyksta.

„Mega“/ GPRS skydo maitinimas

Skydas nuolatos traukia iki 2A impulsą ir iki 0,5A. Darant prielaidą, kad maitinimas yra 12 V, 0,5 A viršija „Mega“maitinimo šaltinio talpą. Taigi šis skydas neturėtų būti maitinamas iš 7V į 12V įvesties „Mega“. Alternatyva yra maitinti „Mega“ir ekraną per USB jungtį. Naudojau 1A USB maitinimo šaltinį. Bandymams naudojau „Belkin“maitinamą šakotuvą (F4U020), kad būtų išvengta per didelės srovės pritraukimo iš kompiuterio USB prievado.

Norėdami maitinti 12 V akumuliatoriumi, siūlau naudoti kokybišką 1A ar aukštesnės kokybės USB 5V įkroviklį. Kokybiškas automobilių USB 5 V maitinimo šaltinis turėtų būti suprojektuotas taip, kad galėtų valdyti viršįtampio šuolius, atsirandančius automobilių elektros sistemose, ir todėl turėtų būti tinkamas daugumai 12 V įkrovimo sistemų.

Kietojo kūno relė

Kadangi šis pavyzdinis projektas yra karšto vandens šildytuvo valdymas (varžinė apkrova), kietojo kūno relė yra ideali. Jei norite įjungti arba išjungti variklius, paleisti generatorius ir pan., Pasikalbėkite su savo elektriku apie tinkamą relę. Jei jums reikia didelės galios relės, galite naudoti mažą relės pavarą prie arduino plokštės, kad įjungtumėte ir išjungtumėte maitinimo relę.

Yra daug kietojo kūno relės versijų. Įsitikinkite, kad įsigijote tą, kuris gali valdyti jūsų šildytuvo srovę ir įtampą ir gali būti valdomas 5 V nuolatine srove ir keliais miliamperiais, pasiekiamais iš „Arduino“išvesties kaiščio. Čia naudojamas „FOTEK SSR-40 DA“perjungia iki 380 VAC esant 40 amperų įtampai ir yra valdomas bet kokio daugiau nei 3 V nuolatinės srovės ir užima mažiau nei 7 mA.

Turite naudoti radiatorių, o prieš tvirtindami varžtais prie šilumos kriauklės, ant kietojo kūno relės užpakalinės dalies uždėkite ploną tepalo mišinį arba terminį tepalą. Idėja yra visiškai padengti paviršių ploniausiu galvos kriauklės mišinio sluoksniu, kad būtų užpildyti metalo paviršiaus mikroskopiniai slėniai. Įjungus kietojo kūno jungiklį, nukrenta 1,6 V, o tai sukuria 16 vatų šilumos esant 10 amperų. Šilumos kriauklė turi atsikratyti šios šilumos, todėl ją reikia sumontuoti laisvame ore, o ne plastikinėje dėžutėje.

Vėlavimas yra blogas

GPRS skydas bet kuriuo metu siunčia SMS žinutes per serijinį ryšį, o jūsų pagrindinė kilpa () turi skambinti cmd = parser.parse (); dažnai norint apdoroti serijos duomenis prieš užpildant 64 baitų buferį „Arduino“bibliotekos kode ir prarandant duomenis.

Taigi jūs turite užtikrinti, kad jūsų pagrindinė kilpa () veiktų greitai. Niekada nenaudokite „delay“() ir patikrinkite, ar nė vienoje iš jūsų naudojamų bibliotekų nėra vėlavimų. Naudodamas numatytąjį SIM0000 duomenų perdavimo spartą 19200 per „Hardware Serial“, neradau poreikio padidinti buferio dydį „Arduino“bibliotekos kode. Aš nenaudoju programinės įrangos serijos, tik „Serial“ir „Serial1“, „Hardware Serial“jungčių ir beveik visi „pfodApp“siunčiami pranešimai yra labai maži, 10 ar 12 baitų. Tačiau, jei norite, galite padidinti „Arduino“buferio dydį, pakeisdami „HardwareSerial.h“apibrėžimą iš #define SERIAL_BUFFER_SIZE 64 į #define SERIAL_BUFFER_SIZE 128

Tačiau pastebėjau, kad jei įjungiau derinimo išvestį, kaip aprašyta toliau, turėjau turėti labai greitą terminalo ryšio perdavimo spartą, kitaip vėlavimas, atsirandantis siunčiant derinimo pranešimus į terminalą, praleido kai kurias SMS žinutes.

Montavimas

Pridėjau varžto gnybtų skydą, todėl turėjau prie ko prijungti kietojo kūno relės laidus. Aš dar neturėjau savo elektriko įdiegti valdiklio. Jį reikia įdėti į izoliuotą dėžę, tačiau su radiatoriumi, kyšančiu per angą ir prijungtu prie karšto vandens maitinimo laido.

3 veiksmas: pasiūlymai tolesniam patobulinimui - įspėjimai, duomenų registravimas ir braižymas

Aukščiau pateiktas pavyzdinis projektas rodo, kaip vanduo įjungiamas arba išjungiamas, ir leidžia jį perjungti. Tačiau SMS ryšys tvarko visus pfod pranešimus (žr. PfodSpecification.pdf)

Jei prie savo arduino pridėsite temperatūros jutiklį, taip pat galėsite siųsti temperatūros stebėjimą ir reguliariai siųsti rodmenis. Jei norite atsiųsti duomenų skaitymą „Bluetooth“, „Wi -Fi“ar SMS žinutėmis, tiesiog pridėkite kodą, kaip parodyta žemiau esančiame pavyzdyje. Daugiau informacijos ir duomenų registravimo bei braižymo pavyzdžių rasite skyriuje Duomenų registravimas ir braižymas.

parser.println (laikas); parser.print (','); parser.println (temperatūra);

Kai pfodSMS biblioteka pamatys naują eilutę iš println (), ji atsiųs neapdorotus duomenis kaip SMS. Savo mobiliajame telefone tiesiog palikite „pfodApp“veikti fone ir jūsų mobilusis telefonas jums praneš, kai bus gauta SMS. Dar kartą atidarykite „pfodApp“, kad jis būtų rodomas priekyje, tada atidarykite neapdorotų duomenų ekraną mobiliojo telefono meniu, kad pamatytumėte duomenis. Pastaba: „pfodSMS“pranešimai yra UTF-8 simboliai kartu su ryšio ir pranešimų numeriais, koduojami naudojant „Base64“kodavimą, kad jie neatrodytų kaip įprastas tekstas. Išsamią informaciją rasite „pfodSMS“pranešimo dizaine.

Tą patį procesą galite naudoti norėdami siųsti įspėjimą, kai kažkas pasikeičia nuotoliniu būdu. y. parser.println (F („Išorinė temperatūra žemesnė nei 0 ℃“)); Pastaba: ℃ UTF-8 simbolis eilutėje. „pfodSMS“perduoda visus UTF-8 simbolius į „pfodApp“.

4 veiksmas: derinimas naudojant SMS ryšį „PfodParser“bibliotekoje

Derinimas naudojant SMS ryšį „PfodParser“bibliotekoje
Derinimas naudojant SMS ryšį „PfodParser“bibliotekoje
Derinimas naudojant SMS ryšį „PfodParser“bibliotekoje
Derinimas naudojant SMS ryšį „PfodParser“bibliotekoje

„PfodDesigner“sukuria veikiantį kodą, tačiau galbūt norėsite derinti savo papildomą kodą arba pažvelgti į tai, kas vyksta GPRS skydo paleidimo metu arba gaunant SMS žinutes. Galite pasinaudoti keliais būdais.

Derinkite savo kodą

Jei derinate savo kodą, galite tiesiog pakomentuoti pfodSMS eilutę ir prijungti analizatorių prie serijos, tada nuimti GPRS skydą ir paleisti „Mega“iš „Arduino“terminalo. y., pakeiskite sąranką () į

//pfodSMS.init(&Serial, 9); // nepaleiskite GPRS skydo analizatoriaus.connect (& Serial); // prijunkite analizatorių prie serijos, o ne SMS srauto

Tada iš „Arduino“terminalo galite įvesti {.}, Kad „Mega“grąžintų pagrindinį meniu ir tada atsiųstų komandą, kurią norite vykdyti, pvz. {A`1}, kad įjungtumėte relę, ir {A`0}, kad ją išjungtumėte. („PfodApp“paprastai siunčia šiuos pranešimus jums spustelėjus slankiklį.) Tada pridėkite papildomą derinimo analizatorių parser.println (), kad galėtumėte stebėti, kokį papildomą kodą daro.

GPRS skydo stebėjimas

Jei norite pamatyti, ką veikia GPRS skydas. Kaip jis prasideda, gauna SMS žinutes ir tt Tada reikia pakeisti skydo laidus, prijunkite jį prie „Mega Serial1“(serijinis) ir atlaisvinkite serijinį (USB) ryšį derinimui išvesti į „Arduino IDE Monitor“.

Norėdami prijungti GPRS ekraną prie „Mega 2560 Serial1“, pašalinkite aukščiau pateiktas nuorodas ir pridėkite laidus prie „Mega“TX1 ir RX1 kaiščių.

Tada pakeiskite sąrankos () kodą į

void setup () {Serial1.begin (19200); // pakeisti Serial į Serial 1 Serial.begin (57600); // PASTABA greitą USB serijos prievado perdavimo spartą // į „Arduino IDE“monitorių. for (int i = 3; i> 0; i--) {// palaukite kelias sekundes ir pažiūrėkite, ar mums užprogramuotas atidėjimas (1000); } pinMode (cmd_A_pin, OUTPUT); pfodSMS.setDebugStream (& Serial); // reikia tai padaryti prieš skambinant pfod_SMS.init // ar bet kuriam kitam pfod_SMS metodo iškvietimui // inicijuoti SMS ir prijungti analizatorių // kitą eilutę pakeisti į Serial1 pfodSMS.init (& Serial1, 9); // prijungti matytą GPRS skydą V2 prie Serial1 vietoj Serial parser.setDebugStream (& Serial); // tai reikia padaryti prieš parser.connect // arba bet kurį kitą analizatoriaus metodą, skambinant parser.connect (& pfodSMS); // prijungti analizatorių prie SMS srauto}

Dabar galite atšaukti kai kuriuos derinimo nustatymus „pfodParser“bibliotekoje, esančioje faile pfodSMS_SIM900.cpp.

Pavyzdžiui, atšaukti komentarus #define DEBUG_SETUPatspausdins (į derinimo srautą), kas vyksta, kai įjungiamas GPRS skydas ir ruošiamasi priimti SMS žinutes.

Jei nekomentuosite #define DEBUG, gausite daug informacijos apie gaunamas SMS žinutes.

Viskas !