Mündəricat:

Etibarlı, Təhlükəsiz, Özelleştirilebilir SMS Uzaqdan İdarəetmə (Arduino/pfodApp) - Kodlaşdırma tələb olunmur: 4 addım
Etibarlı, Təhlükəsiz, Özelleştirilebilir SMS Uzaqdan İdarəetmə (Arduino/pfodApp) - Kodlaşdırma tələb olunmur: 4 addım

Video: Etibarlı, Təhlükəsiz, Özelleştirilebilir SMS Uzaqdan İdarəetmə (Arduino/pfodApp) - Kodlaşdırma tələb olunmur: 4 addım

Video: Etibarlı, Təhlükəsiz, Özelleştirilebilir SMS Uzaqdan İdarəetmə (Arduino/pfodApp) - Kodlaşdırma tələb olunmur: 4 addım
Video: Hola taksi: Etibarlı. Təhlükəsiz. Sərfəli. 2024, Iyul
Anonim
Etibarlı, Təhlükəsiz, Özelleştirilebilir SMS Uzaqdan İdarəetmə (Arduino/pfodApp) - Kodlaşdırma tələb olunmur
Etibarlı, Təhlükəsiz, Özelleştirilebilir SMS Uzaqdan İdarəetmə (Arduino/pfodApp) - Kodlaşdırma tələb olunmur

6 İyul 2018 -i yeniləyin: SIM5320 istifadə edərək bu layihənin 3G/2G versiyası burada mövcuddur

Yeniləmə: 19 May 2015: pfodParser kitabxanasının Version 2.5 və ya daha yüksək versiyasını istifadə edin. Qalxanın işə salındıqdan sonra şəbəkəyə qoşulması üçün kifayət qədər vaxt verilməməsi barədə bildirilən bir problemi həll edir

Giriş

PfodSMS uzaqdan idarəetmə digər tətbiqlərdən nə ilə fərqlənir:-

  • Etibarlıdır-əmrlərə həmişə cavab verilir və itirilmiş mesajlar yenidən tələb olunur
  • Təhlükəsizdir - 128 bit parol qorunması istifadə edir
  • Üçüncü tərəf veb xidmət hesabları tələb etmir - yalnız aktiv SİM kart lazımdır (pin olmadan)
  • Fərdiləşdirilə bilər - öz xüsusi menyunuzu yaratmaq üçün pfodDesigner -dən istifadə edə bilərsiniz
  • Asan - pfodDesigner bütün kodu yaradır. Heç bir kodlaşdırmağa ehtiyac yoxdur.
  • Çevikdir-bütün pfod ekranları alt menyular, çoxlu və tək seçim siyahısı, mətn daxil etmə, məlumat girişi və qurma kimi SMS vasitəsilə mövcuddur.

SMS bağlantısının necə etibarlı qurulduğunu öyrənmək üçün pfodSMS mesaj dizaynına baxın. 128 bitlik təhlükəsizliyin təfərrüatları üçün İnternetə bağlı pfodDevices üçün Challenge və Response Security -ə baxın. PfodDesigner, Android / Arduino menyularına baxın, öz xüsusi menyunuzun dizaynı ilə bağlı ətraflı məlumat əldə edin.

Nümunə Layihə - SMS İsti Suya nəzarət

Nümunə bir layihə olaraq, bu təlimat isti su qızdırıcısının SMS vasitəsilə necə açılacağını və açılıp sönmədiyini yoxlamağı təsvir edir. Quraşdırmaq üçün elektrikçiyə ehtiyacınız olacaq.

Addım 1: Tez Başlat - SMS Uzaqdan İdarəetmə

Tez Başlat - SMS Uzaqdan İdarəetmə
Tez Başlat - SMS Uzaqdan İdarəetmə
Tez Başlat - SMS Uzaqdan İdarəetmə
Tez Başlat - SMS Uzaqdan İdarəetmə

Öz SMS isti su nəzarətinizi qurmaq üçün sürətli bir başlanğıc bələdçisidir.

  1. Bu siyahıdakı hissələri satın alın..
  2. Arduino IDE 1.5.8 versiyasını quraşdırın və pfodParser kitabxanasını yükləyin.
  3. Pulsuz pfodDesigner yükləyin.
  4. Android mobil telefonunuzdakı bir menyu kaydırıcısından rəqəmsal girişi açmaq və söndürmək üçün xüsusi menyu dizayn edin.
  5. Bağlantı olaraq SeeedStudio SIM900 GPRS qalxanı seçərək kodu yaradın. (IteadStudio SIM900 qalxanı üçün də bir seçim var).
  6. Yaradılmış kodu cib telefonunuzdan IDE -yə köçürün (ətraflı məlumat üçün pfodAppForAndroidGettingStarted.pdf -ə baxın), gizli şifrənizi əlavə edin, tərtib edin və Arduino Mega 2560 -a yükləyin.
  7. SİM kartınızı GPRS qalxanına quraşdırın və qalxanı Mega 2560 -a qoşun. Yuxarıda göstərildiyi kimi Serial bağlantılarının Hardware Serial olaraq qurulduğundan əmin olun.
  8. Rəqəmsal çıxışı D3 və GND (və ya pfodDesigner -də seçdiyiniz pin) arasındakı sabit vəziyyətə və ya normal röleə bağlayın. Röleler haqqında daha ətraflı məlumat üçün Arduinoya Necə Röle əlavə etməyinizə baxın.
  9. USB gücünü Mega -ya tətbiq edin. Kitabxana kodu sizin üçün GPRS qalxanını gücləndirir.
  10. Android cibinizə pfodApp yükləyin və qalxanın sim telefon nömrəsinə SMS bağlantısı qurun. (ətraflı məlumat üçün pfodAppForAndroidGettingStarted.pdf -ə baxın). Əlavə etsəniz əlaqə üçün parol təyin edin..
  11. Qoşulun və SMS vasitəsilə göstərilən xüsusi menyuya baxın. Röleyi açmaq və ya söndürmək üçün düyməni basın.
  12. Elektrikçinizi İsti Su dövrənizdə röleyi quraşdırmasını və Mega və qalxanı gücləndirmək üçün USB enerji təchizatını bağlamasını istəyin.

Addım 2: Ətraflı məlumat

pfodDesigner

PfodDesigner, qatı vəziyyəti və ya başqa bir röleyi açmaq və söndürmək üçün lazım olan bütün kodu yaradacaq, ancaq pfodParser kitabxanasındakı SMS bağlantısı bütün pfod ekranlarını dəstəkləyir, buna görə işə başladıqda alt menyu, rəqəmsal sürgülər, çox mətnli sürgülər, mətn daxiletmə ekranları, məlumatların qeyd edilməsi və hamısını SMS vasitəsilə qurmaq. Dəstəklənən bütün ekranlar və mesajlar üçün pfodSpecification.pdf -ə baxın.

Yaradılan kod burada. Mesajı qısa saxlamaq üçün heç bir istək yoxdur və yalnız bir keçid var. Uzun menyuların gəlməsi daha uzun sürən bir neçə SMS mesajı ilə göndərilir. Uzun bir menyu varsa, pfodParser kitabxanasındakı sms əlaqə kodu bütün bunları sizin üçün idarə edir.

SMS bağlantınıza parol əlavə etmək üçün xətti dəyişdirin

parser.connect (& pfodSMS); // parser.connect (& pfodSMS, F ("173057F7A706AF9BBE65D51122A14CEE") kimi bir şeyi təhlilçini SMS axınına bağlayın;)

ancaq 0..9 A.. F olan 32 hex rəqəmli rəqəmə qədər öz şifrənizi istifadə edin. 32 hex rəqəmdən qısa olan parollar 0 işarələri ilə doldurulur. Təsadüfi bir şifrənin necə yaradılacağını və Android -ə asan daxil olması üçün onu qr koduna necə çıxartmaq üçün 128bit təhlükəsizlik (Arduino) ilə Sadə Wifi/İnternet pfodDevice -ə baxın. Həmçinin pfodAppForAndroidGettingStarted.pdf -ə baxın

PfodDesigner, əlavə 128bit təhlükəsizlik ilə SPI vasitəsilə Serial və Ethernet vasitəsilə bluetooth və wifi bağlantıları üçün kod da yaradacaq.

pfodApp

Anlamaq lazım olan ilk şey, SMS -in əsassız olmasıdır və ümumiyyətlə ora çatmayacaq və ya sıradan çıxmayacaq. Beləliklə, pfodApp ilə əlaqə qurduğunuzda SMS cavab vermədən əvvəl bir az gecikmə olacaq. Mesaj itirildikdə və ya gecikdikdə, pfodApp 3 dəqiqədən sonra avtomatik olaraq yenidən göndərəcək. 5 belə cəhddən sonra pfodApp əlaqənin kəsildiyini söyləyəcək. PfodApp -ın bağlantı redaktə ekranında 3 dəqiqə vaxtını tənzimləyə bilərsiniz.

Bir parol əlavə etsəniz, əsas menyu pfodApp tərəfindən qəbul edilməzdən əvvəl altı SMS mesajı (hər tərəfdən üç) var. Bu əlavə mesajlar yalnız ilk istifadə zamanı baş verir, bundan sonra parol istifadə edərkən heç bir əlavə mesaj yoxdur. Buna görə hər şeyin işlədiyini görmək üçün parol olmadan başlayın və sonra şifrəni əlavə edin.

SMS/GPRS qalxanı

Mümkün problemlər pin nömrələri ilə qorunan və ya şəbəkəyə qoşulma icazəsi olmayan SİM kartlardır. Pfod kitabxanası avtomatik olaraq GPRS qalxanını işə salır və 'zəngə hazır' cavabı axtarır. Bu cavab kitabxananın gücünü kəsmirsə və yenidən cəhd edərsə, GPRS qalxanındakı güc işığının 20 saniyə davam etdiyini və sonra söndüyünü görsəniz, şəbəkəyə qoşulma problemi yaranır. SIM -i çıxarın və adi bir telefonda sınayın. Bir pin nömrəsi istənmədiyini yoxlayın.

Problem bu deyilsə, nə baş verdiyini görmək üçün aşağıda təsvir edildiyi kimi başlanğıc ayıklamasını açmalısınız.

Mega / GPRS qalxanının güclənməsi

Qalxan 2A -a qədər və 0,5A -a qədər fasiləsiz çəkir. 12V batareya təchizatı olduğunu nəzərə alsaq, 0.5A, Mega -nın enerji təchizatı qabiliyyətini üstələyir. Buna görə də bu qalxan Mega -dakı 7V -dan 12V -a qədər GÜÇLƏNMƏLİDİR. Alternativ Mega və qalxanı USB bağlantısı ilə gücləndirməkdir. 1A USB təchizatı istifadə etdim. Test üçün kompüterimin USB portundan həddindən artıq cərəyan çəkməməsi üçün Belkin ilə işləyən bir mərkəzdən (F4U020) istifadə etdim.

12V batareya təchizatı üçün 1A və ya daha yüksək keyfiyyətli USB 5V şarj cihazından istifadə etməyi təklif edirəm. Keyfiyyətli bir Avtomobil USB 5V təchizatı, avtomobilin elektrik sistemlərində baş verən həddindən artıq gərginliklərin öhdəsindən gəlmək üçün hazırlanmalı və 12V şarj sistemlərinin əksəriyyəti üçün uyğun olmalıdır.

Qatı Hal Rölesi

Bu nümunə layihə İsti su qızdırıcısını (müqavimətli yük) idarə etdiyindən, Solid State rölesi idealdır. Mühərrikləri açmaq və ya söndürmək, generatorları işə salmaq və s. İşiniz üçün uyğun bir röle haqqında elektrikçinizlə danışın. Yüksək güc rölesinə ehtiyacınız varsa, güc rölesini açmaq və söndürmək üçün arduino lövhəsinin kiçik bir röley sürücüsündən istifadə edə bilərsiniz.

Qatı hal rölesinin bir çox versiyası mövcuddur. Qızdırıcınızın cərəyanını və gərginliyini idarə edə bilən və 5V DC və Arduino çıxış pinindən əldə edilə bilən bir neçə milliamp ilə idarə oluna bilən bir satın aldığınızdan əmin olun. Burada istifadə olunan FOTEK SSR-40 DA, 40Amps-də 380VAC-a qədər dəyişir və 3V dc-dən çox olan hər hansı bir şey tərəfindən idarə olunur və 7mA-dan azdır.

Bir soyuducu istifadə etməlisiniz və istilik emicisinə bərkidilməzdən əvvəl bərk hal rölesinin arxasına nazik bir istilik emici birləşməsi və ya termal yağ tətbiq etməlisiniz. Fikir, metalın səthindəki mikroskopik vadiləri doldurmaq üçün səthi ən incə başlıqlı birləşmə ilə örtməkdir. Qatı hal açarı açıldıqda 10V gücündə 16Watt istilik istehsal edən 1.6V düşür. Soyuducunun bu istidən xilas olması lazımdır, buna görə plastik bir qutunun içərisində deyil, sərbəst havada quraşdırılmalıdır.

Gecikmələr pisdir

GPRS qalxanı istənilən vaxt Serial bağlantısı ilə SMS mesajları verir və əsas döngəniz () cmd = parser.parse () -ə zəng etməlidir; Arduino kitabxana kodundakı 64 baytlıq tampon doldurulmadan və məlumatlar itirilmədən əvvəl Serial məlumatlarını işləmək üçün..

Beləliklə, əsas döngənizi () sürətlə işləməyə davam etməlisiniz. Heç vaxt gecikmə () istifadə etməməli və istifadə etdiyiniz kitabxanaların heç birində gecikmə olmadığını yoxlamalısınız. Hardware Serial vasitəsilə SIM900 standart 19200 baud sürətindən istifadə edərək, Arduino kitabxana kodunda bufer ölçüsünü artırmağı lazım görmədim. Proqram Serialından istifadə etmirəm, yalnız Serial və Serial1, Hardware Serial əlaqələri və pfodApp -ın göndərdiyi demək olar ki, bütün mesajlar 10 və ya 12 baytdır. İstəyirsinizsə, HardwareSerial.h -dəki tərifi #define SERIAL_BUFFER_SIZE 64 -dən #define SERIAL_BUFFER_SIZE 128 -ə dəyişərək Arduino tampon ölçüsünü artıra bilərsiniz.

Ancaq tapdığım şey, aşağıda göstərildiyi kimi, hata ayıklama çıxışını aktiv etsəm, terminal bağlantısı üçün çox sürətli bir ötürmə sürətinə sahib olmalı idim, əks halda terminala debug mesajları göndərməklə yaranan gecikmə SMS mesajlarının bir hissəsinin qaçırılmasına səbəb oldu..

Quraşdırma

Vidalı bir terminal qalxanı əlavə etdim, buna görə Solid State rölesi tellərini bağlamaq üçün bir şeyim var idi. Hələ elektrikçimə nəzarətçini quraşdırmamışam. İzolyasiya edilmiş bir qutuya qoyulmalıdır, ancaq bir istilik yuvası bir yuvadan yapışaraq isti su elektrik naqillərinə bağlanmalıdır.

Addım 3: Əlavə Təkmilləşdirmələr üçün Təkliflər - Xəbərdarlıqlar, Məlumat Qeydləri və Planlaşdırma

Yuxarıdakı nümunə su, suyun necə açıldığını və söndürüldüyünü göstərir və onu dəyişdirməyə imkan verir. Ancaq SMS bağlantısı bütün pfod mesajlarını idarə edir (bax pfodSpecification.pdf)

Arduino -ya temperatur sensoru əlavə etsəniz, temperatur monitorunu da göndərə və mütəmadi olaraq oxunuşlarını geri göndərə bilərsiniz. Məlumatı geri göndərmək üçün bluetooth, wifi və ya SMS üçün eynidır, aşağıdakı nümunə kimi kodu əlavə edin. Məlumatların qeydiyyatı və qurulması ilə bağlı daha ətraflı məlumat və nümunələr üçün Məlumatların Qeydiyyatı və Çizilməsinə baxın.

parser.println (vaxt); parser.print (','); parser.println (temperatur);

PfodSMS kitabxanası println () -dən yeni xətti gördükdə, xam məlumatları SMS olaraq göndərəcək. Cib telefonunuzda pfodApp -ı arxa planda buraxın və SMS alındıqda mobil telefonunuz sizi xəbərdar edəcək. Ön tərəfə çıxarmaq üçün pfodApp -ı yenidən açın və sonra məlumatları görmək üçün mobil menyudan Raw Data ekranını açın. Qeyd: pfodSMS mesajları, əlaqə və mesaj nömrələri ilə birlikdə UTF-8 simvollarıdır, normal mətn kimi görünməməsi üçün Base64 kodlaşdırması istifadə edərək kodlaşdırılır. Bütün detallar üçün pfodSMS mesaj dizaynına baxın.

Bir şey uzaqdan dəyişəndə xəbərdarlıq göndərmək üçün eyni prosesi istifadə edə bilərsiniz. yəni parser.println (F ("Xarici temperatur 0 below-dən aşağı")); Qeyd: sətirdəki ℃ UTF-8 simvolu. pfodSMS bütün UTF-8 simvollarını pfodApp-a keçir.

Addım 4: PfodParser Kitabxanasında SMS Bağlantısından İstifadə edərkən Hata Ayıklama

PfodParser Kitabxanasında SMS Bağlantısından İstifadə edərkən Hata Ayıklama
PfodParser Kitabxanasında SMS Bağlantısından İstifadə edərkən Hata Ayıklama
PfodParser Kitabxanasında SMS Bağlantısından İstifadə edərkən Hata Ayıklama
PfodParser Kitabxanasında SMS Bağlantısından İstifadə edərkən Hata Ayıklama

PfodDesigner işləyən kod yaradır, ancaq öz əlavə kodunuzu düzəltmək və ya GPRS qalxanı başladıqda və ya SMS alarkən baş verənlərə baxmaq istəyə bilərsiniz. Ala biləcəyiniz bir neçə yanaşma var.

Öz kodunuzu düzəldin

Öz kodunuzu ayıklayırsınızsa, pfodSMS xəttini şərh edə və analizçini Seriala bağlaya bilərsiniz, sonra GPRS qalxanını çıxarın və Mega -nı Arduino terminalından işə salın. yəni quruluşu () olaraq dəyişdirin

//pfodSMS.init(&Serial, 9); // GPRS qalxan ayrıştırıcısını işə salmayın.connect (& Serial); // təhlilçini SMS axını əvəzinə Seriala qoşun

Arduino terminalından Meqanın əsas menyunu geri qaytarmasını və sonra yerinə yetirmək istədiyiniz əmri geri göndərməsini almaq üçün {.} Yaza bilərsiniz. Röleyi açmaq üçün {A`1}, söndürmək üçün {A`0}. (Kaydırıcıyı tıkladığınızda pfodApp bu mesajları ümumiyyətlə sizin üçün göndərir.) Sonra əlavə etdiyiniz əlavə kodun nə etdiyini izləmək üçün əlavə ayıklama parser.println () əlavə edin.

GPRS qalxanının monitorinqi

GPRS qalxanının nə etdiyini görmək istəyirsinizsə. İşin necə başladığı, SMS mesajları alması və s. Sonra Mega Serial1 (serial bir) ilə əlaqə qurmaq və Arduino IDE Monitor -da debug çıxışı üçün Serial (USB) bağlantısını boşaltmaq lazımdır.

GPRS qalxanını Mega 2560 Serial1 -ə bağlamaq üçün yuxarıda göstərilən bağlantıları çıxarın və telləri Mega -nın TX1 və RX1 sancaqlarına əlavə edin.

Sonra setup () kodunu dəyişin

void setup () {Serial1.begin (19200); // Serialı Serial 1 Serial olaraq dəyişdirin.begin (57600); // USB Serial portu // Arduino IDE monitoru üçün sürətli ötürmə sürətinə DİQQƏT. for (int i = 3; i> 0; i--) {// gecikmənin proqramlaşdırıldığını görmək üçün bir neçə saniyə gözləyin (1000); } pinMode (cmd_A_pin, ÇIXIŞ); pfodSMS.setDebugStream (& Serial); // bunu pfod_SMS.init // və ya hər hansı digər pfod_SMS metod zəngindən əvvəl etməlisiniz // SMS -i işə salın və ayrıştırıcını bağlayın // növbəti sətri Serial1 -ə dəyişin pfodSMS.init (& Serial1, 9); // Seeed GPRS qalxanı V2 -ni Serial parser.setDebugStream (& Serial) əvəzinə Serial1 -ə qoşun; // bunu parser.connect // və ya başqa hər hansı bir ayrıştırıcı metodu parser.connect (& pfodSMS) çağırmadan əvvəl etməlisiniz; // analizçini SMS axınına qoşun}

İndi pfodSMS_SIM900.cpp faylının pfodParser kitabxanasındakı Debug parametrlərindən bəzilərini şərh edə bilərsiniz.

Məsələn #define DEBUG_SETUPGPRS qalxanının işə salınması və SMS mesajlarını almağa hazırlanması zamanı baş verənləri (debug axınına) çap edəcək.

Şərh yazılmayan #define DEBUGələn SMS mesajları haqqında çox məlumat verəcək.

Bu belədir !

Tövsiyə: