Tartalomjegyzék:
- 1. lépés: Gyorsindítás - SMS távirányító
- 2. lépés: További részletek
- 3. lépés: Javaslatok további fejlesztésekhez - Riasztások, adatnaplózás és ábrázolás
- 4. lépés: Hibakeresés az SMS -kapcsolat használata közben a PfodParser könyvtárban
Videó: Megbízható, biztonságos, testreszabható SMS távirányító (Arduino/pfodApp) - Nincs szükség kódolásra: 4 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:40
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ó
Íme egy rövid útmutató a saját SMS -melegvíz -szabályozó kiépítéséhez.
- Vásárolja meg a listában szereplő alkatrészeket..
- Telepítse az Arduino IDE 1.5.8 verzióját, és töltse le és telepítse a pfodParser könyvtárat.
- Töltse le az ingyenes pfodDesigner programot.
- Tervezze meg egyéni menüjét, hogy be- és kikapcsolhassa a digitális bemenetet az Android -mobil menücsúszkájából.
- Generálja a kódot, és válassza a SeeedStudio SIM900 GPRS pajzsot kapcsolatként. (Lehetőség van az IteadStudio SIM900 pajzsra is).
- 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.
- 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.
- 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.
- Alkalmazza a Mega USB tápellátását. A könyvtári kód bekapcsolja a GPRS pajzsot.
- 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.
- Csatlakozzon, és tekintse meg egyéni menüjét SMS -ben. Kattintson a gombra a relé be- vagy kikapcsolásához.
- 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
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:
Biztonságos Arduino távirányító: 5 lépés
Biztonságos Arduino távirányító: Ez egy példa arra, hogyan lehet ultra biztonságos vezeték nélküli (garázs) távirányítót készíteni. Általában a távirányítók gördülő kód típusú biztonsággal rendelkeznek, amelyet minden fejlett tolvaj megkerülhet. Ez a távoli rendszer 16 bájtos kulcs használatán alapul, így betörni az lenne
Egyszerű, olcsó és megbízható érintőérzékelő, mindössze 3 részből: 3 lépés
Egyszerű, olcsó és megbízható érintőérzékelő, mindössze 3 részből: Mindenféle elektronikus eszköz vezérlése az ujja érintésével nagyon hasznos lehet. Ebben az oktatóanyagban megmutatom, hogyan lehet felépíteni egy egyszerű, de erőteljes, hibátlanul működő érintésérzékelőt. Csak egy szabványos tranzisztorra és két
Arduino alapú GSM/SMS távirányító: 16 lépés (képekkel)
Arduino alapú GSM/SMS távirányító:! ! ! N O T I C E! ! ! Mivel a környékbeli mobiltelefon -tornyot korszerűsítik, már nem tudom használni ezt a GSM modult. Az újabb torony már nem támogatja a 2G eszközöket. Ezért már nem tudok semmilyen támogatást nyújtani ehhez a projekthez. Ilyen wi
Testreszabható lézerlabirintus Arduino és Android alkalmazással: 13 lépés (képekkel)
Testreszabható lézerlabirintus az Arduino és az Android alkalmazással: Sok labirintust láthat a gyerekkönyvektől az automatikus labirintus -megoldó robotig. Itt megpróbálok valamit másképp, ahol lézeres visszaverődéssel megoldom a labirintust. Amikor kezdetben azt gondolom, hogy nagyon egyszerű, de olcsón csináld, több időbe kerül a pontosság. Ha valaki szeretne
Arduino Word Clock - testreszabható és könnyen összeállítható: 15 lépés (képekkel)
Arduino Word Clock - testreszabható és könnyen felépíthető: A párom látott egy órát egy üzletben, amely szavak megvilágításával megmondta az időt, hogy írjon egy teljes írott mondatot a véletlenszerű betűk összevisszaságából. Tetszett nekünk az óra, de nem az ára - ezért úgy döntöttünk, hogy saját tervezéssel készítjük el