Cuprins:

Telecomandă SMS de încredere, sigură și personalizabilă (Arduino / pfodApp) - nu este necesară codificarea: 4 pași
Telecomandă SMS de încredere, sigură și personalizabilă (Arduino / pfodApp) - nu este necesară codificarea: 4 pași

Video: Telecomandă SMS de încredere, sigură și personalizabilă (Arduino / pfodApp) - nu este necesară codificarea: 4 pași

Video: Telecomandă SMS de încredere, sigură și personalizabilă (Arduino / pfodApp) - nu este necesară codificarea: 4 pași
Video: Trucul pentru a face o persoana sa se îndragosteasca de tine 2024, Iulie
Anonim
Telecomandă de încredere, sigură, personalizabilă prin SMS (Arduino / pfodApp) - nu este necesară codificarea
Telecomandă de încredere, sigură, personalizabilă prin SMS (Arduino / pfodApp) - nu este necesară codificarea

Actualizare 6 iulie 2018: O versiune 3G / 2G a acestui proiect, utilizând SIM5320, este disponibilă aici

Actualizare: 19 mai 2015: Utilizați biblioteca pfodParser versiunea 2.5 sau mai mare. Remediază o problemă raportată de a nu permite suficient timp ca ecranul să se conecteze la rețea după pornire

Introducere

În ce diferență telecomanda pfodSMS de alte implementări: -

  • Este fiabil - comenzile primesc întotdeauna răspuns și mesajele pierdute sunt solicitate din nou
  • Este sigur - folosește protecție prin parolă pe 128 biți
  • Nu necesită conturi de servicii web terțe părți - are nevoie doar de cartelă SIM activă (fără pin)
  • Este personalizabil - puteți utiliza pfodDesigner pentru a vă crea propriul meniu personalizat
  • Este ușor - pfodDesigner generează tot codul. Nu trebuie să faceți nicio codare.
  • Este flexibil - toate ecranele pfod sunt disponibile prin SMS, cum ar fi submeniuri, listă de selecție multiplă și unică, introducere text, înregistrare date și reprezentare grafică.

Consultați proiectarea mesajelor pfodSMS pentru modul în care conexiunea SMS devine fiabilă. A se vedea Securitatea provocării și răspunsului pentru dispozitivele pfod conectate la Internet pentru detalii despre securitatea pe 128 biți. Consultați meniurile pfodDesigner, Android / Arduino simplificate pentru detalii despre proiectarea propriului meniu personalizat. Consultați pfodSpecification.pdf pentru detaliile tuturor mesajelor și ecranelor pfod pe care le puteți adăuga singur.

Exemplu de proiect - control al apei calde prin SMS

Ca exemplu de proiect, acest instructiv descrie cum să porniți și să opriți încălzitorul de apă caldă prin SMS și să verificați dacă este pornit sau oprit. Veți avea nevoie de un electrician pentru ao instala.

Pasul 1: Pornire rapidă - Telecomandă SMS

Pornire rapidă - Telecomandă SMS
Pornire rapidă - Telecomandă SMS
Pornire rapidă - Telecomandă SMS
Pornire rapidă - Telecomandă SMS

Iată un ghid de pornire rapidă pentru construirea propriului control SMS al apei calde.

  1. Cumpărați piesele din această listă..
  2. Instalați Arduino IDE versiunea 1.5.8 și descărcați și instalați biblioteca pfodParser..
  3. Descărcați pfodDesigner gratuit.
  4. Proiectați meniul personalizat pentru a activa sau dezactiva o intrare digitală dintr-un glisor de meniu de pe telefonul dvs. Android.
  5. Generați codul, selectând ecranul SeeedStudio SIM900 GPRS ca conexiune. (Există, de asemenea, o opțiune pentru scutul IteadStudio SIM900).
  6. Transferați codul generat de pe mobil pe IDE (consultați pfodAppForAndroidGettingStarted.pdf pentru detalii), adăugați parola secretă, compilați și descărcați pe Arduino Mega 2560.
  7. Instalați cartela SIM în ecranul GPRS și conectați ecranul la Mega 2560. Asigurați-vă că legăturile seriale sunt setate la Hardware Serial așa cum se arată mai sus..
  8. Conectați ieșirea digitală la releul de stare solidă, sau normal, între D3 și GND (sau care pin ați ales vreodată în pfodDesigner). Consultați Cum se adaugă relee la Arduino pentru mai multe detalii despre relee..
  9. Aplicați alimentare USB la Mega. Codul bibliotecii alimentează scutul GPRS pentru dvs…
  10. Instalați pfodApp pe mobilul dvs. Android și configurați o conexiune SMS la telefonul SIM al scutului nr. (consultați pfodAppForAndroidGettingStarted.pdf pentru detalii). Setați parola pentru conexiune dacă ați adăugat una..
  11. Conectați-vă și vedeți meniul personalizat afișat prin SMS. Faceți clic pe buton pentru a porni sau opri releul..
  12. Puneți electricianul dvs. să instaleze releul în circuitul de apă caldă și să conectați sursa de alimentare USB pentru a alimenta Mega și ecranul

Pasul 2: mai multe detalii

pfodDesigner

PfodDesigner va genera tot codul de care aveți nevoie pentru a activa sau dezactiva starea solidă sau un alt releu, dar conexiunea SMS din biblioteca pfodParser acceptă toate ecranele pfod, astfel încât, odată ce ați început, puteți adăuga submeniuri, glisoare numerice, glisoare multi-text, ecrane de introducere a textului, înregistrarea datelor și graficarea tuturor prin SMS. Consultați pfodSpecification.pdf pentru toate ecranele și mesajele acceptate.

Codul generat este aici. Nu are niciun prompt și doar un singur comutator pentru a menține mesajul scurt. Meniurile lungi sunt trimise prin mai multe mesaje SMS, care durează mai mult până la sosire. Dacă aveți un meniu lung, codul de conexiune sms din biblioteca pfodParser gestionează toate acestea pentru dvs.

Pentru a adăuga o parolă la conexiunea dvs. SMS modificați linia

parser.connect (& pfodSMS); // conectați parserul la fluxul SMS la ceva de genul parser.connect (& pfodSMS, F ("173057F7A706AF9BBE65D51122A14CEE"));

dar utilizați propria parolă de până la 32 de cifre hexazecime, 0..9 A.. F. Parolele mai scurte de 32 de cifre hexagonale sunt completate cu 0. Consultați un dispozitiv Wifi / Internet pfod simplu cu securitate pe 128 biți (Arduino) pentru a afla cum să generați o parolă aleatorie și să o scoateți într-un cod QR pentru o introducere ușoară pe Android. De asemenea, consultați pfodAppForAndroidGettingStarted.pdf

PfodDesigner va genera, de asemenea, cod pentru conexiuni bluetooth și wifi prin Serial și Ethernet prin SPI, toate cu securitate opțională pe 128 biți

pfodApp

Primul lucru pe care trebuie să-l realizăm este că SMS-urile sunt slabe și s-ar putea să nu ajungă deloc acolo sau să nu ajungă din uz. Deci, atunci când vă conectați cu pfodApp, va exista o anumită întârziere înainte de a exista un răspuns SMS. Dacă mesajul s-a pierdut sau a întârziat, pfodApp îl va retrimite automat după 3 minute. După 5 astfel de încercări, pfodApp vă va spune că conexiunea este pierdută. Puteți regla timpul de 3 minute în ecranul de editare a conexiunii pfodApp.

Dacă adăugați o parolă, există șase mesaje SMS (trei în fiecare sens) înainte ca meniul principal să fie primit de pfodApp. Aceste mesaje suplimentare se întâmplă numai la conexiunea inițială, după care nu există mesaje suplimentare atunci când utilizați o parolă. Deci, începeți fără o parolă pentru a vedea că fiecare lucru funcționează și apoi adăugați parola mai târziu.

Scut SMS / GPRS

Problemele posibile sunt cartelele SIM protejate prin numere PIN sau neautorizate să se conecteze la rețea. Biblioteca pfod pornește automat scutul GPRS și caută răspunsul „gata de apel”. Dacă răspunsul respectiv nu ajunge, biblioteca se oprește și încearcă din nou, deci dacă vedeți lumina de alimentare de pe ecranul GPRS aprindeți 20 de secunde și apoi se stinge, există o problemă la conectarea la rețea. Scoateți cartela SIM și încercați-o pe un telefon normal. Verificați dacă nu vi se solicită un număr PIN.

Dacă nu aceasta este problema, va trebui să activați depanarea la pornire, așa cum este descris mai jos, pentru a vedea ce se întâmplă.

Alimentarea scutului Mega / GPRS

Scutul trage până la 2A pulsat și până la 0,5A continuu. Presupunând o sursă de baterie de 12V, 0,5A depășește capacitatea sursei de alimentare Mega la bord. Deci acest scut NU ar trebui să fie alimentat de la intrarea de 7V la 12V de pe Mega. Alternativa este alimentarea Mega și a ecranului prin conexiunea USB. Am folosit o sursă USB de 1A. Pentru testare am folosit un hub alimentat de Belkin (F4U020) pentru a preveni extragerea curentului excesiv din portul USB al computerului meu.

Pentru o baterie de 12V, vă recomand să utilizați un încărcător USB de 5V de calitate, 1A sau mai mare. O sursă de alimentare USB de 5V pentru vehicule de calitate ar trebui să fie proiectată pentru a face față vârfurilor de supratensiune care apar în sistemele electrice ale mașinii și astfel ar trebui să fie potrivită pentru majoritatea sistemelor de încărcare de 12V.

Releu de stare solidă

Deoarece acest exemplu de proiect controlează un încălzitor de apă caldă (o sarcină rezistivă), un releu de stare solidă este ideal. Dacă doriți să porniți sau să opriți motoarele, porniți generatoare etc., discutați cu electricianul despre un releu adecvat pentru serviciu. Dacă aveți nevoie de un releu de mare putere, puteți utiliza un releu mic de pe placa arduino pentru a porni și opri releul de alimentare.

Există mai multe versiuni cu releu de stare solidă disponibile. Asigurați-vă că ați achiziționat un dispozitiv care poate gestiona curentul și tensiunea încălzitorului dvs. și poate fi controlat de 5V c.c. și de câțiva miliamperi disponibili de la pinul de ieșire Arduino. Cel folosit aici, FOTEK SSR-40 DA, comută până la 380VAC la 40Amps și este controlat de orice altceva mai mult de 3V dc și durează mai puțin de 7mA.

Trebuie să utilizați un radiator și trebuie să aplicați un frotiu subțire de compus pentru radiator sau grăsime termică pe partea din spate a releului în stare solidă înainte de a-l înșuruba pe radiator. Ideea este să acoperiți complet suprafața cu cel mai subțire strat de compus pentru chiuvetă pentru a umple văile microscopice din suprafața metalului. Când este pornit, comutatorul în stare solidă scade 1,6 V, ceea ce generează 16 W de căldură la 10 amp. Chiuveta este necesară pentru a scăpa de această căldură, deci trebuie montată în aer liber, nu într-o cutie de plastic.

Întârzierile sunt rele

Scutul GPRS livrează oricând mesajele SMS prin conexiunea Serial și bucla principală () trebuie să apeleze cmd = parser.parse (); deseori pentru a procesa datele Seriale înainte ca bufferul de 64 de biți din biblioteca Arduino să se umple și datele să se piardă.

Deci, trebuie să păstrați bucla principală () rulând rapid. Nu trebuie să utilizați niciodată delay () și să verificați dacă niciuna dintre bibliotecile pe care le utilizați nu are întârzieri în ele. Folosind rata implicită de 19200 baud a SIM900 prin Hardware Serial, nu am găsit necesară creșterea dimensiunii bufferului în codul bibliotecii Arduino. Nu folosesc Software Serial, doar Serial și Serial1, conexiuni Hardware Serial și aproape toate mesajele trimise de pfodApp sunt foarte mici, 10 sau 12 octeți. Cu toate acestea, puteți crește dimensiunea bufferului Arduino, dacă doriți, modificând definirea din HardwareSerial.h de la #define SERIAL_BUFFER_SIZE 64 la #define SERIAL_BUFFER_SIZE 128

Totuși, ceea ce am găsit a fost că, dacă am activat ieșirea de depanare, așa cum este descris mai jos, trebuia să am o rată de transmisie foarte rapidă pentru conexiunea terminalului, altfel întârzierea introdusă prin trimiterea mesajelor de depanare către terminal a cauzat pierderea unor părți din mesajele SMS.

Instalare

Am adăugat un ecran cu borne cu șurub, așa că aveam ceva la care să conectez firele releului de stare solidă. Încă nu am solicitat electricianului meu instalarea controlerului. Trebuie să fie introdus într-o cutie izolată, dar cu radiator scos printr-o fantă și conectat la cablul de alimentare cu apă caldă.

Pasul 3: Sugestii pentru îmbunătățiri ulterioare - Alerte, înregistrare date și reprezentare grafică

Exemplul de proiect de mai sus este doar modul în care apa este pornită sau oprită și vă permite să o comutați. Dar conexiunea SMS gestionează toate mesajele pfod (consultați pfodSpecification.pdf)

Dacă adăugați senzor de temperatură la arduino, puteți trimite și monitoriza temperatura și trimite înapoi citiri la intervale regulate. Pentru a trimite înapoi o citire a datelor este la fel pentru bluetooth, wifi sau SMS, trebuie doar să adăugați codul ca exemplul de mai jos. Consultați Înregistrarea și graficarea datelor pentru mai multe detalii și exemple de înregistrare și graficare a datelor.

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

Când biblioteca pfodSMS vede noua linie din println (), va trimite datele brute ca SMS. Pe telefonul mobil, lăsați pfodApp să ruleze în fundal, iar telefonul dvs. mobil vă va anunța când primiți un SMS. Deschideți din nou pfodApp pentru ao aduce în față și apoi deschideți ecranul Raw Data din meniul mobilului pentru a vedea datele. Notă: Mesajele pfodSMS sunt caractere UTF-8, împreună cu numerele de conexiune și de mesaje, codificate folosind o codificare Base64, astfel încât să nu arate ca un text normal. Consultați proiectarea mesajelor pfodSMS pentru toate detaliile.

Puteți utiliza același proces pentru a trimite o alertă atunci când ceva se schimbă de la distanță. adică parser.println (F („Temperatura exterioară sub 0 ℃”)); Notă: caracterul ℃ UTF-8 din șir. pfodSMS trece toate caracterele UTF-8 către pfodApp.

Pasul 4: Depanare în timpul utilizării conexiunii SMS din biblioteca PfodParser

Depanare în timpul utilizării conexiunii SMS în biblioteca PfodParser
Depanare în timpul utilizării conexiunii SMS în biblioteca PfodParser
Depanare în timpul utilizării conexiunii SMS în biblioteca PfodParser
Depanare în timpul utilizării conexiunii SMS în biblioteca PfodParser

PfodDesigner generează cod care funcționează, dar poate doriți să depanați propriul cod suplimentar sau să vă uitați la ce se întâmplă în timp ce scutul GPRS pornește sau primește mesaje SMS. Există câteva abordări pe care le puteți lua.

Depanarea propriului cod

Dacă depanați propriul cod, puteți doar să comentați linia pfodSMS și să conectați parserul la Serial, apoi scoateți scutul GPRS și rulați Mega de la terminalul Arduino. adică schimbați setarea () în

//pfodSMS.init(&Serial, 9); // nu porniți scutul GPRS parser.connect (& Serial); // conectați parser la Serial în loc de flux SMS

Apoi, de la terminalul Arduino puteți introduce {.} Pentru ca Mega să returneze meniul principal și apoi să trimiteți înapoi comanda pe care doriți să o executați, de ex. {A`1} pentru a porni releul și {A`0} pentru a-l opri. (De obicei, pfodApp vă trimite aceste mesaje când faceți clic pe glisor.) Apoi adăugați depanare suplimentară parser.println () pentru a monitoriza ce cod suplimentar ați adăugat.

Monitorizarea ecranului GPRS

Dacă doriți să vedeți ce face scutul GPRS. Cum pornește, primește mesaje SMS etc. Apoi, trebuie să schimbați cablajul ecranului, conectați-l la Mega Serial1 (serial) și eliberați conexiunea Serial (USB) pentru ieșirea de depanare la Arduino IDE Monitor.

Pentru a conecta ecranul GPRS la Mega 2560 Serial1, eliminați link-urile prezentate mai sus și adăugați firele la pinii Mega TX1 și RX1.

Apoi schimbați codul setup () în

void setup () {Serial1.begin (19200); // schimbați Serial la Serial 1 Serial.begin (57600); // REMARCAȚI viteza de transmisie rapidă pentru portul USB Serial // către monitorul Arduino IDE. for (int i = 3; i> 0; i--) {// așteptați câteva secunde pentru a vedea dacă ne programează întârzierea (1000); } pinMode (cmd_A_pin, OUTPUT); pfodSMS.setDebugStream (& Serial); // trebuie să faceți acest lucru înainte de pfod_SMS.init // sau orice altă metodă de apel pfod_SMS // inițializați SMS-ul și conectați parserul // schimbați următoarea linie în Serial1 pfodSMS.init (& Serial1, 9); // conectați Seeed GPRS shield V2 la Serial1 în loc de Serial parser.setDebugStream (& Serial); // trebuie să faceți acest lucru înainte de parser.connect // sau orice altă metodă de analiză apelează parser.connect (& pfodSMS); // conectați analizorul la fluxul SMS}

Acum puteți descomenta unele dintre setările de depanare din biblioteca pfodParser de la to din fișierul pfodSMS_SIM900.cpp.

De exemplu, necomentând #define DEBUG_SETUP, se va imprima (în fluxul de depanare) ce se întâmplă în timp ce porniți scutul GPRS și îl pregătiți să primească mesaje SMS.

Dacă nu comentezi #define DEBUG, vei oferi o mulțime de informații despre mesajele SMS primite.

Asta e !

Recomandat: