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, Decembar
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. jula 2018: 3G/2G verzija ovog projekta, koristeći SIM5320, dostupna je ovdje

Ažuriranje: 19. maja 2015: Koristite biblioteku pfodParser Verzije 2.5 ili novije. Popravlja prijavljeni problem koji ne dopušta dovoljno vremena da se štit poveže na mrežu nakon uključivanja

Uvod

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

  • Pouzdano je-na komande se uvijek odgovara i ponovo se traže izgubljene poruke
  • To je Secure - koristi 128 -bitnu zaštitu lozinkom
  • Ne zahtijeva nikakve račune web usluga trećih strana - potrebna je samo aktivna SIM kartica (bez pin -a)
  • Prilagodljiv je - možete koristiti pfodDesigner za kreiranje vlastitog prilagođenog menija
  • Lako je - pfodDesigner generira sav kôd. Ne morate da vršite nikakvo kodiranje.
  • Fleksibilan je-svi pfod ekrani su dostupni putem SMS-a, poput podmenija, višestruke i pojedinačne liste za odabir, unosa teksta, evidentiranja 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 menije za pfodDesigner, Android / Arduino za detalje o dizajniranju vlastitog prilagođenog menija. Za detalje o svim pfod porukama i ekranima koje možete sami dodati pogledajte 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 sa ove liste..
  2. Instalirajte Arduino IDE verziju 1.5.8 i preuzmite i instalirajte pfodParser biblioteku.
  3. Preuzmite besplatni pfodDesigner.
  4. Dizajnirajte svoj prilagođeni meni za uključivanje i isključivanje digitalnog unosa 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 mobilnog u IDE (za detalje pogledajte pfodAppForAndroidGettingStarted.pdf), dodajte svoju tajnu lozinku, kompajlirajte 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 Hardverski serijski kao što je prikazano gore.
  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 detalja o relejima.
  9. Priključite USB napajanje na Mega. Kôd biblioteke uključuje GPRS štit umjesto vas.
  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 meni prikazan putem SMS -a. Pritisnite dugme 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 detalja

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 ekrane, pa kada počnete, možete dodati podmenije, numeričke klizače, klizači za više tekstova, ekrani za unos teksta, evidentiranje podataka i crtanje svega putem SMS-a. Za sve podržane ekrane i poruke pogledajte pfodSpecification.pdf.

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

Izmijenite liniju da biste dodali lozinku svojoj SMS vezi

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

ali koristite vlastitu lozinku koja sadrži 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 sa opcionalnom 128 -bitnom sigurnošću

pfodApp

Prvo što 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 određenog kašnjenja prije nego što dođe do SMS odgovora. Ako se poruka izgubila ili kasni, pfodApp će je automatski ponovo poslati nakon 3 minute. Nakon 5 takvih pokušaja, pfodApp će vam reći da je veza prekinuta. Možete podesiti 3 minute na ekranu za uređivanje veze pfodApp -a.

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

SMS/GPRS štit

Mogući problemi su što su SIM kartice zaštićene pin brojevima ili nisu ovlaštene za povezivanje na mrežu. Pfod biblioteka automatski uključuje GPRS štit i traži odgovor "spreman za poziv". Ako taj odgovor ne stigne, biblioteka se isključuje i pokušava ponovo, 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. Proverite da se od vas ne traži PIN broj.

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

Napajanje Mega / GPRS štita

Štit neprekidno napaja do 2A impulsno i do 0.5A. Uz napajanje baterijom od 12V, 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 sa Belkinovim napajanjem (F4U020) kako bih spriječio izvlačenje prevelike struje iz USB porta računara.

Za napajanje baterijom od 12 V, predlažem korištenje kvalitetnog automobilskog USB 5V punjača, 1A ili više. Kvalitetno napajanje za automobile s USB -om od 5 V trebalo bi biti dizajnirano za suzbijanje prenapona koji se javljaju u električnim sustavima automobila i stoga bi trebalo biti prikladno za većinu sustava punjenja od 12 V.

Solid State Relej

Budući da ovaj primjer projekta kontrolira grijač tople vode (otporno opterećenje), relej u čvrstom stanju je idealan. Ako želite uključiti ili isključiti motore, pokrenuti generatore itd., Razgovarajte sa svojim električarom o odgovarajućem 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. Pobrinite se da kupite on koji može podnijeti struju i napon vašeg grijača i može se kontrolirati pomoću 5V dc i nekoliko miliampera dostupnih s Arduino izlaznog pina. Ovaj koji se ovdje koristi, FOTEK SSR-40 DA, uključuje do 380VAC pri 40A i kontrolira ga bilo šta više od 3V dc i uzima manje od 7mA.

Morate koristiti hladnjak i morate nanijeti TANAK razmaza od smjese hladnjaka ili termalne masti na stražnju stranu čvrstog releja prije nego što ga pričvrstite vijcima na hladnjak. Ideja je potpuno pokriti površinu najtanjijim slojem 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 16 vati topline pri 10 ampera. Hladnjak se mora riješiti ove topline pa ga je potrebno postaviti na slobodan zrak, a ne unutar plastične kutije.

Odlaganja su zla

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 bafer od 64 bajta u kodu Arduino biblioteke napuni i podaci se izgube.

Dakle, morate održavati glavnu petlju () da radi brzo. Nikada ne biste trebali koristiti delay () i trebali biste provjeriti da nijedna od biblioteka koje koristite nema kašnjenja u njima. 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 Arduino knjižnice. Ne koristim serijski softver, samo serijske i serijske1, hardverske serijske veze i gotovo sve poruke koje pfodApp šalje su vrlo 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 otklanjanje greš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.

Instalacija

Dodao sam štitnik s vijčanim terminalom tako da sam imao na što spojiti žice releja Solid State. Još nisam dao da mi električar instalira kontroler. Potrebno ga je staviti u izoliranu kutiju, ali s hladnjakom koji viri kroz utor i ožičen 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ćava vam da je uključite. Ali SMS veza obrađuje sve pfod poruke (pogledajte pfodSpecification.pdf)

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

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

Kada biblioteka pfodSMS vidi novu liniju iz println (), ona će poslati neobrađene podatke kao SMS. Na svom mobilnom telefonu ostavite pfodApp da radi u pozadini i vaš mobilni će vas obavijestiti kada primi SMS. Ponovo otvorite pfodApp da biste ga prikazali naprijed, a zatim otvorite ekran sirovih podataka iz izbornika mobilnog telefona da vidite 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 detalje pogledajte pfodSMS dizajn poruka.

Možete koristiti isti postupak za slanje upozorenja kada se nešto daljinski promijeni. 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 grešaka dok koristite SMS vezu u biblioteci PfodParser

Otklanjanje grešaka prilikom korištenja SMS veze u biblioteci PfodParser
Otklanjanje grešaka prilikom korištenja SMS veze u biblioteci PfodParser
Otklanjanje grešaka prilikom korištenja SMS veze u biblioteci PfodParser
Otklanjanje grešaka prilikom korištenja SMS veze u biblioteci PfodParser

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

Otklanjanje grešaka u vlastitom kodu

Ako otklanjate greš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.connect (& Serial) GPRS štita; // povezivanje parsera na serijski umjesto SMS toka

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

Nadgledanje GPRS štita

Ako želite vidjeti šta 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--) {// sačekajte nekoliko sekundi da vidite da li smo programirani delay (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 red u Serial1 pfodSMS.init (& Serial1, 9); // povežite Seeed GPRS štit V2 sa Serial1 umjesto Serial parser.setDebugStream (& Serial); // potrebno je to učiniti prije parser.connect // ili bilo koje druge metode raščlanjivanja poziva parser.connect (& pfodSMS); // povežite parser sa SMS tokom}

Sada možete ukloniti komentare na neke postavke za otklanjanje grešaka u biblioteci pfodParser u to datoteci pfodSMS_SIM900.cpp.

Na primjer, ako ne ostavite komentar #define DEBUG_SETUP će ispisati (toku za otklanjanje grešaka) šta 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čuje se: