Kazalo:

Zanesljiv, varen, prilagodljiv daljinski upravljalnik SMS (Arduino/pfodApp) - kodiranje ni potrebno: 4 koraki
Zanesljiv, varen, prilagodljiv daljinski upravljalnik SMS (Arduino/pfodApp) - kodiranje ni potrebno: 4 koraki

Video: Zanesljiv, varen, prilagodljiv daljinski upravljalnik SMS (Arduino/pfodApp) - kodiranje ni potrebno: 4 koraki

Video: Zanesljiv, varen, prilagodljiv daljinski upravljalnik SMS (Arduino/pfodApp) - kodiranje ni potrebno: 4 koraki
Video: Is Travelling by Motorhome DANGEROUS? Our Top Tips for Motorhome Security in Europe. 2024, Julij
Anonim
Zanesljiv, varen, prilagodljiv daljinski upravljalnik SMS (Arduino/pfodApp) - kodiranje ni potrebno
Zanesljiv, varen, prilagodljiv daljinski upravljalnik SMS (Arduino/pfodApp) - kodiranje ni potrebno

Posodobitev 6. julij 2018: Različica tega projekta 3G/2G z uporabo kartice SIM5320 je na voljo tukaj

Posodobitev: 19. maj 2015: Uporabite knjižnico pfodParser različice 2.5 ali novejše. Odpravlja prijavljeno težavo, saj po vklopu ne dopušča dovolj časa, da se ščit poveže z omrežjem

Uvod

V čem se daljinski upravljalnik pfodSMS razlikuje od drugih izvedb:-

  • Je zanesljiv-na ukaze se vedno odzove in izgubljena sporočila znova zahtevajo
  • Je varen - uporablja 128 -bitno zaščito z geslom
  • Ne zahteva nobenih računov spletnih storitev tretjih oseb - potrebuje le aktivno kartico SIM (brez pin -a)
  • Prilagodljiv je - s pfodDesigner lahko ustvarite lasten meni po meri
  • Preprosto je - pfodDesigner ustvari vso kodo. Ni vam treba kodirati.
  • Je prilagodljiv-vsi zasloni pfod so na voljo prek SMS-a, na primer podmeniji, več in en sam izbirni seznam, vnos besedila, beleženje podatkov in risanje.

Za podrobnosti o 128 -bitni zaščiti glejte zasnovo sporočil pfodSMS. Za podrobnosti o oblikovanju lastnega menija po meri glejte pfodDesigner, menije za Android / Arduino, ki so preprosti, za podrobnosti o vseh sporočilih in zaslonih pfod, ki jih lahko dodate sami.

Primer projekta - SMS nadzor tople vode

Kot primer projekta ta priročnik opisuje, kako vklopiti in izklopiti grelnik tople vode prek SMS -a ter preveriti, ali je vklopljen ali izklopljen. Za njegovo namestitev potrebujete električarja.

1. korak: Hitri začetek - SMS daljinski upravljalnik

Hitri začetek - SMS daljinski upravljalnik
Hitri začetek - SMS daljinski upravljalnik
Hitri začetek - SMS daljinski upravljalnik
Hitri začetek - SMS daljinski upravljalnik

Tukaj je kratek priročnik za izgradnjo lastnega SMS -regulacije tople vode.

  1. Kupite dele na tem seznamu.
  2. Namestite Arduino IDE različice 1.5.8 in prenesite ter namestite knjižnico pfodParser.
  3. Prenesite brezplačni program pfodDesigner.
  4. Oblikujte meni po meri, da vklopite in izklopite digitalni vnos z drsnika menija na mobilnem telefonu Android.
  5. Ustvarite kodo in za povezavo izberite SeeedStudio SIM900 GPRS ščit. (Obstaja tudi možnost za ščit IteadStudio SIM900).
  6. Ustvarjeno kodo prenesite iz mobilnega telefona v IDE (za podrobnosti glejte pfodAppForAndroidGettingStarted.pdf), dodajte svoje skrivno geslo, prevedite in prenesite v Arduino Mega 2560.
  7. Vstavite kartico SIM v ščit GPRS in priključite ščit v Mega 2560. Poskrbite, da so serijske povezave nastavljene na Hardware Serial, kot je prikazano zgoraj.
  8. Digitalni izhod priključite na polprevodniški ali normalni rele med D3 in GND (ali kateri koli pin, ki ste ga izbrali v pfodDesignerju). Za več podrobnosti o relejih glejte Kako dodati releje v Arduino.
  9. Priključite USB na Mega. Koda knjižnice vam vklopi ščit GPRS.
  10. Namestite pfodApp na mobilno napravo Android in vzpostavite povezavo SMS s ščitnikom sim telefona št. (za podrobnosti glejte pfodAppForAndroidGettingStarted.pdf). Nastavite geslo za povezavo, če ste ga dodali.
  11. Povežite se in poiščite meni po meri, prikazan prek SMS -a. Pritisnite gumb za vklop ali izklop releja.
  12. Naj vaš električar namesti rele v vaš krog tople vode in priklopi napajalnik USB za napajanje Mega in ščita

2. korak: Več podrobnosti

pfodDesigner

PfodDesigner bo ustvaril vso kodo, ki jo potrebujete za vklop in izklop polprevodniškega ali drugega releja, vendar povezava SMS v knjižnici pfodParser podpira vse zaslone pfod, tako da lahko, ko začnete, dodate podmenije, številske drsnike, drsniki za več besedil, zasloni za vnos besedila, beleženje podatkov in načrtovanje vse prek SMS-a. Za vse podprte zaslone in sporočila si oglejte pfodSpecification.pdf.

Ustvarjena koda je tukaj. Nima poziva in samo eno stikalo, da sporočilo ostane kratko. Dolgi meniji se pošiljajo prek več sporočil SMS, ki prispejo dlje. Če imate dolg meni, koda za sms povezavo v knjižnici pfodParser obravnava vse to namesto vas.

Če želite v povezavo SMS dodati geslo, spremenite linijo

parser.connect (& pfodSMS); // povežemo razčlenjevalnik s tokom SMS na nekaj podobnega parser.connect (& pfodSMS, F ("173057F7A706AF9BBE65D51122A14CEE"));

vendar uporabite svoje geslo z največ 32 šestnajstiškimi števkami, 0..9 A.. F. Gesla, krajša od 32 šestnajstiških številk, so obložena z 0. Glejte Enostavna naprava Wi -Fi/Internet pfodDevice z 128 -bitno zaščito (Arduino), kako ustvariti naključno geslo in ga vnesti v kodo QR za enostaven vnos v vaš Android. Glejte tudi pfodAppForAndroidGettingStarted.pdf

PfodDesigner bo ustvaril tudi kodo za povezave bluetooth in wifi prek serijskega in etherneta prek SPI, vse z dodatno 128 -bitno zaščito

pfodApp

Najprej se morate zavedati, da je SMS zamuden in morda sploh ne bo prišel tja ali prišel iz reda. Torej, ko se povežete s pfodApp, bo prišlo do nekaj zamika, preden pride do odgovora SMS. Če se je sporočilo izgubilo ali zamudilo, ga bo pfodApp samodejno ponovno poslal po 3 minutah. Po 5 takšnih poskusih bo pfodApp povedal, da je povezava prekinjena. Na zaslonu za urejanje povezave pfodApp lahko nastavite 3 minute časa.

Če dodate geslo, obstaja šest sporočil SMS (tri v vsako smer), preden pfodApp sprejme glavni meni. Ta dodatna sporočila se pojavijo le ob začetni povezavi, po kateri pri uporabi gesla ni dodatnih sporočil. Zato začnite brez gesla, da vidite, ali vse deluje, nato pa geslo dodajte pozneje.

Ščit za SMS/GPRS

Možne težave so, da so kartice SIM zaščitene s številkami pin ali nimajo dovoljenja za povezavo z omrežjem. Knjižnica pfod samodejno vklopi ščit GPRS in išče odgovor "pripravljen za klic". Če ta odgovor ne prispe, se knjižnica izklopi in poskusi znova, zato če lučka za vklop na ščitu GPRS zasveti 20 sekund in nato ugasne, je pri vzpostavljanju povezave z omrežjem težava. Vzemite kartico SIM in jo preizkusite v običajnem telefonu. Preverite, ali ste pozvani k vnosu PIN -a.

Če to ni problem, boste morali vklopiti odpravljanje napak ob zagonu, kot je opisano spodaj, da vidite, kaj se dogaja.

Napajanje Mega / GPRS ščita

Ščit črpa do 2A impulzno in do 0,5A neprekinjeno. Ob napajanju z 12V baterijo 0,5A presega zmogljivost napajalnika Mega na krovu. Zato tega ščita NE smete napajati iz vhoda 7V do 12V na Mega. Druga možnost je, da napajate Mega in ščit prek povezave USB. Uporabil sem napajalnik USB 1A. Za testiranje sem uporabil zvezdišče, ki ga poganja Belkin (F4U020), da preprečim črpanje prekomernega toka iz vrat USB računalnika.

Za napajanje 12V baterije predlagam uporabo kakovostnega avtomobilskega polnilnika USB 5V, 1A ali višjega. Kakovosten avtomobilski napajalnik USB 5V mora biti zasnovan tako, da bo obvladal previsoke napetosti, ki se pojavijo v električnih sistemih avtomobilov, zato bi moral biti primeren za večino 12V polnilnih sistemov.

Polprevodniški rele

Ker ta primer projekta krmili grelnik tople vode (uporovna obremenitev), je polprevodniški rele idealen. Če želite vklopiti ali izklopiti motorje, zagnati generatorje itd., Se z električarjem pogovorite o ustreznem releju za to delo. Če potrebujete rele velike moči, lahko za vklop in izklop releja za napajanje uporabite majhen relejski pogon ob arduino plošči.

Na voljo je veliko različic polprevodniških relejev. Prepričajte se, da kupite tisto, ki lahko obvlada tok in napetost vašega grelnika in jo lahko nadzorujete s 5 V enosmernega toka in nekaj miliamperov, ki so na voljo iz izhodnega zatiča Arduino. Ta, ki ga uporabljamo tukaj, FOTEK SSR-40 DA, preklopi na 380VAC pri 40A in ga nadzira karkoli več kot 3V dc in traja manj kot 7mA.

Uporabiti morate hladilnik in na zadnjo stran polprevodniškega releja nanesti tanek odsek spojine hladilnega telesa ali termične masti. Zamisel je, da površino popolnoma pokrijemo z najtanjšo plastjo spojine za umivalnik, da zapolnimo mikroskopske doline na kovinski površini. Ko vklopite polprevodniško stikalo, pade 1,6 V, kar ustvari 16 vatov toplote pri 10 amperih. Hladilnik se mora znebiti te toplote, zato ga je treba namestiti na prostem zraku in ne v plastični škatli.

Zamude so zlo

Ščit GPRS kadar koli pošlje SMS sporočila prek serijske povezave in vaša glavna zanka () mora poklicati cmd = parser.parse (); pogosto za obdelavo serijskih podatkov, preden se 64 -bajtni vmesnik v kodi knjižnice Arduino napolni in se podatki izgubijo.

Zato morate hitro ohraniti svojo glavno zanko (). Nikoli ne uporabljajte delay () in preverite, ali nobena od knjižnic, ki jih uporabljate, nima zamud. Z uporabo privzete hitrosti prenosa 19200 za kartico SIM900 prek serijske opreme strojne opreme se mi ni zdelo potrebno povečati velikosti vmesnega pomnilnika v kodi knjižnice Arduino. Ne uporabljam serijske programske opreme, samo serijske in serijske1, strojne serijske povezave in skoraj vsa sporočila, ki jih pošlje pfodApp, so zelo majhna, 10 ali 12 bajtov. Če želite, lahko velikost vmesnega pomnilnika Arduino povečate tako, da spremenite definicijo v HardwareSerial.h iz #define SERIAL_BUFFER_SIZE 64 v #define SERIAL_BUFFER_SIZE 128

Vendar sem ugotovil, da sem moral, če sem omogočil izhod za odpravljanje napak, kot je opisano spodaj, imeti zelo hitro hitrost prenosa za priključek terminala..

Namestitev

Dodal sem ščitnik z vijačnimi sponkami, tako da sem imel na kaj priključiti žice polprevodniškega releja. Električarja še nisem namestil. Postaviti ga je treba v izolirano škatlo, vendar s hladilnikom, ki štrli skozi režo in je ožičen v napajalni vod za toplo vodo.

3. korak: predlogi za nadaljnje izboljšave - opozorila, beleženje podatkov in načrtovanje

Zgornji primer projekta samo prikazuje, kako je voda vklopljena ali izklopljena in vam omogoča, da jo preklopite. Toda povezava SMS obravnava vsa sporočila pfod (glejte pfodSpecification.pdf)

Če v arduino dodate temperaturni senzor, lahko tudi pošljete nadzor temperature in v rednih časovnih presledkih pošljete nazaj odčitke. Če želite poslati podatke nazaj, je enako za bluetooth, wifi ali SMS, samo dodajte kodo, kot je spodnji vzorec. Za več podrobnosti in primere beleženja podatkov in risb glejte Zapisovanje podatkov in načrtovanje.

parser.println (čas); parser.print (','); parser.println (temperatura);

Ko knjižnica pfodSMS vidi novo vrstico iz println (), bo poslala neobdelane podatke kot SMS. V mobilnem telefonu pustite pfodApp v ozadju in vaš mobilni telefon vas bo obvestil, ko prejmete SMS. Ponovno odprite pfodApp, da ga prikažete, nato pa v meniju mobilnega telefona odprite zaslon surovih podatkov, da si ogledate podatke. Opomba: Sporočila pfodSMS so znaki UTF-8 skupaj s številkami povezav in sporočil, kodirana z uporabo kodiranja Base64, tako da niso videti kot običajno besedilo. Za vse podrobnosti glejte oblikovanje sporočil pfodSMS.

Z istim postopkom lahko pošljete opozorilo, ko se kaj spremeni na daljavo. parser.println (F ("Zunanja temperatura pod 0 ℃")); Opomba: znak ℃ UTF-8 v nizu. pfodSMS posreduje vse znake UTF-8 v pfodApp.

4. korak: Odpravljanje napak med uporabo povezave SMS v knjižnici PfodParser

Odpravljanje napak med uporabo povezave SMS v knjižnici PfodParser
Odpravljanje napak med uporabo povezave SMS v knjižnici PfodParser
Odpravljanje napak med uporabo povezave SMS v knjižnici PfodParser
Odpravljanje napak med uporabo povezave SMS v knjižnici PfodParser

PfodDesigner ustvari kodo, ki deluje, vendar boste morda želeli odpraviti napako v svoji kodi ali pogledati, kaj se dogaja, ko se ščit GPRS zažene ali prejema sporočila SMS. Obstaja nekaj pristopov, ki jih lahko uporabite.

Odpravljanje napak pri lastni kodi

Če odpravljate napake v svoji kodi, lahko preprosto komentirate vrstico pfodSMS in povežete razčlenjevalnik s serijsko, nato odstranite ščit GPRS in zaženete Mega s terminala Arduino. torej spremenite setup () v

//pfodSMS.init(&Serial, 9); // ne zaženite parserja zaščite GPRS.connect (& Serial); // namesto pretoka SMS povežemo razčlenjevalnik s serijskim

Nato lahko s terminala Arduino vnesete {.}, Da Mega vrne glavni meni in nato pošlje ukaz za nazaj, ki ga želite izvesti, npr. {A`1} za vklop releja in {A`0} za izklop. (PfodApp vam običajno pošlje ta sporočila, ko kliknete drsnik.) Nato dodajte dodatno odpravljanje napak parser.println (), da spremljate, kaj počne dodatna koda, ki ste jo dodali.

Nadzor ščita GPRS

Če želite videti, kaj počne ščit GPRS. Kako se zažene, prejema sporočila SMS itd. Nato morate spremeniti ožičenje ščita in ga priključiti na Mega Serial1 (serijsko) in sprostiti serijsko (USB) povezavo za odpravljanje napak na monitorju Arduino IDE.

Če želite ščit GPRS povezati z Mega 2560 Serial1, odstranite zgornje povezave in žice dodajte na nožice Mega TX1 in RX1.

Nato spremenite kodo setup () v

void setup () {Serial1.begin (19200); // spremenim serijsko v serijsko 1 Serial.begin (57600); // OPOMBA hitra hitrost prenosa podatkov za serijska vrata USB // na monitor Arduino IDE. for (int i = 3; i> 0; i--) {// počakajte nekaj sekund, da vidite, ali smo programirani zakasnitev (1000); } pinMode (cmd_A_pin, OUTPUT); pfodSMS.setDebugStream (& Serijski); // to je treba storiti pred pfod_SMS.init // ali katerim koli drugim klicem metode pfod_SMS // inicializirati SMS in povezati razčlenjevalnik // spremeniti naslednjo vrstico v Serial1 pfodSMS.init (& Serial1, 9); // povežemo Seeed GPRS shield V2 s Serial1 namesto s Serial parser.setDebugStream (& Serial); // to je treba storiti pred parser.connect // ali klicem katere koli druge metode razčlenjevalnika parser.connect (& pfodSMS); // poveži razčlenjevalnik s tokom SMS}

Zdaj lahko razkomentirate nekatere nastavitve odpravljanja napak v knjižnici pfodParser na naslovu datoteke pfodSMS_SIM900.cpp.

Na primer, ko ne komentirate #define DEBUG_SETUP bo natisnil (v tok za odpravljanje napak), kaj se dogaja, ko vklopite ščit GPRS in ga pripravite za sprejemanje sporočil SMS.

Če ne komentirate #define DEBUG bo dal veliko informacij o prejetih sporočilih SMS.

To je to!

Priporočena: