Sadržaj:

Pouzdan, siguran, prilagodljiv SMS daljinski upravljač (Arduino/pfodApp) - Nije potrebno kodiranje: 4 koraka
Pouzdan, siguran, prilagodljiv SMS daljinski upravljač (Arduino/pfodApp) - Nije potrebno kodiranje: 4 koraka

Video: Pouzdan, siguran, prilagodljiv SMS daljinski upravljač (Arduino/pfodApp) - Nije potrebno kodiranje: 4 koraka

Video: Pouzdan, siguran, prilagodljiv SMS daljinski upravljač (Arduino/pfodApp) - Nije potrebno kodiranje: 4 koraka
Video: 7 INCREDIBLE CAR INVENTIONS that will BLOW YOUR MIND 2024, Studeni
Anonim
Pouzdan, siguran, prilagodljiv SMS daljinski upravljač (Arduino/pfodApp) - Nije potrebno kodiranje
Pouzdan, siguran, prilagodljiv SMS daljinski upravljač (Arduino/pfodApp) - Nije potrebno kodiranje

Ažuriranje 6. srpnja 2018.: 3G/2G verzija ovog projekta, koristeći SIM5320, dostupna je ovdje

Ažuriranje: 19. svibnja 2015.: Upotrijebite knjižnicu pfodParser Verzije 2.5 ili novije. Popravlja prijavljeni problem koji ne dopušta dovoljno vremena da se štit poveže s mrežom nakon uključivanja

Uvod

Po čemu se daljinski upravljač pfodSMS razlikuje od drugih implementacija:-

  • Pouzdano je-uvijek se odgovara na naredbe i ponovno se traže izgubljene poruke
  • Sigurno je - koristi 128 bitnu zaštitu lozinkom
  • Ne zahtijeva nikakve račune web usluga trećih strana - potrebna je samo aktivna SIM kartica (bez pribadače)
  • Prilagodljiv je - možete koristiti pfodDesigner za stvaranje vlastitog prilagođenog izbornika
  • Lako je - pfodDesigner generira sav kôd. Ne morate raditi kodiranje.
  • Fleksibilan je-svi pfod zasloni dostupni su putem SMS-a, poput podizbornika, višestrukog i pojedinačnog odabira, unosa teksta, bilježenja podataka i crtanja.

Za detalje o pouzdanosti SMS veze pogledajte pfodSMS dizajn poruka. Za detalje o 128 -bitnoj sigurnosti pogledajte Sigurnost izazova i odgovora za pfodDevices povezane s internetom. Pogledajte pojednostavljene izbornike pfodDesigner, Android / Arduino za detalje o izradi vlastitog prilagođenog izbornika. Pojedinosti o svim pfod porukama i zaslonima koje možete sami dodati potražite u pfodSpecification.pdf.

Primjer projekta - SMS kontrola tople vode

Kao primjer projekta, ovo uputstvo opisuje kako uključiti i isključiti grijač tople vode putem SMS -a i provjeriti je li uključen ili isključen. Za instalaciju će vam trebati električar.

Korak 1: Brzi početak - SMS daljinski upravljač

Brzi početak - SMS daljinski upravljač
Brzi početak - SMS daljinski upravljač
Brzi početak - SMS daljinski upravljač
Brzi početak - SMS daljinski upravljač

Evo kratkog vodiča za izgradnju vlastite SMS kontrole tople vode.

  1. Kupite dijelove s ovog popisa..
  2. Instalirajte Arduino IDE verziju 1.5.8 te preuzmite i instalirajte knjižnicu pfodParser.
  3. Preuzmite besplatni pfodDesigner.
  4. Dizajnirajte svoj prilagođeni izbornik za uključivanje i isključivanje digitalnog ulaza s klizača izbornika na vašem Android mobitelu.
  5. Generirajte kôd, odabirom SeeedStudio SIM900 GPRS štita za vezu. (Postoji i opcija za IteadStudio SIM900 štit).
  6. Prenesite generirani kôd sa svog mobitela u IDE (za detalje pogledajte pfodAppForAndroidGettingStarted.pdf), dodajte svoju tajnu lozinku, sastavite i preuzmite na Arduino Mega 2560.
  7. Umetnite svoju SIM karticu u GPRS štitnik i priključite ga u Mega 2560. Provjerite jesu li serijske veze postavljene na Hardware Serial kao što je gore prikazano.
  8. Spojite digitalni izlaz na čvrsti ili normalni relej između D3 i GND (ili na bilo koji pin koji ste odabrali u pfodDesigner -u). Pogledajte Kako dodati releje u Arduino za više pojedinosti o relejima.
  9. Priključite USB napajanje na Mega. Kôd knjižnice vam omogućuje GPRS štit.
  10. Instalirajte pfodApp na svoj Android mobitel i postavite SMS vezu na sim telefon štita št. (za detalje pogledajte pfodAppForAndroidGettingStarted.pdf). Postavite lozinku za vezu ako ste je dodali.
  11. Povežite se i pogledajte prilagođeni izbornik prikazan putem SMS -a. Pritisnite gumb za uključivanje ili isključivanje releja.
  12. Pozovite svog električara da instalira relej u vaš krug tople vode i poveže USB napajanje za napajanje Mega i štita

Korak 2: Više pojedinosti

pfodDesigner

PfodDesigner će generirati sav kôd koji vam je potreban za uključivanje i isključivanje poluprovodničkog ili nekog drugog releja, ali SMS veza u biblioteci pfodParser podržava sve pfod zaslone pa kad počnete, možete dodati podizbornike, numeričke klizače, klizači s više tekstova, zasloni za unos teksta, bilježenje podataka i iscrtavanje svega putem SMS-a. Za sve podržane zaslone i poruke pogledajte pfodSpecification.pdf.

Generirani kôd je ovdje. Nema upit i samo jedan prekidač kako bi poruka bila kratka. Dugi se izbornici šalju putem više SMS poruka kojima je potrebno duže vrijeme da stignu. Ako imate dugačak izbornik, kôd sms veze u knjižnici pfodParser sve to rješava umjesto vas.

Za dodavanje lozinke vašoj SMS vezi izmijenite liniju

parser.connect (& pfodSMS); // povezujemo parser sa SMS streamom na nešto poput parser.connect (& pfodSMS, F ("173057F7A706AF9BBE65D51122A14CEE"));

ali upotrijebite vlastitu zaporku do 32 heksadecimalne znamenke, 0..9 A.. F. Lozinke kraće od 32 heksadecimalne znamenke nadopunjene su nulama. Pogledajte Jednostavni Wifi/Internet pfodDevice sa 128 -bitnom sigurnošću (Arduino) za generiranje slučajne lozinke i izlaz u QR kôd za lak unos na vaš Android. Također pogledajte pfodAppForAndroidGettingStarted.pdf

PfodDesigner će također generirati kôd za bluetooth i wifi veze putem serijskog i Ethernet -a putem SPI -a, sve s opcionalnom 128 -bitnom sigurnošću

pfodApp

Prva stvar koju morate shvatiti je da je SMS lagan i da možda uopće neće stići tamo ili stići izvan reda. Dakle, kada se povežete s pfodApp -om, doći će do nekog kašnjenja prije nego što dođe do SMS odgovora. Ako se poruka izgubila ili kasni, pfodApp će je automatski ponovno poslati nakon 3 minute. Nakon 5 takvih pokušaja pfodApp će vam reći da je veza prekinuta. Možete podesiti 3 minute na zaslonu za uređivanje veze pfodApp -a.

Ako dodate lozinku, postoji šest SMS poruka (tri u svakom smjeru) prije nego što pfodApp primi glavni izbornik. Ove se dodatne poruke događaju samo pri početnoj vezi, nakon čega nema dodatnih poruka pri korištenju lozinke. Zato počnite bez lozinke da biste vidjeli da li sve funkcionira, a zatim je dodajte kasnije.

Štit za SMS/GPRS

Mogući problemi su što su SIM kartice zaštićene pin brojevima ili nisu ovlaštene za povezivanje s mrežom. Knjižnica pfod automatski uključuje GPRS štit i traži odgovor "spreman za poziv". Ako taj odgovor ne stigne, knjižnica se isključuje i pokušava ponovno, pa ako vidite da lampica napajanja na GPRS štitu svijetli 20 sekundi, a zatim se gasi, postoji problem s povezivanjem na mrežu. Izvadite SIM karticu i isprobajte je na normalnom telefonu. Provjerite da se od vas ne traži PIN broj.

Ako to nije problem, morat ćete uključiti ispravljanje pogrešaka pri pokretanju, kako je dolje opisano, da vidite što se događa.

Napajanje Mega / GPRS štita

Štit crpi do 2A impulsno i do 0,5A kontinuirano. Uz napajanje 12V baterijom, 0.5A premašuje kapacitet napajanja Mega na ploči. Dakle, ovaj štit se NE smije napajati sa 7V do 12V ulaza na Mega -i. Alternativa je napajanje Mega i štita putem USB veze. Koristio sam 1A USB napajanje. Za testiranje sam koristio čvorište s Belkin pogonom (F4U020) kako bih spriječio izvlačenje prekomjerne struje iz USB priključka računala.

Za napajanje baterijom od 12 V, predlažem korištenje kvalitetnog automobilskog USB 5V punjača, 1A ili više. Kvalitetna Automotive USB 5V opskrba trebala bi biti dizajnirana za rješavanje prenapona napona koji se javljaju u električnim sustavima automobila, pa bi trebala biti prikladna za većinu 12V sustava punjenja.

Solid State Relej

Budući da ovaj primjer projekta kontrolira grijač tople vode (otporno opterećenje), relej u krutom stanju je idealan. Ako želite uključiti ili isključiti motore, pokrenuti generatore itd., Razgovarajte sa svojim električarom o prikladnom releju za taj posao. Ako vam je potreban relej velike snage, možete upotrijebiti mali relejni pogon uz arduino ploču za uključivanje i isključivanje releja za napajanje.

Dostupno je mnogo verzija čvrstog stanja releja. Provjerite jeste li kupili onu koja može podnijeti struju i napon vašeg grijača i može se kontrolirati pomoću 5 V dc i nekoliko miliampera dostupnih s izlaznog pina Arduino. Ovdje korišteni, FOTEK SSR-40 DA, uključuje do 380VAC pri 40A i kontrolira ga bilo što više od 3V dc i uzima manje od 7mA.

Morate koristiti hladnjak i morate nanijeti TANAK razmaza od spoja hladnjaka ili termalne masti na stražnju stranu krutog releja prije nego što ga pričvrstite vijcima na hladnjak. Ideja je potpuno pokriti površinu najtanjim slojem smjese umivaonika za glavu kako bi se ispunile mikroskopske doline na površini metala. Kada je uključen, poluprovodnički prekidač pada 1,6 V što proizvodi 16W vati topline pri 10A. Hladnjak se mora riješiti ove topline pa ga je potrebno postaviti na slobodan zrak, a ne unutar plastične kutije.

Odgode su zlo

GPRS štit isporučuje SMS poruke putem serijske veze u bilo koje vrijeme i vaša glavna petlja () mora pozvati cmd = parser.parse (); često za obradu serijskih podataka prije nego što se 64 bajtni bafer u kodu knjižnice Arduino napuni i podaci se izgube.

Dakle, morate održavati glavnu petlju () da radi brzo. Nikada ne biste trebali koristiti delay () i trebali biste provjeriti ima li u bilo kojoj od knjižnica koje koristite kašnjenja. Koristeći zadanu brzinu prijenosa 19200 brzine prijenosa SIM900 putem hardverske serije, nisam našao za potrebno povećati veličinu međuspremnika u kodu knjižnice Arduino. Ne koristim serijski softver, samo serijski i serijski1, hardverske serijske veze i gotovo sve poruke koje pfodApp šalje vrlo su male, 10 ili 12 bajtova. Međutim, možete povećati veličinu međuspremnika Arduino, ako želite, promjenom definicije u HardwareSerial.h sa #define SERIAL_BUFFER_SIZE 64 na #define SERIAL_BUFFER_SIZE 128

Međutim, ono što sam otkrio je da sam, ako sam omogućio izlaz za ispravljanje pogrešaka, kao što je dolje opisano, morao imati vrlo veliku brzinu prijenosa za terminalnu vezu. U protivnom kašnjenje uneseno slanjem poruka za otklanjanje pogrešaka na terminal uzrokovalo je propuštanje dijelova SMS poruka.

Montaža

Dodao sam štitnik s vijčanim stezaljkama pa sam imao na što spojiti žice releja u krutom stanju. Još nisam dao da mi električar instalira kontroler. Treba ga staviti u izoliranu kutiju, ali s hladnjakom koji viri kroz utor i ožičen je u kabel za toplu vodu.

Korak 3: Prijedlozi za daljnja poboljšanja - upozorenja, evidentiranje podataka i iscrtavanje

Gornji primjer projekta samo prikazuje kako je voda uključena ili isključena i omogućuje vam da je uključite. No, SMS veza obrađuje sve pfod poruke (vidi pfodSpecification.pdf)

Ako svom arduinu dodate senzor temperature, također možete poslati monitor temperature i slati očitanja u redovitim intervalima. Za vraćanje podataka čitanje podataka je isto za bluetooth, wifi ili SMS, samo dodajte kôd kao uzorak u nastavku. Za više pojedinosti i primjere bilježenja podataka i iscrtavanja pogledajte Zapisivanje podataka i iscrtavanje.

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

Kad knjižnica pfodSMS vidi novi redak iz println (), poslat će neobrađene podatke kao SMS. Na svom mobilnom telefonu ostavite pfodApp da radi u pozadini i vaš će vas mobitel obavijestiti kada primi SMS. Ponovno otvorite pfodApp da biste ga prikazali naprijed, a zatim otvorite zaslon sirovih podataka s izbornika mobilnog telefona da biste vidjeli podatke. Napomena: PfodSMS poruke su UTF-8 znakovi zajedno s brojevima veze i poruka, kodirani pomoću kodiranja Base64 tako da ne izgledaju kao uobičajeni tekst. Za sve pojedinosti pogledajte dizajn poruka pfodSMS.

Isti postupak možete koristiti za slanje upozorenja kada se nešto daljinski promijeni. tj. parser.println (F ("Vanjska temperatura ispod 0 ℃")); Napomena: znak ℃ UTF-8 u nizu. pfodSMS prosljeđuje sve UTF-8 znakove u pfodApp.

Korak 4: Otklanjanje pogrešaka tijekom korištenja SMS veze u knjižnici PfodParser

Otklanjanje pogrešaka tijekom korištenja SMS veze u knjižnici PfodParser
Otklanjanje pogrešaka tijekom korištenja SMS veze u knjižnici PfodParser
Otklanjanje pogrešaka tijekom korištenja SMS veze u knjižnici PfodParser
Otklanjanje pogrešaka tijekom korištenja SMS veze u knjižnici PfodParser

PfodDesigner generira kôd koji radi, ali možda ćete htjeti otkloniti pogreške u vlastitom dodatnom kodu ili pogledati što se događa dok se GPRS štit pokreće ili prima SMS poruke. Postoji nekoliko pristupa koje možete poduzeti.

Otklanjanje pogrešaka u vlastitom kodu

Ako otklanjate pogreške u vlastitom kodu, mogli biste samo komentirati liniju pfodSMS i spojiti parser na Serial, a zatim ukloniti GPRS štit i pokrenuti Mega s Arduino terminala. tj. promijenite setup () u

//pfodSMS.init(&Serial, 9); // ne pokrećite parser GPRS štita.connect (& Serial); // povezivanje raščlanjivača na serijski umjesto SMS toka

Zatim s Arduino terminala možete upisati {.} Da biste dobili opciju da Mega vrati glavni izbornik i zatim pošalje naredbu natrag koju želite izvršiti, npr. {A`1} za uključivanje releja i {A`0} za isključivanje. (PfodApp obično šalje ove poruke za vas kada kliknete klizač.) Zatim dodajte dodatni parser.println () za otklanjanje pogrešaka kako biste nadgledali koji dodatni kôd radite radi.

Nadgledanje GPRS štita

Ako želite vidjeti što radi GPRS štit. Kako se pokreće, prima SMS poruke itd. Zatim morate promijeniti ožičenje štitnika i spojiti ga na Mega Serial1 (serijski) i osloboditi serijsku (USB) vezu za ispravljanje pogrešaka na Arduino IDE monitoru.

Za spajanje GPRS oklopa na Mega 2560 Serial1, uklonite gore prikazane veze i dodajte žice na Megine TX1 i RX1 pinove.

Zatim promijenite setup () kod u

void setup () {Serial1.begin (19200); // promijenimo serijski u serijski 1 Serial.begin (57600); // NAPOMENA brza brzina prijenosa podataka za USB serijski port // na Arduino IDE monitor. for (int i = 3; i> 0; i--) {// pričekajte nekoliko sekundi da vidite je li programirano kašnjenje (1000); } pinMode (cmd_A_pin, OUTPUT); pfodSMS.setDebugStream (& serijski); // potrebno je to učiniti prije pfod_SMS.init // ili bilo kojeg drugog poziva metode pfod_SMS // inicijalizirati SMS i povezati parser // promijeniti sljedeći redak u Serial1 pfodSMS.init (& Serial1, 9); // povežite Seeed GPRS štit V2 sa Serial1 umjesto Serial parser.setDebugStream (& Serial); // to je potrebno učiniti prije parser.connect // ili bilo koje druge metode raščlanjivanja poziva parser.connect (& pfodSMS); // povezivanje parsera na tok SMS -a}

Sada možete dekomentirati neke od postavki za otklanjanje pogrešaka u knjižnici pfodParser u to datoteci pfodSMS_SIM900.cpp.

Na primjer, bez komentara #define DEBUG_SETUPispisat će (u stream za ispravljanje pogrešaka) ono što se događa dok se uključi GPRS štit i spremi ga za primanje SMS poruka.

Bez komentara #define DEBUG će dati mnogo informacija o primljenim SMS porukama.

To je to !

Preporučeni: