Spoľahlivé, bezpečné, prispôsobiteľné diaľkové ovládanie SMS (Arduino/pfodApp) - nevyžaduje sa žiadne kódovanie: 4 kroky
Spoľahlivé, bezpečné, prispôsobiteľné diaľkové ovládanie SMS (Arduino/pfodApp) - nevyžaduje sa žiadne kódovanie: 4 kroky
Anonim
Spoľahlivé, bezpečné, prispôsobiteľné diaľkové ovládanie SMS (Arduino/pfodApp) - nevyžaduje sa žiadne kódovanie
Spoľahlivé, bezpečné, prispôsobiteľné diaľkové ovládanie SMS (Arduino/pfodApp) - nevyžaduje sa žiadne kódovanie

Aktualizácia 6. júla 2018: Verzia tohto projektu 3G/2G pomocou SIM5320 je k dispozícii tu

Aktualizácia: 19. mája 2015: Použite knižnicu pfodParser verzie 2.5 alebo vyššej. Rieši hlásený problém, keď sa štítu po zapnutí neposkytol dostatok času na pripojenie k sieti

Úvod

Čím sa diaľkové ovládanie pfodSMS líši od ostatných implementácií:-

  • Je spoľahlivý-na príkazy sa vždy odpovedá a na stratené správy sa znova požaduje
  • Je bezpečný - používa 128 -bitovú ochranu heslom
  • Nevyžaduje žiadne účty webových služieb tretích strán - potrebuje iba aktívnu SIM kartu (bez PINu)
  • Je prispôsobiteľný - pfodDesigner môžete použiť na vytvorenie vlastnej ponuky
  • Je to jednoduché - pfodDesigner generuje všetok kód. Nie je potrebné vykonávať žiadne kódovanie.
  • Je flexibilný-všetky obrazovky pfod sú k dispozícii prostredníctvom SMS, ako sú podponuky, zoznam pre výber viacerých položiek a jeden výber, zadávanie textu, protokolovanie údajov a vykresľovanie.

Pozrite sa na návrh správ pfodSMS, ako je spoľahlivé spojenie SMS. Podrobnosti o 128 -bitovom zabezpečení nájdete v časti Zabezpečenie výziev a odpovedí pre zariadenie pfodDevices. Bližšie informácie o navrhovaní vlastnej ponuky nájdete v zjednodušených ponukách pfodDesigner, Android / Arduino. Podrobnosti o všetkých správach a obrazovkách pfod, ktoré môžete sami pridať, nájdete na stránke pfodSpecification.pdf.

Príklad projektu - SMS kontrola teplej vody

Tento návod popisuje ako príklad projekt, ako zapnúť a vypnúť ohrievač teplej vody prostredníctvom SMS a skontrolovať, či je zapnutý alebo vypnutý. Na jeho inštaláciu budete potrebovať elektrikára.

Krok 1: Rýchly štart - diaľkové ovládanie pomocou SMS

Rýchly štart - SMS diaľkové ovládanie
Rýchly štart - SMS diaľkové ovládanie
Rýchly štart - SMS diaľkové ovládanie
Rýchly štart - SMS diaľkové ovládanie

Tu je rýchly sprievodca k budovaniu vlastného ovládania teplej vody pomocou SMS.

  1. Kúpte si diely v tomto zozname..
  2. Nainštalujte si Arduino IDE verzie 1.5.8 a stiahnite a nainštalujte knižnicu pfodParser..
  3. Stiahnite si zadarmo pfodDesigner.
  4. Navrhnite si vlastnú ponuku na zapínanie a vypínanie digitálneho vstupu pomocou posúvača ponuky v mobile Android.
  5. Vygenerujte kód a ako pripojenie vyberte štít GPRS SeeedStudio SIM900. (Existuje aj možnosť pre štít IteadStudio SIM900).
  6. Preneste vygenerovaný kód z mobilu do IDE (podrobnosti nájdete na stránke pfodAppForAndroidGettingStarted.pdf), zadajte svoje tajné heslo, skompilujte a stiahnite do zariadenia Arduino Mega 2560.
  7. Nainštalujte svoju SIM kartu do štítu GPRS a zapojte kryt do Mega 2560. Uistite sa, že sú sériové prepojenia nastavené na Hardvérové sériové, ako je uvedené vyššie.
  8. Pripojte digitálny výstup k polovodičovému alebo normálnemu relé medzi D3 a GND (alebo akýmkoľvek pinom, ktorý ste si vybrali v programe pfodDesigner). Podrobnejšie informácie o relé nájdete v časti Ako pridať relé do Arduina.
  9. Pripojte k Mega napájanie USB. Kód knižnice vám aktivuje štít GPRS..
  10. Nainštalujte si pfodApp do svojho mobilného telefónu s Androidom a vytvorte si SMS spojenie s simovým telefónom štítu č. (podrobnosti nájdete na stránke pfodAppForAndroidGettingStarted.pdf). Nastavte heslo pre pripojenie, ak ste ho pridali..
  11. Pripojte sa a uvidíte svoju vlastnú ponuku zobrazenú prostredníctvom SMS. Kliknutím na tlačidlo relé zapnete alebo vypnete.
  12. Požiadajte elektrikára, aby nainštaloval relé do vášho okruhu teplej vody a zapojil napájací zdroj USB, aby napájal Mega a štít

Krok 2: Ďalšie podrobnosti

pfodDesigner

PfodDesigner vygeneruje všetok kód, ktorý potrebujete na zapnutie a vypnutie polovodičového alebo iného relé, ale pripojenie SMS v knižnici pfodParser podporuje všetky obrazovky pfod, takže akonáhle začnete, môžete pridať podponuky, číselné posúvače, viactextové posúvače, obrazovky na zadávanie textu, protokolovanie údajov a vykresľovanie všetko prostredníctvom SMS. Všetky podporované obrazovky a správy nájdete na stránke pfodSpecification.pdf.

Vygenerovaný kód je tu. Nemá žiadnu výzvu a iba jeden prepínač, aby bola správa krátka. Dlhé ponuky sa odosielajú prostredníctvom viacerých správ SMS, ktorých doručenie trvá dlhšie. Ak máte dlhé menu, kód pripojenia sms v knižnici pfodParser to všetko zvládne za vás.

Ak chcete do svojho pripojenia SMS pridať heslo, upravte riadok

parser.connect (& pfodSMS); // pripojenie analyzátora k SMS streamu na niečo ako parser.connect (& pfodSMS, F ("173057F7A706AF9BBE65D51122A14CEE"));

ale použite svoje vlastné heslo až do 32 hexadecimálnych číslic, 0..9 A.. F. Heslá kratšie ako 32 hexadecimálnych číslic sú označené 0. Informácie o tom, ako vygenerovať náhodné heslo a zadať ho do kódu QR pre jednoduché zadanie do systému Android, nájdete v článku Jednoduché zariadenie s WiFi/internetom pfodDevice with 128bit security (Arduino). Pozrite si tiež pfodAppForAndroidGettingStarted.pdf

PfodDesigner bude tiež generovať kód pre bluetooth a wifi pripojenia prostredníctvom sériového a ethernetového rozhrania SPI, všetko s voliteľným 128 -bitovým zabezpečením

pfodApp

Prvá vec, ktorú si treba uvedomiť, je, že SMS sú sloooow a nemusia sa tam vôbec dostať alebo prísť mimo prevádzky. Keď sa teda spojíte s pfodApp, bude existovať určité oneskorenie, kým príde odpoveď SMS. Ak sa správa stratila alebo sa oneskorila, pfodApp ju automaticky znova odošle po 3 minútach. Po 5 takýchto pokusoch vám pfodApp oznámi, že sa spojenie stratilo. Čas 3 minúty môžete nastaviť na obrazovke úprav pripojenia pfodApp.

Ak zadáte heslo, pfodApp prijme šesť správ SMS (tri v každom smere). Tieto dodatočné správy sa zobrazujú iba pri počiatočnom pripojení, po ktorom pri použití hesla nie sú k dispozícii žiadne ďalšie správy. Začnite teda bez hesla, aby ste zistili, že všetko funguje, a potom heslo pridajte neskôr.

SMS/GPRS štít

Možnými problémami sú karty SIM chránené číslami PIN alebo neoprávnené pripojenie k sieti. Knižnica pfod automaticky zapne štít GPRS a hľadá odpoveď „pripravení na hovor“. Ak táto odpoveď nedorazí, knižnica sa vypne a skúša to znova, takže ak uvidíte, že sa kontrolka napájania na štíte GPRS rozsvieti na 20 sekúnd a potom zhasne, je problém s pripojením k sieti. Vyberte SIM kartu a vyskúšajte ju v bežnom telefóne. Skontrolujte, či sa nezobrazuje výzva na zadanie čísla PIN.

Ak to nie je problém, budete musieť zapnúť ladenie pri spustení, ako je popísané nižšie, aby ste zistili, čo sa deje.

Napájanie štítu Mega / GPRS

Štít čerpá impulz až 2A a nepretržite až 0,5A. Za predpokladu napájania batériou 12 V, 0,5 A presahuje kapacitu palubného zdroja Mega. Tento štít by teda NEMAL byť napájaný zo vstupu 7 V až 12 V na Mega. Alternatívou je napájanie Mega a štítu prostredníctvom pripojenia USB. Použil som napájanie USB 1A. Na testovanie som použil rozbočovač napájaný spoločnosťou Belkin (F4U020), aby som predišiel nadmernému prúdeniu z USB portu môjho počítača.

Na napájanie batériou 12V navrhujem použiť kvalitnú automobilovú nabíjačku USB 5V, 1A alebo vyššiu. Kvalitný automobilový napájací zdroj USB 5 V by mal byť navrhnutý tak, aby zvládal špičky napätia, ku ktorým dochádza v elektrických systémoch automobilov, a mal by byť preto vhodný pre väčšinu nabíjacích systémov s napätím 12 V.

Polovodičové relé

Pretože tento príklad projektu ovláda ohrievač teplej vody (odporová záťaž), je polovodičové relé ideálne. Ak chcete zapnúť alebo vypnúť motory, spustiť generátory atď., Porozprávajte sa so svojim elektrikárom o vhodnom relé pre túto prácu. Ak potrebujete výkonové relé, môžete na zapnutie a vypnutie výkonového relé použiť malý reléový pohon na doske Arduino.

Existuje mnoho verzií polovodičového relé. Uistite sa, že si kúpite zariadenie, ktoré zvládne prúd a napätie vášho ohrievača a ktoré je možné ovládať 5 V DC a niekoľkými miliampérmi dostupnými z výstupného kolíka Arduino. Ten, ktorý sa tu používa, FOTEK SSR-40 DA, spína až na 380 VAC pri 40 ampéroch a je ovládaný čímkoľvek viac ako 3 V jednosmerným prúdom a spotrebuje menej ako 7 mA.

Musíte použiť chladič a pred priskrutkovaním k chladiču musíte na zadnú stranu polovodičového relé naniesť TENKÝ náter chladiacej zmesi alebo tepelného maziva. Cieľom je úplne pokryť povrch najtenšou vrstvou zmesi na umývanie hlavy, aby sa vyplnili mikroskopické údolia na povrchu kovu. Po zapnutí prepínač v polovodičovom stave klesne o 1,6 V, čo vytvára 16 W tepla pri 10 A. Chladič sa musí zbaviť tohto tepla, a preto musí byť namontovaný na voľnom vzduchu, nie do plastového boxu.

Oneskorenia sú zlé

Štít GPRS dodáva SMS správy prostredníctvom sériového pripojenia kedykoľvek a vaša hlavná slučka () musí zavolať cmd = parser.parse (); často na spracovanie sériových údajov predtým, ako sa 64 -bitová vyrovnávacia pamäť v kóde knižnice Arduino zaplní a údaje sa stratia.

Takže musíte nechať svoju hlavnú slučku () bežať rýchlo. Nikdy by ste nemali používať delay () a mali by ste skontrolovať, či v žiadnej z vašich knižníc, ktoré používate, nie sú oneskorenia. Pri použití predvolenej 19 200 baud rate karty SIM900 cez Hardware Serial som nepovažoval za potrebné zvýšiť veľkosť medzipamäte v kóde knižnice Arduino. Nepoužívam sériový softvér, iba sériové a sériové1, hardvérové sériové pripojenia a takmer všetky správy, ktoré pfodApp odosiela, sú veľmi malé, 10 alebo 12 bajtov. Veľkosť vyrovnávacej pamäte Arduino však môžete zvýšiť, ak chcete, úpravou definície v HardwareSerial.h z #define SERIAL_BUFFER_SIZE 64 na #define SERIAL_BUFFER_SIZE 128

Zistil som však, že ak som povolil ladiaci výstup, ako je popísané nižšie, musel som mať veľmi vysokú prenosovú rýchlosť pre terminálové pripojenie, inak oneskorenie zavedené odosielaním ladiacich správ na terminál spôsobilo vynechanie častí správ SMS..

Inštalácia

Pridal som kryt skrutkovacej svorky, aby som mal k čomu pripojiť vodiče polovodičového relé. Ešte som nenechal svojho elektrikára nainštalovať ovládač. Je potrebné ho vložiť do izolovanej skrinky, ale s chladičom, ktorý vyčnieva cez otvor a zapojí sa do prívodu teplej vody.

Krok 3: Návrhy na ďalšie vylepšenia - výstrahy, zaznamenávanie údajov a vykresľovanie

Príklad vyššie uvedeného projektu iba zobrazuje, ako je voda zapnutá alebo vypnutá, a umožňuje vám ju prepnúť. Pripojenie SMS však spracováva všetky správy pfod (pozri pfodSpecification.pdf)

Ak do arduina pridáte snímač teploty, môžete v pravidelných intervaloch odosielať aj monitorovanie teploty a odosielať späť namerané hodnoty. Ak chcete odoslať späť čítanie údajov, je to rovnaké pre bluetooth, wifi alebo SMS, stačí pridať kód ako nižšie. Podrobnejšie informácie a príklady protokolovania a vykresľovania údajov nájdete v časti Protokolovanie a vykresľovanie údajov.

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

Akonáhle knižnica pfodSMS uvidí nový riadok z println (), odošle nespracované údaje ako SMS. V mobile nechajte pfodApp spustený na pozadí a váš mobil vás upozorní na prijatie správy SMS. Znova otvorte pfodApp, aby sa umiestnil dopredu, a potom v ponuke mobilného telefónu otvorte obrazovku Raw Data, aby ste videli údaje. Poznámka: Správy pfodSMS majú znaky UTF-8 spolu s číslami spojení a správ a kódujú sa pomocou kódovania Base64, aby nevyzerali ako normálny text. Všetky podrobnosti nájdete v návrhu správy pfodSMS.

Rovnaký postup môžete použiť aj na odoslanie upozornenia, ak sa niečo na diaľku zmení. tj. parser.println (F („vonkajšia teplota pod 0 ℃“)); Poznámka: znak ℃ UTF-8 v reťazci. pfodSMS prenáša všetky znaky UTF-8 do pfodApp.

Krok 4: Ladenie pri použití pripojenia SMS v knižnici PfodParser

Ladenie pri použití pripojenia SMS v knižnici PfodParser
Ladenie pri použití pripojenia SMS v knižnici PfodParser
Ladenie pri použití pripojenia SMS v knižnici PfodParser
Ladenie pri použití pripojenia SMS v knižnici PfodParser

PfodDesigner generuje kód, ktorý funguje, ale môžete ladiť svoj vlastný extra kód alebo sa pozrieť na to, čo sa deje pri štarte GPRS alebo pri prijímaní správ SMS. Môžete použiť niekoľko prístupov.

Ladenie vlastného kódu

Ak ladíte svoj vlastný kód, môžete jednoducho komentovať riadok pfodSMS a pripojiť analyzátor k sériovému portu a potom odstrániť štít GPRS a spustiť Mega z terminálu Arduino. tj zmeňte nastavenie () na

//pfodSMS.init(&Serial, 9); // nespúšťajte analyzátor GPRS shield.connect (& Serial); // namiesto streamovania SMS pripojte analyzátor k sériovému číslu

Potom z terminálu Arduino môžete zadať {.}, Aby sa Mega vrátila do hlavnej ponuky, a potom poslať späť príkaz, ktorý chcete vykonať, napr. {A`1} zapne relé a {A`0} vypne. (PfodApp vám tieto správy zvyčajne odošle po kliknutí na posúvač.) Potom pridajte ďalšie ladenie parser.println (), aby ste sledovali, aký extra kód, ktorý ste pridali, robí.

Monitorovanie štítu GPRS

Ak chcete vidieť, čo štít GPRS robí. Ako sa spúšťa, prijímanie správ SMS atď. Potom musíte zmeniť zapojenie štítu, pripojiť ho k Mega Serial1 (sériový) a uvoľniť sériové (USB) pripojenie na ladenie výstupu do monitora Arduino IDE.

Ak chcete pripojiť štít GPRS k Mega 2560 Serial1, odstráňte vyššie uvedené prepojenia a zapojte vodiče na piny Mega TX1 a RX1.

Potom zmeňte kód setup () na

void setup () {Serial1.begin (19200); // zmena Serial na Serial 1 Serial.begin (57600); // UPOZORNENIE na vysokú prenosovú rýchlosť pre sériový port USB // k monitoru Arduino IDE. for (int i = 3; i> 0; i--) {// počkajte niekoľko sekúnd, aby ste zistili, či sa nám programuje oneskorenie (1000); } pinMode (cmd_A_pin, VÝSTUP); pfodSMS.setDebugStream (& sériové); // treba to urobiť pred volaním metódy pfod_SMS.init // alebo akýmkoľvek iným spôsobom pfod_SMS // inicializovať SMS a pripojiť analyzátor // zmeniť nasledujúci riadok na Serial1 pfodSMS.init (& Serial1, 9); // pripojte videný GPRS štít V2 k Serial1 namiesto Serial parser.setDebugStream (& Serial); // to musíte urobiť pred parser.connect // alebo iným spôsobom metódy syntaktického analyzátora parser.connect (& pfodSMS); // pripojenie analyzátora k streamu SMS}

Teraz môžete odkomentovať niektoré nastavenia ladenia v knižnici pfodParser na adrese súboru pfodSMS_SIM900.cpp.

Ak napríklad zrušíte komentovanie #define DEBUG_SETUP, vytlačí (do ladiaceho toku), čo sa deje pri zapnutí štítu GPRS a jeho príprave na príjem správ SMS.

Zrušenie komentovania #define DEBUG poskytne veľa informácií o prijatých správach SMS.

To je všetko!