Mundarija:

Ishonchli, xavfsiz, moslashtirilgan SMS masofadan boshqarish pulti (Arduino/pfodApp) - kodlash shart emas: 4 qadam
Ishonchli, xavfsiz, moslashtirilgan SMS masofadan boshqarish pulti (Arduino/pfodApp) - kodlash shart emas: 4 qadam

Video: Ishonchli, xavfsiz, moslashtirilgan SMS masofadan boshqarish pulti (Arduino/pfodApp) - kodlash shart emas: 4 qadam

Video: Ishonchli, xavfsiz, moslashtirilgan SMS masofadan boshqarish pulti (Arduino/pfodApp) - kodlash shart emas: 4 qadam
Video: массаж киладиган стул класвса 1844-2500 рубль 2024, Iyul
Anonim
Ishonchli, xavfsiz, moslashtirilgan SMS masofadan boshqarish pulti (Arduino/pfodApp) - kodlash shart emas
Ishonchli, xavfsiz, moslashtirilgan SMS masofadan boshqarish pulti (Arduino/pfodApp) - kodlash shart emas

2018 yil 6 -iyuldagi yangilanish: SIM5320 yordamida ushbu loyihaning 3G/2G versiyasi bu erda mavjud

Yangilanish: 2015 yil 19 -may: pfodParser kutubxonasining 2.5 yoki undan yuqori versiyasidan foydalaning. Qalqib chiqqandan so'ng tarmoqqa ulanish uchun etarli vaqt ajratilmasligi haqida xabar berilgan

Kirish

PfodSMS masofadan boshqarish pulti boshqa dasturlardan nimasi bilan farq qiladi:-

  • Bu ishonchli-buyruqlar doimo javob beradi va yo'qolgan xabarlar qayta so'raladi
  • Bu xavfsiz - 128 bitli parol himoyasidan foydalanadi
  • Bu uchinchi tomon veb -xizmatlari hisobini talab qilmaydi - faqat faol SIM -karta kerak (pinsiz)
  • Bu sozlanishi - siz shaxsiy menyuni yaratish uchun pfodDesigner -dan foydalanishingiz mumkin
  • Bu oson - pfodDesigner barcha kodlarni ishlab chiqaradi. Hech qanday kodlashni amalga oshirishning hojati yo'q.
  • Bu moslashuvchan-barcha pfod ekranlar SMS orqali mavjud, masalan, pastki menyular, ko'p va bitta tanlov ro'yxati, matn kiritish, ma'lumotlarni yozish va chizish.

SMS ulanish qanday ishonchli amalga oshirilishini pfodSMS xabarlar dizayniga qarang. 128 bitli xavfsizlik haqida batafsil ma'lumotni Internetga ulangan pfodDevices uchun Challenge va Response Security ga qarang. PfodDesigner, Android / Arduino menyulariga qarang, siz o'zingizning shaxsiy menyuingizni loyihalashtirish haqida batafsil ma'lumot olishingiz mumkin.

Loyiha namunasi - SMS orqali issiq suvni boshqarish

Misol tariqasida, bu ko'rsatma issiq suv isitgichini SMS orqali qanday yoqish va o'chirish va uning yoqilgan yoki o'chmaganligini tekshirishni tasvirlaydi. O'rnatish uchun sizga elektrchi kerak bo'ladi.

1 -qadam: Tez ishga tushirish - SMSni masofadan boshqarish

Tez ishga tushirish - SMSni masofadan boshqarish
Tez ishga tushirish - SMSni masofadan boshqarish
Tez ishga tushirish - SMSni masofadan boshqarish
Tez ishga tushirish - SMSni masofadan boshqarish

Bu erda o'zingizning SMS -ni issiq suv boshqaruvini yaratish bo'yicha tezkor qo'llanma.

  1. Ushbu ro'yxatdagi qismlarni sotib oling.
  2. Arduino IDE 1.5.8 versiyasini o'rnating va pfodParser kutubxonasini yuklab oling va o'rnating.
  3. PfodDesigner -ni bepul yuklab oling.
  4. Android mobil qurilmangizdagi menyu slayderidan raqamli kirishni yoqish va o'chirish uchun shaxsiy menyuni tuzing.
  5. Ulanish sifatida SeeedStudio SIM900 GPRS ekranini tanlab, kod yarating. (IteadStudio SIM900 qalqoni uchun variant ham mavjud).
  6. Yaratilgan kodni mobil telefoningizdan IDE -ga o'tkazing (batafsil ma'lumot uchun pfodAppForAndroidGettingStarted.pdf -ga qarang), maxfiy parolingizni qo'shing, kompilyatsiya qiling va Arduino Mega 2560 -ga yuklab oling.
  7. SIM -kartangizni GPRS qalqoniga o'rnating va ekranni Mega 2560 -ga ulang. Seriya havolalari yuqorida ko'rsatilgan uskuna uchun o'rnatilganligiga ishonch hosil qiling.
  8. Raqamli chiqishni D3 va GND (yoki siz pfodDesigner -da tanlagan pin) orasidagi qattiq holatga yoki oddiy rölega ulang. O'rnimizni haqida batafsil ma'lumot olish uchun Arduino -ga o'z o'rni qanday qo'shilishini ko'ring.
  9. USB quvvatini Mega -ga ulang. Kutubxona kodi sizga GPRS qalqonini yoqadi.
  10. Android mobil telefoningizga pfodApp -ni o'rnating va qalqon sim -telefon raqamiga SMS -ni ulang. (tafsilotlar uchun pfodAppForAndroidGettingStarted.pdf ga qarang). Agar siz uni qo'shgan bo'lsangiz, ulanish uchun parolni o'rnating.
  11. Ulaning va SMS orqali ko'rsatiladigan shaxsiy menyuni ko'ring. O'rnimizni yoqish yoki o'chirish uchun tugmani bosing.
  12. O'zingizning issiq suv o'tkazgichingizga o'rni o'rnatish uchun elektrchingizni oling va mega va qalqonni quvvatlantirish uchun USB quvvat manbaiga ulang.

2 -qadam: Batafsil ma'lumot

pfodDesigner

PfodDesigner qattiq holatni yoki boshqa röleyni yoqish va o'chirish uchun kerak bo'lgan barcha kodni ishlab chiqaradi, lekin pfodParser kutubxonasidagi SMS ulanishi barcha pfod ekranlarini qo'llab-quvvatlaydi, shuning uchun siz boshlaganingizdan so'ng pastki menyular, raqamli slayderlarni qo'shishingiz mumkin. ko'p matnli slayderlar, matn kiritish ekranlari, ma'lumotlarni yozish va hamma narsani SMS orqali tuzish. Qo'llab -quvvatlanadigan barcha ekranlar va xabarlar uchun pfodSpecification.pdf -ni tekshiring.

Yaratilgan kod bu erda. Xabarni qisqa tutish uchun hech qanday so'rov yo'q va faqat bitta kalit. Uzoq menyular bir nechta SMS -xabarlar orqali yuboriladi, ular kelishiga ancha vaqt ketadi. Agar sizda uzoq menyu bo'lsa, pfodParser kutubxonasidagi sms ulanish kodi bularning barchasini siz uchun hal qiladi.

SMS -ga ulanish uchun parolni qo'shish uchun chiziqni o'zgartiring

parser.connect (& pfodSMS); // tahlilchini SMS oqimiga parser.connect ga ulang (& pfodSMS, F ("173057F7A706AF9BBE65D51122A14CEE"));

lekin 32 parolli 0..9 A.. F gacha bo'lgan o'z parolingizdan foydalaning. 32 hexli raqamdan qisqa parollar 0 bilan to'ldirilgan. Tasodifiy parolni qanday yaratish va Android -ga oson kiritish uchun uni QR kodiga chiqarish uchun 128 bitli xavfsizlik (Arduino) bilan oddiy Wi -Fi/Internet pfodDevice -ga qarang. Shuningdek qarang pfodAppForAndroidGettingStarted.pdf

PfodDesigner, shuningdek, SPI orqali ketma -ket va Ethernet orqali bluetooth va wifi ulanishlari uchun kod ishlab chiqaradi, bularning barchasi ixtiyoriy 128 bitli xavfsizlik bilan.

pfodApp

Birinchi narsani anglash kerakki, bu SMS -xabar, lekin u hech qachon u erga kelmasligi yoki ishlamay qolishi mumkin. Shunday qilib, pfodApp -ga ulansangiz, SMS -javob kelguncha biroz kechikish bo'ladi. Agar xabar yo'qolgan yoki kechiktirilgan bo'lsa, pfodApp uni 3 daqiqadan so'ng avtomatik ravishda qayta yuboradi. 5 ta qayta urinishdan keyin pfodApp sizga aloqa uzilganligini aytadi. Siz pfodApp -ning ulanishni tahrirlash ekranida 3 minut vaqtni sozlashingiz mumkin.

Agar siz parol qo'shsangiz, pfodApp tomonidan asosiy menyu qabul qilinishidan oldin oltita SMS -xabar (har tomondan uchtadan) bo'ladi. Bu qo'shimcha xabarlar faqat birinchi ulanishda sodir bo'ladi, shundan keyin parol ishlatilganda qo'shimcha xabarlar bo'lmaydi. Shunday qilib, hamma narsa ishlayotganini ko'rish uchun parolsiz boshlang va keyinroq parolni qo'shing.

SMS/GPRS qalqoni

Mumkin bo'lgan muammolar - PIN -kodlar bilan himoyalangan yoki tarmoqqa ulanish huquqiga ega bo'lmagan SIM -kartalar. Pfod kutubxonasi avtomatik ravishda GPRS qalqonini yoqadi va "qo'ng'iroq tayyor" javobini qidiradi. Agar bu javob kutubxonaga etib bormasa va u yana urinib ko'radi, agar GPRS qalqoni 20 soniya davomida yonib turishini ko'rsangiz va o'chib qolsa, tarmoqqa ulanishda muammo bo'ladi. SIM -kartani chiqarib oling va uni oddiy telefonda sinab ko'ring. Sizga pin raqami so'ralmaganligini tekshiring.

Agar bu muammo bo'lmasa, nima bo'layotganini ko'rish uchun siz quyida tasvirlanganidek, ishga tushirishni tuzatishni yoqishingiz kerak bo'ladi.

Mega / GPRS qalqonini quvvatlantirish

Qalqon doimiy ravishda 2A gacha va 0,5A gacha pulsatsiyalanadi. 12V batareya zaryadini hisobga olsak, 0,5A bortidagi Mega quvvat manbasidan oshadi. Shunday qilib, bu qalqon Mega -ning 7V -dan 12V -gacha bo'lgan kuchlanishidan QUVVATLANMASI kerak. Muqobil variant - Mega va qalqonni USB ulanishi orqali quvvatlantirish. Men 1A USB ta'minotidan foydalandim. Sinov uchun men kompyuterimning USB portidan ortiqcha oqim olishining oldini olish uchun Belkin bilan ishlaydigan uyadan (F4U020) foydalandim.

12V batareya ta'minoti uchun men 1A yoki undan yuqori sifatli USB 5V zaryadlovchi qurilmasidan foydalanishni taklif qilaman. USB 5V avtomobilining yuqori sifatli avtoulovlari elektr tizimlarida ro'y beradigan yuqori kuchlanishlarni boshqarishga mo'ljallangan bo'lishi kerak va shuning uchun 12V zaryadlovchi tizimlarining ko'pchiligiga mos bo'lishi kerak.

Qattiq holatli estafeta

Ushbu namunaviy loyiha issiq suv isitgichini (rezistiv yuk) boshqargani uchun, qattiq hol o'rni idealdir. Agar siz motorlarni yoqishni yoki o'chirishni, generatorlarni ishga tushirishni va hokazolarni xohlasangiz, elektrchi bilan ish uchun mos keladigan o'rni haqida gaplashing. Agar sizga yuqori quvvatli o'rni kerak bo'lsa, arduino platasidagi kichik o'rni haydovchisidan foydalanib, quvvat rölesini yoqish va o'chirish mumkin.

Qattiq hol rölesining ko'plab versiyalari mavjud. Isitgichingizning tokini va kuchlanishini ushlab turadigan va Arduino chiqish pinidan 5V shahar va bir necha milliamper bilan boshqariladigan qurilmani sotib olganingizga ishonch hosil qiling. Bu erda ishlatiladigan, FOTEK SSR-40 DA, 40Ampsda 380VAC ga o'tadi va 3V DC dan yuqori bo'lgan har qanday narsa tomonidan boshqariladi va 7mA dan kam oladi.

Issiqlik moslamasini ishlatishingiz kerak va uni issiqlik qabul qilgichga ulashdan oldin qattiq holat rölesinin orqa qismiga issiqlik qabul qilgich aralashmasi yoki termal yog'ning ingichka smearini surtishingiz kerak. Metall yuzasidagi mikroskopik vodiylarni to'ldirish uchun sirtni boshning eng nozik qatlamli qatlami bilan to'liq yopishdir. Qattiq holatda kalit yoqilganda 1,6 V tushadi, bu esa 10 A / s da 16 Vatt issiqlik ishlab chiqaradi. Issiqlik moslamasini bu issiqdan qutqarish kerak, shuning uchun uni plastik qutiga emas, erkin havoda o'rnatish kerak.

Kechikishlar yomon

GPRS qalqoni istalgan vaqtda ketma -ket ulanish orqali SMS xabarlarni etkazib beradi va sizning asosiy tsiklingiz () cmd = parser.parse () ni chaqirishi kerak; ko'pincha Arduino kutubxonasi kodidagi 64 baytli bufer to'ldirilmaguncha va ma'lumotlarni yo'qotishdan oldin ketma -ket ma'lumotlarni qayta ishlash uchun..

Shunday qilib, siz asosiy loopni () tez ishlashi kerak. Siz hech qachon delay () dan foydalanmasligingiz kerak va siz foydalanayotgan kutubxonalarning hech birida kechikishlar yo'qligini tekshirishingiz kerak. Uskuna ketma -ketligi orqali SIM900 standart 19200 -sonli bod tezligidan foydalanib, Arduino kutubxona kodidagi bufer hajmini oshirishni zarur deb topmadim. Men Serial Software dasturidan foydalanmayman, faqat Serial va Serial1, Hardware Serial ulanishlari va pfodApp yuboradigan deyarli barcha xabarlar juda kichik, 10 yoki 12 bayt. Agar xohlasangiz, HardwareSerial.h dagi ta'rifni #define SERIAL_BUFFER_SIZE 64 dan #define SERIAL_BUFFER_SIZE 128 ga o'zgartirib, Arduino bufer hajmini oshirishingiz mumkin.

Ammo men topgan narsa shundaki, agar men quyida tasvirlanganidek, disk raskadrovka chiqishini yoqsam, terminalga ulanish uchun juda tez uzatish tezligiga ega bo'lishim kerak edi, aks holda terminalga disk raskadrovka xabarlarini yuborish bilan kechikish SMS xabarlarning bir qismini o'tkazib yuborishga olib keldi..

O'rnatish

Men vintli terminal qalqoni qo'shdim, shuning uchun menda Solid State o'rni simlarini ulash uchun biror narsa bor edi. Men hali elektromontyorimni boshqaruvchini o'rnatmaganman. Uni izolyatsiyalangan qutiga solib qo'yish kerak, lekin issiqlik qabul qilgich uyadan chiqib, issiq suv simi simiga ulangan.

3 -qadam: qo'shimcha takomillashtirish bo'yicha takliflar - ogohlantirishlar, ma'lumotlarni qayd qilish va tuzish

Yuqoridagi misol - suvning yoqilishi yoki o'chishi va uni almashtirishga imkon beradigan misol. Lekin SMS aloqasi barcha pfod xabarlarini boshqaradi (qarang pfodSpecification.pdf)

Agar siz arduino -ga harorat sensori qo'shsangiz, siz harorat monitorini yuborishingiz va o'qishni vaqti -vaqti bilan qaytarishingiz mumkin. Ma'lumotni qaytarib yuborish bluetooth, wifi yoki SMS uchun bir xil bo'ladi, kodni quyidagi misolga qo'shing. Ma'lumotlarni ro'yxatga olish va tuzish bo'yicha batafsil ma'lumot va misollar uchun Ma'lumotlarni ro'yxatga olish va chizish bo'limiga qarang.

parser.println (vaqt); parser.print (','); parser.println (harorat);

PfodSMS kutubxonasi println () dan yangi qatorni ko'rganda, u xom ma'lumotlarni SMS sifatida yuboradi. Mobil telefoningizda pfodApp -ni orqa fonda qoldiring va mobil telefoningiz sizga SMS kelganida xabar beradi. PfodApp -ni yana oching, uni old tomonga olib keling va keyin ma'lumotlarni ko'rish uchun mobil menyudan Raw Data ekranini oching. Eslatma: pfodSMS xabarlari ulanish va xabar raqamlari bilan birga UTF-8 belgilaridan iborat bo'lib, ular oddiy matnga o'xshamasligi uchun Base64 kodlash yordamida kodlanadi. Barcha tafsilotlar uchun pfodSMS xabarlar dizayniga qarang.

Siz masofadan turib biror narsa o'zgarganda ogohlantirish yuborish uchun xuddi shu jarayondan foydalanishingiz mumkin. ya'ni parser.println (F ("Tashqi harorat 0 below dan past")); Eslatma: satrda ℃ UTF-8 belgisi. pfodSMS barcha UTF-8 belgilarini pfodApp-ga o'tkazadi.

4 -qadam: PfodParser kutubxonasida SMS ulanishdan foydalanganda disk raskadrovka

PfodParser kutubxonasida SMS ulanishdan foydalanganda disk raskadrovka
PfodParser kutubxonasida SMS ulanishdan foydalanganda disk raskadrovka
PfodParser kutubxonasida SMS ulanishdan foydalanganda disk raskadrovka
PfodParser kutubxonasida SMS ulanishdan foydalanganda disk raskadrovka

PfodDesigner ishlaydigan kodni ishlab chiqaradi, lekin siz o'zingizning qo'shimcha kodingizni tuzatishingiz yoki GPRS qalqoni ishga tushganda yoki SMS -xabarlarni qabul qilayotganingizda nima bo'layotganini ko'rishingiz mumkin. Siz qabul qilishingiz mumkin bo'lgan bir nechta yondashuvlar mavjud.

O'z kodingizni tuzatish

Agar siz o'zingizning kodingizni tuzatayotgan bo'lsangiz, pfodSMS liniyasini sharhlab, tahlilni Serialga ulashingiz mumkin, keyin GPRS qalqonini olib tashlashingiz va Mega -ni Arduino terminalidan ishga tushirishingiz mumkin. ya'ni setup () ni o'zgartiring

//pfodSMS.init(& Serial, 9); // GPRS qalqoni parser.connect (& Serial) ni ishga tushirmang; // tahlil qilish vositasini SMS oqimi o'rniga Serialga ulang

Keyin Arduino terminalidan Mega -ni asosiy menyuni qaytarish uchun {.} Yozib, keyin bajarmoqchi bo'lgan buyruqni qaytarib yuborishingiz mumkin. O'rnimizni yoqish uchun {A`1} va o'chirish uchun {A`0}. (PfodApp odatda bu xabarlarni slayderni bosganingizda yuboradi.) Keyin qo'shimcha tuzatuvchi parser.println () ni qo'shib, qanday qo'shimcha kodni bajarayotganini kuzatib boring.

GPRS qalqoni monitoringi

Agar siz GPRS qalqoni nima qilayotganini ko'rishni istasangiz. U qanday ishga tushadi, SMS -xabarlarni oladi va hokazo. Keyin siz Mega Serial1 (ketma -ket) ga ulanadigan qalqon simini o'zgartirishingiz va Arduino IDE monitoriga disk raskadrovka chiqishi uchun Serial (USB) ulanishini bo'shatishingiz kerak.

GPRS qalqonini Mega 2560 Serial1 ga ulash uchun yuqorida ko'rsatilgan havolalarni olib tashlang va Mega TX1 va RX1 pinlariga simlarni qo'shing.

Keyin setup () kodini o'zgartiring

void setup () {Serial1.begin (19200); // Serialni Serial 1 Serial.begin (57600) ga o'zgartirish; // USB Serial porti // Arduino IDE monitoriga tez uzatilish tezligiga E'tibor bering. for (int i = 3; i> 0; i--) {// bir necha soniya kutib turing, bizni dasturlashtirilganligini bilish uchun kechikish (1000); } pinMode (cmd_A_pin, OUTPUT); pfodSMS.setDebugStream (& Serial); // buni pfod_SMS.init // yoki boshqa pfod_SMS usuli chaqiruvidan oldin qilish kerak // SMSni ishga tushiring va tahlilchini ulang // keyingi qatorni Serial1 ga o'zgartiring pfodSMS.init (& Serial1, 9); // Seeed GPRS qalqoni V2 ni Serial parser.setDebugStream (& Serial) o'rniga Serial1 ga ulang; // buni parser.connect // yoki boshqa parser.connect (& pfodSMS) chaqiruvining boshqa usullaridan oldin qilish kerak; // tahlilchini SMS oqimiga ulang}

Endi siz pfodSMS_SIM900.cpp faylining pfodParser kutubxonasidagi disk raskadrovka sozlamalarini o'chirib tashlashingiz mumkin.

Masalan, #define DEBUG_SETUP-ni sharhlamang, GPRS qalqoni yoqilganda va SMS-xabarlarni qabul qilishga tayyor bo'lganda nima bo'layotganini (disk raskadrovka oqimiga) chop etadi.

Sharh berilmasa #define DEBUGabul qilinayotgan SMS xabarlar haqida ko'p ma'lumot beradi.

Bo'ldi shu !

Tavsiya: