Tartalomjegyzék:

Megbízható, biztonságos, testreszabható SMS távirányító (Arduino/pfodApp) - Nincs szükség kódolásra: 4 lépés
Megbízható, biztonságos, testreszabható SMS távirányító (Arduino/pfodApp) - Nincs szükség kódolásra: 4 lépés

Videó: Megbízható, biztonságos, testreszabható SMS távirányító (Arduino/pfodApp) - Nincs szükség kódolásra: 4 lépés

Videó: Megbízható, biztonságos, testreszabható SMS távirányító (Arduino/pfodApp) - Nincs szükség kódolásra: 4 lépés
Videó: Fortress Android: Building an Unbreakable Mobile Defense 2024, November
Anonim
Megbízható, biztonságos, testreszabható SMS távirányító (Arduino/pfodApp) - nincs szükség kódolásra
Megbízható, biztonságos, testreszabható SMS távirányító (Arduino/pfodApp) - nincs szükség kódolásra

Frissítés 2018. július 6.: A projekt 3G/2G verziója, SIM5320 használatával, itt érhető el

Frissítés: 2015. május 19.: Használja a pfodParser könyvtár 2.5 -ös vagy újabb verzióját. Kijavítja a bejelentett problémát, hogy nem enged elég időt a pajzsnak a hálózathoz való csatlakozáshoz a bekapcsolás után

Bevezetés

Miben különbözik a pfodSMS távirányító a többi megvalósítástól:-

  • Megbízható-a parancsokra mindig válaszol, és az elveszett üzeneteket újra kérik
  • Biztonságos - 128 bites jelszavas védelmet használ
  • Nem igényel harmadik fél webszolgáltatási fiókját - csak aktív SIM -kártya szükséges (pin nélkül)
  • Testreszabható - a pfodDesigner segítségével saját egyéni menüt hozhat létre
  • Ez egyszerű - a pfodDesigner generálja az összes kódot. Nem kell kódolnia.
  • Rugalmas-az összes pfod képernyő SMS-ben érhető el, például almenük, több- és egyszeri kiválasztási lista, szövegbevitel, adatnaplózás és ábrázolás.

Az SMS -kapcsolat megbízhatósága a pfodSMS üzenettervezésben található. A 128 bites biztonság részleteiért lásd: Kihívás és válaszbiztonság az internethez csatlakoztatott pfodDevices szolgáltatásban. Lásd: pfodDesigner, Android / Arduino menük Egyszerűsítve a saját egyéni menü kialakításának részleteiért. A pfod üzenetek és képernyők részleteit, amelyeket saját maga adhat hozzá, lásd a pfodSpecification.pdf dokumentumban.

Példaprojekt - SMS -es melegvíz -szabályozás

Példa projektként ez az útmutató leírja, hogyan lehet be- és kikapcsolni a melegvíz -melegítőt SMS -ben, és ellenőrizni, hogy be van -e kapcsolva. Telepítéséhez villanyszerelőre lesz szüksége.

1. lépés: Gyorsindítás - SMS távirányító

Gyors indítás - SMS távirányító
Gyors indítás - SMS távirányító
Gyors indítás - SMS távirányító
Gyors indítás - SMS távirányító

Íme egy rövid útmutató a saját SMS -melegvíz -szabályozó kiépítéséhez.

  1. Vásárolja meg a listában szereplő alkatrészeket..
  2. Telepítse az Arduino IDE 1.5.8 verzióját, és töltse le és telepítse a pfodParser könyvtárat.
  3. Töltse le az ingyenes pfodDesigner programot.
  4. Tervezze meg egyéni menüjét, hogy be- és kikapcsolhassa a digitális bemenetet az Android -mobil menücsúszkájából.
  5. Generálja a kódot, és válassza a SeeedStudio SIM900 GPRS pajzsot kapcsolatként. (Lehetőség van az IteadStudio SIM900 pajzsra is).
  6. Vigye át a generált kódot a mobiljáról az IDE -re (a részletekért lásd a pfodAppForAndroidGettingStarted.pdf fájlt), adja hozzá titkos jelszavát, fordítsa le és töltse le az Arduino Mega 2560 -ra.
  7. Helyezze be a SIM -kártyát a GPRS -pajzsba, és csatlakoztassa a pajzsot a Mega 2560 -hoz. Győződjön meg arról, hogy a soros linkek Hardware Serial -ra vannak állítva a fentiek szerint.
  8. Csatlakoztassa a digitális kimenetet a szilárdtest vagy normál reléhez a D3 és a GND között (vagy a pfodDesigner -ben kiválasztott tűk közül). A relékről további részletekért lásd: A relék hozzáadása az Arduino -hoz.
  9. Alkalmazza a Mega USB tápellátását. A könyvtári kód bekapcsolja a GPRS pajzsot.
  10. Telepítse a pfodApp alkalmazást Android -mobiljára, és hozzon létre SMS -kapcsolatot a pajzs SIM -telefonszámával. (részletekért lásd a pfodAppForAndroidGettingStarted.pdf fájlt). Állítsa be a kapcsolat jelszavát, ha hozzáadott egyet.
  11. Csatlakozzon, és tekintse meg egyéni menüjét SMS -ben. Kattintson a gombra a relé be- vagy kikapcsolásához.
  12. Kérje meg villanyszerelőjét, hogy szerelje fel a relét a melegvíz -körbe, és csatlakoztassa az USB -tápegységet a Mega és a pajzs táplálásához

2. lépés: További részletek

pfodDesigner

A pfodDesigner létrehozza az összes kódot, amelyre szükség van a szilárdtest vagy más relék be- és kikapcsolásához, de a pfodParser könyvtárban lévő SMS-kapcsolat támogatja az összes pfod-képernyőt, így amikor elkezdi, hozzáadhat almenüket, numerikus csúszkákat, többszöveges csúszkák, szövegbeviteli képernyők, adatnaplózás és ábrázolás SMS-ben. Tekintse meg a pfodSpecification.pdf fájlt az összes támogatott képernyőről és üzenetről.

A generált kód itt található. Nincs gyors és egyetlen kapcsolója, amely rövidre zárja az üzenetet. A hosszú menük több SMS -ben is elküldésre kerülnek, amelyek megérkezése tovább tart. Ha hosszú menüvel rendelkezik, a pfodParser könyvtárban található sms csatlakozási kód kezeli mindezt.

Jelszó hozzáadásához módosítsa a sort

parser.connect (& pfodSMS); // csatlakoztassa az elemzőt az SMS -streamhez valami hasonlóhoz: parser.connect (& pfodSMS, F ("173057F7A706AF9BBE65D51122A14CEE"));

de használjon saját jelszót, legfeljebb 32 hexadecimális számjegyet, 0..9 A.. F. A 32 hexadecimális számnál rövidebb jelszavak nullával vannak kitöltve. Tekintse meg az Egyszerű Wifi/Internet pfodDevice 128 bites biztonsággal (Arduino) című részt, hogy hogyan hozhat létre véletlenszerű jelszót, és hogyan viheti ki QR -kódba, hogy könnyen bevihesse az Androidba. Lásd még: pfodAppForAndroidGettingStarted.pdf

A pfodDesigner kódot is generál a Bluetooth- és wifi -kapcsolatokhoz soros és Ethernet -kapcsolaton keresztül, SPI -n keresztül, opcionális 128 bites biztonsággal

pfodApp

Az első dolog, amit fel kell ismernünk, hogy az SMS csúnya, és előfordulhat, hogy egyáltalán nem ér oda, vagy nem érkezik meg. Tehát amikor csatlakozik a pfodApp alkalmazáshoz, késleltetni fogja az SMS -t. Ha az üzenet elveszett vagy késik, a pfodApp 3 perc múlva automatikusan elküldi. 5 ilyen újbóli próbálkozás után a pfodApp közli, hogy a kapcsolat megszakadt. A 3 perces időt a pfodApp kapcsolatszerkesztő képernyőjén állíthatja be.

Ha hozzáad egy jelszót, akkor hat SMS (három -három irány) érkezik, mielőtt a pfodApp megkapja a főmenüt. Ezek az extra üzenetek csak a kezdeti kapcsolaton jelennek meg, ezt követően nincsenek további üzenetek jelszó használatakor. Tehát kezdje el jelszó nélkül, hogy lássa, minden működik, majd adja hozzá később a jelszót.

SMS/GPRS pajzs

Lehetséges problémák a PIN -kóddal védett vagy a hálózathoz való csatlakozáshoz nem jogosult SIM -kártyák. A pfod könyvtár automatikusan bekapcsolja a GPRS pajzsot, és megkeresi a „hívásra kész” választ. Ha a válasz nem érkezik meg, a könyvtár kikapcsol, és újra megpróbálja, tehát ha látja, hogy a tápellátás jelzőfénye 20 másodpercig világít a GPRS -pajzson, majd kialszik, akkor probléma van a hálózathoz való kapcsolódással. Vegye ki a SIM -kártyát, és próbálja ki egy normál telefonban. Ellenőrizze, hogy nem kér -e PIN -kódot.

Ha nem ez a probléma, akkor be kell kapcsolnia az indítási hibakeresést, az alábbiakban leírtak szerint, hogy lássa, mi történik.

A Mega / GPRS pajzs áramellátása

Az árnyékolás 2A impulzusos és 0,5A -ig folyamatosan húz. Feltételezve, hogy 12 V -os akkumulátorról van szó, a 0,5 A meghaladja a fedélzeti Mega tápegység kapacitását. Tehát ezt az árnyékolást NEM szabad a Mega 7V -12V bemenetéről táplálni. Az alternatíva a Mega és a pajzs áramellátása az USB -kapcsolaton keresztül. 1A USB tápegységet használtam. A teszteléshez egy Belkin által táplált elosztót (F4U020) használtam, hogy megakadályozzam a túlzott áramot a számítógép USB -portjából.

12 V -os akkumulátor esetén javaslom, hogy használjon minőségi, 1 A -os vagy magasabb típusú USB 5V -os USB töltőt. A minőségi autóipari USB 5V -os tápegységet úgy kell megtervezni, hogy kezelje az autó elektromos rendszereiben előforduló túlfeszültség -tüskéket, és ezért alkalmasnak kell lennie a legtöbb 12 V -os töltőrendszerre.

Szilárdtest relé

Mivel ez a példaprojekt melegvizes fűtőtestet (ellenállásos terhelést) szabályoz, a szilárdtest relé ideális. Ha be- vagy kikapcsolni kívánja a motorokat, beindítja a generátorokat stb., Beszélje meg villanyszerelőjével a feladathoz megfelelő relét. Ha nagyteljesítményű relére van szüksége, akkor használjon egy kis relémeghajtót az arduino tábla mellett a be- és kikapcsoláshoz.

A szilárdtest relé számos változatban kapható. Győződjön meg róla, hogy olyan készüléket vásárol, amely képes kezelni a fűtőelem áramát és feszültségét, és 5 V egyenárammal és néhány milliamperrel vezérelhető az Arduino kimeneti csapból. Az itt használt FOTEK SSR-40 DA 380 VAC-ra kapcsol 40 Amp-en, és bármi, ami több mint 3 V egyenáramú, vezérli, és kevesebb, mint 7 mA.

Hűtőbordát kell használnia, és vékony kenetet kell felhordania a hűtőborda -keverékből vagy hőzsírból a szilárdtest -relé hátoldalán, mielőtt csavarja a hűtőbordára. Az ötlet az, hogy teljesen fedje le a felületet a legvékonyabb fejmosó vegyülettel, hogy kitöltse a fém felületének mikroszkopikus völgyeit. Bekapcsoláskor a szilárdtestalapú kapcsoló 1,6 V -ot esik le, ami 16 watt hőt termel 10 Amp -en. A hűtőbordának meg kell szabadulnia ettől a hőtől, ezért szabad levegőre kell felszerelni, nem pedig műanyag dobozba.

A késések gonoszak

A GPRS pajzs bármikor kézbesíti az SMS -eket a soros kapcsolaton keresztül, és a fő huroknak () meg kell hívnia a cmd = parser.parse (); gyakran a soros adatok feldolgozása előtt, mielőtt az Arduino könyvtári kód 64 bájtos puffere megtelik, és az adatok elvesznek.

Tehát a fő hurkot () gyorsan futnia kell. Soha ne használjon késleltetést (), és ellenőrizze, hogy az Ön által használt könyvtárak egyike sem késlekedik -e. A SIM900 alapértelmezett 19200 baudát használva a Hardver Serialon keresztül, nem találtam szükségesnek a pufferméret növelését az Arduino könyvtár kódjában. Nem szoftveres sorozatot használok, csak soros és soros1, hardveres soros kapcsolatokat, és szinte minden üzenet, amit a pfodApp küld, nagyon kicsi, 10 vagy 12 bájt. Ha szeretné, növelheti azonban az Arduino puffer méretét, ha a HardwareSerial.h fájlban megadott definíciót #define SERIAL_BUFFER_SIZE 64 -ről #define SERIAL_BUFFER_SIZE 128 -ra módosítja

Azonban azt találtam, hogy ha engedélyezem a hibakeresési kimenetet, az alábbiakban leírtak szerint, akkor nagyon gyors adatátviteli sebességgel kell rendelkeznem a terminálkapcsolathoz, különben a késleltetés, amelyet a hibakeresési üzenetek küldése a terminálhoz okozott, az SMS -üzenetek egy részének hiányát okozta.

Telepítés

Hozzáadtam egy csavaros kapocspajzsot, így volt valami, amire csatlakoztatnom kellett a szilárdtest relé vezetékeit. A villanyszerelőm még nem telepítette a vezérlőt. Szigetelt dobozba kell helyezni, de a hűtőbordával ki kell nyúlni egy résen, és be kell vezetni a forró víz tápvezetékébe.

3. lépés: Javaslatok további fejlesztésekhez - Riasztások, adatnaplózás és ábrázolás

A fenti példaprojekt csak azt mutatja meg, hogy a víz hogyan van be- és kikapcsolva, és lehetővé teszi a váltást. De az SMS kapcsolat kezeli az összes pfod üzenetet (lásd pfodSpecification.pdf)

Ha hőmérséklet -érzékelőt ad hozzá az arduino -hoz, akkor a hőmérsékletet is elküldheti, és rendszeres időközönként visszaküldi a leolvasott értékeket. Ha vissza szeretné küldeni az adatokat, a Bluetooth, a wifi vagy az SMS esetében is ugyanaz, csak adja hozzá a kódot, mint az alábbi minta. Az adatnaplózás és -ábrázolás további részleteit és példáit lásd: Adatnaplózás és -ábrázolás.

parser.println (idő); parser.print (','); parser.println (hőmérséklet);

Amikor a pfodSMS könyvtár látja az új sort a println () -ből, a nyers adatokat SMS -ben küldi el. Mobilján hagyja futni a háttérben a pfodApp alkalmazást, és a mobilja értesíti Önt, amikor SMS érkezik. Nyissa meg újra a pfodApp alkalmazást, hogy előrébb vigye, majd nyissa meg a Nyers adatok képernyőt a mobiltelefon menüjében az adatok megtekintéséhez. Megjegyzés: A pfodSMS üzenetek UTF-8 karakterek, a kapcsolati és üzenetszámokkal együtt, Base64 kódolással kódolva, így nem úgy néznek ki, mint a normál szöveg. A részletekért lásd a pfodSMS üzenettervet.

Ugyanezzel a módszerrel figyelmeztetést küldhet, ha valami távolról megváltozik. azaz parser.println (F („0 ℃ alatti külső hőmérséklet”)); Megjegyzés: a karakterlánc ℃ UTF-8 karaktere. A pfodSMS minden UTF-8 karaktert átad a pfodApp-nak.

4. lépés: Hibakeresés az SMS -kapcsolat használata közben a PfodParser könyvtárban

Hibakeresés az SMS kapcsolat használata közben a PfodParser könyvtárban
Hibakeresés az SMS kapcsolat használata közben a PfodParser könyvtárban
Hibakeresés az SMS kapcsolat használata közben a PfodParser könyvtárban
Hibakeresés az SMS kapcsolat használata közben a PfodParser könyvtárban

A pfodDesigner működőkódot generál, de érdemes lehet hibakeresést végezni, vagy megnézni, hogy mi történik, miközben a GPRS pajzs elindul vagy SMS -eket fogad. Van egy -két megközelítés.

Saját kód hibakeresése

Ha saját kódjának hibakeresését végzi, egyszerűen megjegyzést fűzhet a pfodSMS sorhoz, és csatlakoztathatja az elemzőt a soroshoz, majd eltávolíthatja a GPRS pajzsot, és futtathatja a Mega -t az Arduino terminálról. azaz módosítsa a beállítást () erre

//pfodSMS.init(&Serial, 9); // ne indítsa el a GPRS pajzs elemzőt.connect (& Serial); // csatlakoztassa az elemzőt a soroshoz az SMS adatfolyam helyett

Ezután az Arduino terminálról beírhatja a {.} Billentyűt, hogy a Mega visszaadja a főmenüt, majd küldje vissza a végrehajtani kívánt parancsot, pl. {A`1} a relé bekapcsolásához és {A`0} kikapcsolásához. (A pfodApp rendszerint elküldi ezeket az üzeneteket, ha rákattint a csúszkára.) Ezután adjon hozzá további hibakeresési elemzőt: parser.println (), hogy ellenőrizze, hogy a hozzáadott extra kód mit csinál.

A GPRS pajzs figyelése

Ha látni szeretné, mit csinál a GPRS pajzs. Hogyan kezdődik, SMS -üzenetek fogadása stb. Ezután ki kell cserélnie az árnyékolás vezetékét, csatlakoztassa a Mega Serial1 (soros) egységhez, és szabadítsa fel a soros (USB) kapcsolatot a hibakeresési kimenethez az Arduino IDE Monitorhoz.

A GPRS pajzsnak a Mega 2560 Serial1 -hez való csatlakoztatásához távolítsa el a fent látható linkeket, és csatlakoztassa a vezetékeket a Mega TX1 és RX1 csapjaihoz.

Ezután módosítsa a setup () kódot erre

void setup () {Serial1.begin (19200); // a sorozat megváltoztatása 1 -es sorozatra Serial.begin (57600); // MEGJEGYZÉS: az USB soros port gyors átviteli sebessége // az Arduino IDE monitorhoz. for (int i = 3; i> 0; i--) {// várjon néhány másodpercet, hogy megnézzük, programozunk-e késleltetést (1000); } pinMode (cmd_A_pin, OUTPUT); pfodSMS.setDebugStream (& Sorozat); // ezt a pfod_SMS.init // vagy bármely más pfod_SMS metódus hívása előtt kell megtenni // inicializálni az SMS -t és csatlakoztatni az elemzőt // a következő sor megváltoztatása Serial1 pfodSMS.init (& Serial1, 9); // a Seeed GPRS pajzs V2 csatlakoztatása a Serial1 -hez a Serial parser helyett.setDebugStream (& Serial); // ezt meg kell tennie a parser.connect // vagy bármely más elemző metódus előtt, ha meghívja a parser.connect (& pfodSMS); // csatlakoztassa az elemzőt az SMS -adatfolyamhoz}

Most törölheti a hibakeresési beállítások némelyikét a pfodSMS_SIM900.cpp fájl pfodParser könyvtárában.

Például a megjegyzés megszüntetése #define DEBUG_SETUP kinyomtatja (a hibakeresési folyamba), hogy mi történik a GPRS pajzs bekapcsolása és az SMS-üzenetek fogadására való felkészülés közben.

A megjegyzések megszüntetése #define DEBUG sok információt ad a fogadott SMS-ekről.

Ez az !

Ajánlott: