Mündəricat:

Arduino əsaslı GSM/SMS Uzaqdan İdarəetmə Bölməsi: 16 Addım (Şəkillərlə birlikdə)
Arduino əsaslı GSM/SMS Uzaqdan İdarəetmə Bölməsi: 16 Addım (Şəkillərlə birlikdə)

Video: Arduino əsaslı GSM/SMS Uzaqdan İdarəetmə Bölməsi: 16 Addım (Şəkillərlə birlikdə)

Video: Arduino əsaslı GSM/SMS Uzaqdan İdarəetmə Bölməsi: 16 Addım (Şəkillərlə birlikdə)
Video: Все о GPS-модулях Arduino за 5 минут 2024, Noyabr
Anonim
Arduino əsaslı GSM/SMS Uzaqdan İdarəetmə Bölməsi
Arduino əsaslı GSM/SMS Uzaqdan İdarəetmə Bölməsi

! ! ! XƏBƏRDARLIQ !

Bölgəmdə yerli mobil telefon qülləsinin təkmilləşdirilməsi səbəbindən artıq bu GSM modulundan istifadə edə bilmirəm. Yeni qüllə artıq 2G cihazlarını dəstəkləmir. Ona görə də artıq bu layihəyə heç bir dəstək verə bilmərəm.

Həvəskarlar üçün mövcud olan bu qədər geniş GSM modulları ilə çoxumuz bir satın almağı bitirdik. Yerli olaraq bir SIM800L modulu aldım və modulun fərqli əmrləri ilə oynadım.

Arduino Uno və Arduino IDE -dən istifadə edərək fikirlərimi reallığa çevirə bildim. Bu, yalnız 2KB SRAM -ın məhdudiyyəti olan TEK BÜYÜK SÖNDÜR ilə asan olmadı. İnternetdə və müxtəlif forumlarda çox araşdırmalar apardıqdan sonra bu məhdudiyyəti aşa bildim.

Fərqli proqramlaşdırma üsulları, Arduino kompilyatorunu daha yaxşı başa düşmək və əlavə yaddaş üçün SİM kart və EEPROM istifadə etmək bu layihəni xilas etdi. Kodda bəzi dəyişikliklərdən sonra bir həftə ərzində sabit bir prototip quruldu və sınaqdan keçirildi.

Məhdud SRAM -ın dezavantajı, cihazın ekran və istifadəçi düymələri ilə təchiz olunmaması idi. Bu, kodun tamamilə yenidən yazılması ilə nəticələndi. İstifadəçi interfeysi olmadıqda, layihəni davam etdirmək üçün yeganə seçim, vahidin və istifadəçilərin konfiqurasiyası üçün SMS mesajlarından istifadə etmək idi.

Bu həyəcan verici bir layihə olduğu ortaya çıxdı və inkişaf davam etdikcə daha çox gələcək əlavə edildi.

Əsas məqsədim Arduino Uno və ya bu vəziyyətdə ATMEGA328p ilə qalmaq və heç bir səthə montaj komponentlərindən istifadə etməmək idi. Bu, geniş ictimaiyyətin vahidi kopyalamasını və qurmasını asanlaşdıracaq.

Vahidin spesifikasiyası:

  • Cihazda maksimum 250 istifadəçi proqramlaşdırıla bilər
  • Dörd rəqəmsal çıxış
  • Dörd rəqəmsal giriş
  • Hər bir çıxış PULSE və ya ON/OFF çıxışı kimi konfiqurasiya edilə bilər
  • Çıxış pulse müddəti 0,5.. 10 saniyə arasında təyin edilə bilər
  • Hər bir giriş, AÇIK -AÇıq dəyişiklikləri aktivləşdirmək üçün konfiqurasiya edilə bilər.
  • Hər bir giriş ON -OFF dəyişikliklərini işə salmaq üçün konfiqurasiya edilə bilər
  • Hər giriş gecikmə müddəti 0 saniyə ilə 1 saat arasında təyin edilə bilər
  • Girişlərdəki dəyişikliklər üçün SMS mesajları 5 fərqli istifadəçiyə göndərilə bilər
  • Hər giriş üçün adlar və status mətni istifadəçi tərəfindən təyin edilə bilər
  • Hər bir çıxış üçün adlar və status mətni istifadəçi tərəfindən təyin edilə bilər
  • Bölmə, USSD mesajlaşma vasitəsi ilə SİM kart balansı mesajlarını almaq üçün konfiqurasiya edilə bilər.
  • Bütün istifadəçilər vahidin I/O statusu yeniləmələrini tələb edə bilərlər
  • Bütün istifadəçilər fərdi mesajları SMS mesajları ilə idarə edə bilərlər
  • Bütün istifadəçilər vahidi çağıraraq fərdi çıxışları idarə edə bilərlər

Təhlükəsizlik xüsusiyyətləri

  • Cihazın ilk quraşdırılması yalnız cihazda olarkən edilə bilər.
  • İlk quraşdırma yalnız MASTER USER tərəfindən həyata keçirilə bilər
  • İlk quraşdırma əmrləri on dəqiqədən sonra avtomatik olaraq söndürülür.
  • Yalnız tanınmış istifadəçilərdən gələn zənglər və SMS vahidi idarə edə bilər
  • İstifadəçilər yalnız MASTER İSTİFADƏÇİSİ tərəfindən təyin edilmiş çıxışları idarə edə bilərlər

Digər Xüsusiyyətlər

  • Bu bölməyə zənglər pulsuzdur, çünki zəngə heç vaxt cavab verilmir.
  • Cihaz çağırıldıqda, zəng yalnız 2 saniyədən sonra azalacaq. Bu, zəng edənə bölmənin zəngə cavab verdiyini təsdiqləyir.
  • SİM kart xidmət təminatçısı USSD mesajlarını dəstəkləyirsə, balans sorğuları MASTER USER tərəfindən edilə bilər. Balansı ehtiva edən USSD mesajı daha sonra MASTER USER -ə göndəriləcək.

Addım 1: Enerji təchizatı

Enerji təchizatı
Enerji təchizatı

Cihazın standart təhlükəsizlik sistemlərinə (siqnalizasiya sistemləri, elektrikli qaraj qapıları, elektrik qapısı mühərrikləri) qoşulmasını təmin etmək üçün cihaz bu sistemlərdə adətən mövcud olan 12V DC -dən işləyəcək.

Güc 12V IN və 0V terminallarında tətbiq olunur və 1A qoruyucu ilə qorunur. Əlavə 12V OUT terminalları mövcuddur və eyni zamanda qoruyucu ilə qorunur.

Diod D1, qurğunu 12V xətlərindəki əks polarite əlaqələrindən qoruyur.

Kondansatörler C1 və C2, 12V təchizatı xətlərində mövcud olan səsləri süzür. Cihazın rölelərini gücləndirmək üçün 12V təchizatı istifadə olunur.

5V təchizatı LM7805L gərginlik tənzimləyicisindən ibarətdir və SIM800L GSM modulu və mikro prosessor üçün lazım olan sabit +5V çıxışıdır. C3 və C4 kondansatörləri +5V təchizat xəttində ola biləcək hər hansı bir səs -küyü süzür. Nisbətən böyük ölçülü elektrolitik kondansatörlər istifadə edildi, çünki SIM800L GSM modulu ötürərkən kifayət qədər güc sərf edir.

Gərginlik tənzimləyicisində heç bir soyuducu tələb olunmur.

Addım 2: Rəqəmsal Girişlər

Rəqəmsal Girişlər
Rəqəmsal Girişlər
Rəqəmsal Girişlər
Rəqəmsal Girişlər

Rəqəmsal giriş siqnallarının hamısı 12V -dir və 5V mikro nəzarətçi ilə əlaqələndirilməlidir. Bunun üçün 12V siqnallarını 5V sistemindən təcrid etmək üçün opto bağlayıcılardan istifadə olunur.

1K giriş rezistoru, opto bağlayıcıya giriş cərəyanını təxminən 10mA ilə məhdudlaşdırır.

Məkan məhdudiyyətləri səbəbindən, PC lövhəsində 5V çəkmə rezistorları üçün yer yox idi. Mikro nəzarətçi giriş pinlərinin zəif çəkilməsini təmin etmək üçün qurulmuşdur.

Opto bağlayıcının girişində (LOW) heç bir siqnal olmadıqda, opto bağlayıcı LEDindən heç bir cərəyan keçməyəcək. Beləliklə, opto bağlayıcı tranzistoru söndürülür. Mikro nəzarətçinin zəif çəkilməsi kollektoru demək olar ki, 5V-a qaldıracaq və mikro nəzarətçi tərəfindən YÜKSƏK məntiq olaraq görüləcək.

Opto bağlayıcının girişinə 12V (YÜKSƏK) tətbiq edildikdə, opto bağlayıcı LEDindən təxminən 10mA axacaq. Beləliklə, opto bağlayıcı tranzistoru işə salınacaq. Bu, kollektoru demək olar ki, 0V -a endirəcək və mikro nəzarətçi tərəfindən LOW bir məntiq olaraq görüləcək.

Qeyd edək ki, mikro nəzarətçinin gördüyü giriş 12V girişlə müqayisədə tərsinə çevrilir.

Giriş pinini oxumaq üçün normal kod aşağıdakı kimi görünür:

boolean Giriş = digitalRead (inputpin);

Tərs siqnalı düzəltmək üçün aşağıdakı kodu istifadə edin:

boolean Giriş =! digitalRead (inputpin); // DİQQƏT! oxu qarşısında

İndi mikro nəzarətçinin gördüyü giriş 12V girişindəki girişə uyğun olacaq.

Son giriş dövrəsi 4 rəqəmsal girişdən ibarətdir. Hər giriş PC lövhəsindəki terminallara bağlıdır.

Addım 3: Rəqəmsal Çıxışlar

Rəqəmsal Çıxışlar
Rəqəmsal Çıxışlar
Rəqəmsal Çıxışlar
Rəqəmsal Çıxışlar
Rəqəmsal Çıxışlar
Rəqəmsal Çıxışlar

Normalda, yalnız minimum sayda röleyi idarə edən bir dövrə ilə, ən yaxşı yol göstərildiyi kimi bir tranzistor sürücü dövrəsindən istifadə etməkdir. Sadə, ucuz və effektivdir.

Rezistorlar yerə çəkilmə və tranzistor bazası cərəyanının məhdudlaşdırılmasını təmin edir. Transistor, bir röleyi idarə etmək üçün mövcud cərəyanı artırmaq üçün istifadə olunur. Mikro nəzarətçi pinindən yalnız 1mA çəkilərkən, tranzistor 100mA yükü dəyişə bilər. Əksər röle növləri üçün kifayət qədər çoxdur. Diod, röleyi dəyişdirərkən dövrəni yüksək gərginlikli sıçrayışlardan qoruyan uçucu bir dioddur. Bu dövrənin istifadəsinin əlavə üstünlüyü, rölin işləmə gərginliyinin mikro nəzarətçinin gərginliyindən fərqli ola bilməsidir. Beləliklə, 5V rölesi əvəzinə 48V -ə qədər istənilən DC gərginliyindən istifadə etmək olar.

ULN2803 ilə tanış olun

Bir layihə nə qədər çox röle tələb edərsə, komponentlərin sayı da o qədər yüksək olar. Bu, PCB dizaynını daha da çətinləşdirəcək və qiymətli PCB sahəsini istifadə edə bilər. ULN2803 kimi bir tranzistor dizisinin istifadəsi, PCB ölçüsünün kiçik olmasına kömək edəcək. ULN2803, mikro nəzarətçidən 3.3V və 5V girişləri üçün idealdır və 48V DC -ə qədər röleyi idarə edə bilir. Bu ULN2803, hər bir dövrə bir röleyi dəyişdirmək üçün lazım olan bütün komponentlərlə təchiz edilmiş 8 fərdi tranzistor dövrə malikdir.

Son çıxış dövrəsi 4 12V DC çıxış rölesini idarə edən ULN3803 -dən ibarətdir. Rölin hər bir kontağı PC Board terminallarında mövcuddur.

Addım 4: Mikro nəzarətçi osilatoru

Mikro nəzarətçi osilatoru
Mikro nəzarətçi osilatoru
Mikro nəzarətçi osilatoru
Mikro nəzarətçi osilatoru
Mikro nəzarətçi osilatoru
Mikro nəzarətçi osilatoru

Osilatör Dövrü

Mikro nəzarətçinin düzgün işləməsi üçün bir osilatora ehtiyacı var. Arduino Uno dizaynına davam etmək üçün dövrə standart 16MHz osilatordan istifadə edəcək. İki seçim mövcuddur:

Kristal

Bu üsul iki yükləmə kondansatörünə bağlı bir kristal istifadə edir. Bu ən çox yayılmış seçimdir.

Rezonator

Bir rezonator, əsasən, bir 3-pinli paketdə bir kristal və iki yükləmə kondansatörüdür. Bu, komponentlərin sayını azaldır və kompüter lövhəsindəki boşluğu artırır.

Komponent sayını mümkün qədər aşağı tutmaq üçün 16MHz rezonatordan istifadə etməyi seçdim.

Addım 5: Göstərici LEDlər

Göstərici LEDlər
Göstərici LEDlər
Göstərici LEDlər
Göstərici LEDlər

Bəzi LEDlər olmadan hər hansı bir dövrə nə olacaq? Kompüter lövhəsində 3 mm LED -lər üçün təminat verildi.

1K rezistorlar, LED üzərindəki cərəyanı 5mA-dan az məhdudlaşdırmaq üçün istifadə olunur, 3 mm yüksək parlaqlıqlı LED-lər istifadə edərkən parlaqlıq əladır.

Vəziyyət LED -lərini asan şərh etmək üçün iki rəng istifadə olunur. İki LED -i yanıb sönən göstəricilərlə birləşdirərək, yalnız iki LED -dən kifayət qədər çox məlumat əldə etmək olar.

Qırmızı LED

Qırmızı LED, arızanın şərtlərini, uzun gecikmələri və səhv əmrləri göstərmək üçün istifadə olunur.

Yaşıl LED

Yaşıl LED sağlam və/və ya düzgün giriş və əmrləri göstərmək üçün istifadə olunur.

Addım 6: Mikro Prosessor Sıfırlama Dövrü

Mikro Prosessor Sıfırlama Dövrü
Mikro Prosessor Sıfırlama Dövrü

Təhlükəsizlik baxımından, cihazın bəzi funksiyaları yalnız cihazı işə saldıqdan sonra ilk 10 dəqiqədə mövcuddur.

Bir sıfırlama düyməsi ilə cihazı yenidən qurmaq üçün cihazın gücünü söndürmək lazım deyil.

Bu necə işləyir

10K rezistor, RESET xəttini 5V -ə yaxın saxlayacaq. Düymə basıldıqda, RESET xətti 0V -ə çəkiləcək və beləliklə mikro nəzarətçi sıfırlanacaq. Düymə buraxıldıqda, RESET xətti mikro nəzarətçini sıfırlayaraq %v -ə qayıdır.

Addım 7: SIM800L Modulu

SIM800L modulu
SIM800L modulu
SIM800L modulu
SIM800L modulu
SIM800L modulu
SIM800L modulu

Cihazın ürəyi SIM800L GSM moduludur. Bu modul mikro nəzarətçi üzərində yalnız 3 I/O pinindən istifadə edir.

Modul standart nəzarət portu vasitəsilə mikro nəzarətçiyə qoşulur.

  • Vahidin bütün əmrləri standart AT əmrlərindən istifadə edərək serial port vasitəsilə göndərilir.
  • Gələn zənglə və ya bir SMS alındıqda, məlumat ASCII mətnindən istifadə edərək serial port vasitəsilə mikro nəzarətçiyə göndərilir.

Yerə qənaət etmək üçün GSM modulu, 7 pinli başlıq vasitəsilə PC Kartına qoşulur. Bu, GSM modulunun çıxarılmasını asanlaşdırır. Bu da istifadəçinin modulun altındakı SİM kartı asanlıqla daxil etməsinə/çıxarmasına imkan verir.

Aktiv bir SİM kart tələb olunur və SİM kart SMS mesajları göndərə və qəbul edə bilməlidir.

SIM800L GSM modulunun qurulması

Cihazı işə saldıqda GSM modulu sıfırlama pimi bir saniyə aşağı çəkilir. Bu, GSM modulunun yalnız enerji təchizatı sabitləşdikdən sonra işə salınmasını təmin edir. GSM modulunun yenidən başlaması bir neçə saniyə çəkir, buna görə hər hansı bir AT əmrini modula göndərməzdən əvvəl 5 saniyə gözləyin.

GSM modulunun mikro nəzarətçi ilə düzgün ünsiyyət qurmaq üçün konfiqurasiya edilməsini təmin etmək üçün işə salınarkən aşağıdakı AT əmrləri istifadə olunur:

AT

GSM modulunun olub olmadığını müəyyən etmək üçün istifadə olunur

AT+CREG?

GSM modulu mobil telefon şəbəkəsində qeydiyyata alınana qədər bu əmri yoxlayın

AT+CMGF = 1

SMS mesaj rejimini ASCII olaraq təyin edin

AT+CNMI = 1, 2, 0, 0, 0

SMS mövcuddursa, SMS məlumatlarını GSM modulunun seriya limanına göndərin

AT+CMGD = 1, 4

SİM kartda saxlanılan SMS mesajlarını silin

AT+CPBS = / "SM

GSM modulunun telefon kitabçasını SİM karta qoyun

AT+COPS = 2, sonra AT+CLTS = 1, sonra AT+COPS = 0

GSM modulu vaxtını cib telefonu şəbəkə vaxtına təyin edin

Vaxtın təyin edilməsi üçün 5 saniyə gözləyin

AT+CUSD = 1

USSD mesajlaşma funksiyasını aktiv edin

Addım 8: Mikro nəzarətçi

Mikro nəzarətçi
Mikro nəzarətçi
Mikro nəzarətçi
Mikro nəzarətçi
Mikro nəzarətçi
Mikro nəzarətçi

Mikro nəzarətçi Arduino Uno ilə eyni standart AtMega328p -dir. Beləliklə kod hər ikisi ilə müqayisə olunur. Göyərtədə asan proqramlaşdırma təmin etmək üçün PC lövhəsində 6 pinli proqramlaşdırma başlığı mövcuddur.

Cihazın müxtəlif bölmələri mikro prosessora bağlıdır və bunlara daxildir:

  • Dörd rəqəmsal giriş
  • Dörd rəqəmsal çıxış
  • Osilator
  • İki göstərici LED
  • Dövrü sıfırlayın
  • SIM800L GSM modulu

GSM moduluna gedən və gələn bütün əlaqələr SoftwareSerial () funksiyasından istifadə etməklə həyata keçirilir. Bu üsul, inkişaf mərhələsində Arduino IDE üçün əsas seriyalı portu boşaltmaq üçün istifadə edilmişdir.

Yalnız 2KB SRAM və 1KB EEPROM ilə vahidlə əlaqələndirilə bilən bir neçə istifadəçini saxlamaq üçün kifayət qədər yaddaş yoxdur. SRAM -ı boşaltmaq üçün bütün istifadəçi məlumatları GSM modulunda SİM kartda saxlanılır. Bu tənzimləmə ilə cihaz 250 fərqli istifadəçiyə xidmət göstərə bilər.

Cihazın konfiqurasiya məlumatları EEPROM -da saxlanılır, beləliklə istifadəçi məlumatları və sistem məlumatları bir -birindən ayrılır.

Hələ də bir neçə ehtiyat G/Ç pinləri mövcuddur, lakin SoftWareSerial () tamponları qəbul etmək və ötürmək üçün SRAM -ın çox olması səbəbindən LCD ekran və/və ya klaviatura əlavə etmək imkanı mümkün olmadı, Cihazda hər hansı bir istifadəçi interfeysi olmadığı üçün bütün parametrlər və istifadəçilər SMS mesajları istifadə edərək proqramlaşdırılmışdır.

Addım 9: SRAM Yaddaşının optimallaşdırılması

SRAM Yaddaşının optimallaşdırılması
SRAM Yaddaşının optimallaşdırılması

İnkişaf mərhələsində, Arduino IDE, kodu tərtib edərkən aşağı SRAM yaddaşını bildirdi. Bunun öhdəsindən gəlmək üçün bir neçə metoddan istifadə edildi.

Serial portda alınan məlumatları məhdudlaşdırın

GSM modulu bütün mesajları mikro nəzarətçiyə serial porta bildirəcək. Bəzi SMS mesajları alarkən alınan mesajın ümumi uzunluğu 200 simvoldan çox ola bilər. Bu, AtMega çipində mövcud olan bütün SRAM -ı tez bir zamanda istehlak edə bilər və sabitlik problemlərinə səbəb olacaq.

Bunun qarşısını almaq üçün GSM modulundan alınan hər hansı bir mesajın yalnız ilk 200 simvolu istifadə ediləcək. Aşağıdakı nümunə, Counter dəyişənində alınan simvolları sayaraq bunun necə edildiyini göstərir.

// proqram serial portundan məlumat axtarın

// ----------------------------------------------- RxString = ""; Sayaç = 0; while (SSerial.available ()) {gecikmə (1); // yeni məlumatların buferə yerləşdirilməsi üçün vaxt vermək üçün qısa gecikmə // yeni xarakter əldə etmək RxChar = char (SSerial.read ()); // sətrə ilk 200 simvolu əlavə edin, əgər (Counter <200) {RxString.concat (RxChar); Sayaç = Sayaç + 1; }}

Serial.print () kodunun azaldılması

İnkişaf zamanı lazımlı olsa da, Arduino Serial Monitor bir çox SRAM istifadə edə bilər. Kod, Serial.print () kodundan mümkün qədər az istifadə edilərək hazırlanmışdır. Kodun bir hissəsi işləmək üçün sınaqdan keçirildi, bütün Serial.print () kodu kodun həmin hissəsindən silindi.

Serial.print (F (("")) kodundan istifadə etməklə

Təsvirlər əlavə edildikdə normal olaraq Arduino Serial Monitor -da göstərilən bir çox məlumat daha mənalı olur. Aşağıdakı nümunəni götürün:

Serial.println ("Xüsusi hərəkətlər gözləyir");

"Xüsusi hərəkətlər gözləyir" sətri sabitdir və dəyişdirilə bilməz.

Kodun tərtib edilməsi zamanı tərtibçi FLASH yaddaşına "Xüsusi hərəkətləri gözləmək" sətrini daxil edəcək.

Bundan əlavə, tərtibçi "Serial.print" və ya "Serial.println" təlimatı tərəfindən istifadə olunan sətrin sabit olduğunu görür. Mikro açılış zamanı bu sabit SRAM yaddaşına da yerləşdirilir.

Serial.print () funksiyalarında "F" prefiksindən istifadə edərək, tərtibçiyə bu sətrin yalnız FLASH yaddaşında olduğunu bildirir. Bu nümunə üçün sətir 28 simvoldan ibarətdir. Bu, SRAM -da sərbəst buraxıla bilən 28 baytdır.

Serial.println (F ("Xüsusi hərəkətlər gözləyir"));

Bu üsul SoftwareSerial.print () əmrlərinə də aiddir. GSM modulu AT əmrləri üzərində işlədiyi üçün kod çoxsaylı SoftwareSerial.print ("xxxx") əmrlərindən ibarətdir. "F" prefiksindən istifadə etməklə təxminən 300 bayt SRAM azad edildi.

Avadanlıq serial portundan istifadə etməyin

Kod ayıklamadan sonra, ALL Serial.print () əmrləri silinərək aparatın serial portu deaktiv edildi. Bu, SRAM -ın bir neçə əlavə baytını azad etdi.

Kodda heç bir Serial.print () əmri qalmadıqda əlavə 128 baytlıq SRAM mövcuddur. Bu, hardware serial portunu koddan çıxarmaqla edildi. Bu, 64 baytlıq ötürmə və 64 baytlıq qəbul tamponlarını gücləndirir.

// Serial.begin (9600); // hardware serial port deaktiv edildi

Stringlər üçün EEPROM istifadə olunur

Hər giriş və çıxış üçün üç simli saxlamaq lazım idi. Kanal adı, kanal açıldıqda simli və kanal söndürüldükdə simdir.

Cəmi 8 I/O kanalı ilə olacaq

  • Kanal adlarını ehtiva edən 8 simli, hər biri 10 simvoldan ibarətdir
  • Təsvirdə hər biri 10 simvoldan ibarət olan 8 simli
  • Hər biri 10 simvoldan ibarət olan Off off kanalını ehtiva edən 8 sətir

Bu, 240 bayta qədər SRAM reklam edir. Bu sətirləri SRAM -da saxlamaq əvəzinə, EEPROM -da saxlanılır. Bu əlavə 240 bayt SRAM azad etdi.

Doğru uzunluqlarda simli elan

Dəyişənlər ümumiyyətlə kodun əvvəlində elan olunur. Bir simli dəyişən elan edərkən ümumi bir səhv, simvolların düzgün sayını elan etməməyimizdir.

GSM_Nr sətri = "";

GSM_Name String = ""; String GSM_Msg = "";

Başlanğıc zamanı mikro nəzarətçi bu dəyişənlər üçün SRAM -da yaddaş ayırmayacaq. Bu strings istifadə edildikdə daha sonra qeyri -sabitliyə səbəb ola bilər.

Bunun qarşısını almaq üçün, simli proqramda istifadə edəcək simvolların doğru sayı olan sətirləri elan edin.

String GSM_Nr = "1000000000";

GSM_Name String = "2000000000"; String GSM_Msg = "3000000000";

Eyni simvollarla sətirləri necə elan etmədiyimə diqqət yetirin. Bu sətirlərin hamısını "1234567890" deyərək elan etsəniz, tərtibçi eyni dəyişəni üç dəyişəndə görəcək və SRAM -da sətirlərdən biri üçün kifayət qədər yaddaş ayıracaq.

Addım 10: Proqram Serial Tampon Ölçüsü

Proqram Serial Tampon Ölçüsü
Proqram Serial Tampon Ölçüsü

Aşağıdakı kodda, proqram seriyası portundan 200 -ə qədər simvolun oxuna biləcəyini görəcəksiniz.

// proqram serial portundan məlumat axtarın

// ----------------------------------------------- RxString = ""; Sayaç = 0; while (SSerial.available ()) {gecikmə (1); // yeni məlumatların buferə yerləşdirilməsi üçün vaxt vermək üçün qısa gecikmə // yeni simvol əldə edin RxChar = char (SSerial.read ()); // ilk 200 simvolu əlavə edin, əgər (Counter <200) {RxString.concat (RxChar); Sayaç = Sayaç + 1; }}

Bunun üçün proqram seriyası portu üçün ən az 200 baytlıq bir tampon tələb olunur. Varsayılan olaraq, proqram serial port tamponu yalnız 64 baytdır. Bu tamponu artırmaq üçün aşağıdakı faylı axtarın:

SoftwareSerial.h

Faylı mətn redaktoru ilə açın və bufer ölçüsünü 200 -ə dəyişin.

/******************************************************************************

*Təriflər ********************************************** ******************************/ #ifndef _SS_MAX_RX_BUFF #define _SS_MAX_RX_BUFF 200 // RX tampon ölçüsü #endif

Addım 11: PC lövhəsinin hazırlanması

PC lövhəsinin hazırlanması
PC lövhəsinin hazırlanması

Kompüter lövhəsi Cadsoft Eagle -in pulsuz versiyasından istifadə edərək hazırlanmışdır (inanıram ki, ad dəyişdi).

  • PC Board tək tərəfli bir dizayndır.
  • Səth montaj komponentləri istifadə edilmir.
  • Bütün komponentlər SIM800L modulu daxil olmaqla PC lövhəsinə quraşdırılmışdır.
  • Xarici komponentlərə və ya əlaqələrə ehtiyac yoxdur
  • Tel atlayıcılar daha təmiz bir görünüş üçün komponentlərin altında gizlənir.

PC lövhələri hazırlamaq üçün aşağıdakı üsuldan istifadə edirəm:

  • PC Board görüntüsü, lazer printerdən istifadə edərək Press-n-Peel üzərində çap olunur.
  • Press-n-Peel daha sonra təmiz bir PC lövhəsinin üstünə qoyulur və bir az lentlə bərkidilir.
  • PC Board görüntüsü daha sonra lövhəni laminatordan keçirərək Press-n-Peel-dən boş PC Board-a köçürülür. Mənim üçün 10 keçid ən yaxşı işləyir.
  • PC lövhəsi otaq istiliyinə qədər soyuduqdan sonra Press-n-Peel lövhədən yavaşca qaldırılır.
  • Kompüter lövhəsi daha sonra isti suda həll edilmiş Ammonium Persulphate kristallarından istifadə edərək həkk olunur.
  • Aşındırıldıqdan sonra, mavi Press-n-Peel və qara toner, aşındırılmış PC lövhəsini bir az asetonla təmizləyərək çıxarılır.
  • Lövhə daha sonra Dremel ilə ölçüdə kəsilir
  • Delikdən keçən bütün komponentlər üçün deliklər 1 mm qazma ucu ilə qazılır.
  • Terminal vida bağlayıcıları 1,2 mm -lik bir qazma ucu ilə qazılır.

Addım 12: PC lövhəsinin yığılması

PC lövhəsinin yığılması
PC lövhəsinin yığılması
PC lövhəsinin yığılması
PC lövhəsinin yığılması
PC lövhəsinin yığılması
PC lövhəsinin yığılması
PC lövhəsinin yığılması
PC lövhəsinin yığılması

Montaj əvvəlcə ən kiçik komponentləri əlavə etməklə və ən böyük komponentlərə qədər işləməklə aparılır.

Bu Təlimatda istifadə olunan bütün komponentlər, SIM800 modulu istisna olmaqla, yerli təchizatçımdan alınmışdır. Həmişə ehtiyata sahib olduqlarını düşünür. Zəhmət olmasa Cənubi Afrika veb saytına baxın:

www.shop.rabtron.co.za/catalog/index.php

QEYD! Əvvəlcə ATMEGA328p IC altında yerləşən iki tullanan lehimləmə

Sifariş aşağıdakı kimidir:

  • Rezistorlar və diod
  • Sıfırlama düyməsi
  • IC Soketləri
  • Gərginlik tənzimləyicisi
  • Başlıq sancaqları
  • Kiçik kondansatörler
  • LEDlər
  • Sigorta tutacağı
  • Terminal blokları
  • Relaylər
  • Elektrolitik kondansatörler

IC -ni daxil etməzdən əvvəl cihazı 12V -a qoşun və bütün gərginliklərin doğru olduğunu yoxlayın.

Nəhayət, şəffaf bir lak istifadə edərək, elementləri qorumaq üçün PC lövhəsinin mis tərəfini örtün.

Lak qurudulduqda, IC -ləri daxil edin, ancaq AtMega proqramlaşdırılana qədər GSM modulunu tərk edin.

Addım 13: AtMega328p proqramlaşdırılması

AtMega328p proqramlaşdırılması
AtMega328p proqramlaşdırılması
AtMega328p proqramlaşdırılması
AtMega328p proqramlaşdırılması
AtMega328p proqramlaşdırılması
AtMega328p proqramlaşdırılması

# # Firmware 3.02 Versiyasına Yeniləyin # #

Cihaza güc bərpa edildikdə, MASTER USER -ə SMS göndərilməsi aktiv edildi

Cihazı proqramlaşdırmaq üçün proqramlaşdırma qalxanı olan bir Arduino Uno istifadə edirəm. Bir Arduino Uno proqramçı olaraq necə istifadə ediləcəyi haqqında daha çox məlumat üçün bu Təlimata baxın:

AtMega328P Proqramçısı olaraq Arduino UNO

Proqramlaşdırma başlığına daxil olmaq üçün GSM modulunun PC Kartından çıxarılması lazımdır. GSM modulunu çıxararkən anten telinə zərər verməmək üçün diqqətli olun.

Proqramlaşdırma kabelini kompüter lövhəsindəki proqramlaşdırma başlığından istifadə edərək proqramçı ilə qurğu arasında bağlayın və eskizi qurğuya yükləyin.

Cihazı proqramlaşdırmaq üçün xarici 12V təchizatı tələb olunmur. Kompüter lövhəsi proqramlaşdırma kabeli vasitəsilə Arduinodan alınacaq.

Əlavə edilmiş faylı Arduino IDE -də açın və bölməyə proqramlaşdırın.

Proqramlaşdırmadan sonra proqramlaşdırma kabelini çıxarın və GSM modulunu daxil edin.

Cihaz artıq istifadəyə hazırdır.

Addım 14: Cihazı birləşdirin

Vahidin birləşdirilməsi
Vahidin birləşdirilməsi
Vahidin birləşdirilməsi
Vahidin birləşdirilməsi
Vahidin birləşdirilməsi
Vahidin birləşdirilməsi

Cihazla bütün əlaqələr vida terminalları vasitəsilə aparılır.

Vahidin Gücləndirilməsi

GSM moduluna qeydiyyatdan keçmiş bir SİM kart daxil etdiyinizə və SİM kartın SMS mesajları göndərə və qəbul edə biləcəyinə əmin olun.

12V DC və 0V terminallarından hər hansı birinə 12V DC enerji təchizatı bağlayın. Gücləndirildikdən sonra PC lövhəsindəki qırmızı LED yanacaq. Təxminən bir dəqiqə ərzində GSM modulu mobil telefon şəbəkəsinə qoşulmalı idi. Qırmızı LED sönəcək və GSM modulundakı qırmızı LED sürətlə yanıb sönəcək.

Bu mərhələyə çatdıqdan sonra cihaz konfiqurasiya olunmağa hazırdır.

Giriş Əlaqələri

Rəqəmsal girişlər 12V -də işləyir. Bir girişi açmaq üçün girişə 12V tətbiq etmək lazımdır. 12V -nin çıxarılması girişi söndürəcək.

Çıxış Əlaqələri

Hər bir çıxış dəyişən kontaktdan ibarətdir. Lazım gələrsə hər bir əlaqəni bağlayın.

Addım 15: İlkin Quraşdırma

İlkin Quraşdırma
İlkin Quraşdırma

Bütün parametrlərin zavod parametrlərinə və SİM kartın istifadəçi məlumatlarını düzgün formatda qəbul etmək üçün konfiqurasiya edilməsinə əmin olmaq üçün qurğunun ilkin quraşdırılması aparılmalıdır.

Bütün əmrlər SMS -ə əsaslandığından, quraşdırmanı yerinə yetirmək üçün başqa bir telefona ehtiyacınız olacaq.

İlkin quraşdırma üçün cihazda olmalısınız.

MASTER USER telefon nömrəsini təyin edin

Yalnız MASTER İSTİFADƏCİ vahidi konfiqurasiya edə bildiyindən, bu addım əvvəlcə həyata keçirilməlidir.

  • Cihaza elektrik enerjisi verilməlidir.
  • Sıfırlama düyməsini basıb buraxın və PC lövhəsindəki qırmızı LEDin sönməsini gözləyin.
  • GSM modulundakı NET LED sürətlə yanıb sönəcək.
  • Cihaz artıq ilkin quraşdırma əmrlərini qəbul etməyə hazırdır. Bu 10 dəqiqə ərzində həyata keçirilməlidir.
  • MASTER, bölmənin telefon nömrəsinə təsviri olan bir SMS mesajı göndərin.
  • Alınsa, PC Kartındakı yaşıl LED iki dəfə yanıb -sönəcək.
  • MASTER USER indi proqramlaşdırılmışdır.

Cihazı zavod parametrlərinə qaytarın

MASTER USER proqramlaşdırıldıqdan sonra cihazın parametrləri zavod parametrlərinə təyin olunmalıdır.

  • Vahid telefon nömrəsinə yalnız CLEARALL yazaraq SMS göndərin.
  • Alınarsa, PC lövhəsindəki yaşıl və qırmızı LED alternativ olaraq saniyədə bir dəfə yanıb -sönəcək. Cihaz zavod parametrləri ilə bərpa edildi.
  • Bütün parametrlər zavod parametrlərinə qaytarılmışdır.
  • Cihazı yenidən başlatmaq üçün Sıfırlama düyməsini basıb buraxın.

SİM kartın formatlanması

Son addım, SİM kartda saxlanan bütün məlumatları silmək və bu cihazda istifadə üçün konfiqurasiya etməkdir.

  • Sıfırlama düyməsini basıb buraxın və PC lövhəsindəki qırmızı LEDin sönməsini gözləyin.
  • GSM modulundakı NET LED sürətlə yanıb sönəcək.
  • Cihaz artıq ilkin quraşdırma əmrlərini qəbul etməyə hazırdır. Bu 10 dəqiqə ərzində həyata keçirilməlidir.
  • Cihazın telefon nömrəsinə yalnız ERASESIM ilə SMS göndərin.
  • Alınsa, PC lövhəsindəki yaşıl LED ağac dəfə yanıb sönəcək.

Cihaz artıq konfiqurasiya edilmişdir və istifadəyə hazırdır.

Addım 16: SMS əmrləri

SMS əmrləri
SMS əmrləri

Bölmə tərəfindən istifadə olunan üç fərqli əmr növü var. Bütün əmrlər SMS ilə göndərilir və hamısı aşağıdakı formatda olur:

ƏMR,,,,,,

  • NORMAL USER əmrləri istisna olmaqla, bütün əmrlər böyük -kiçik hərflərə həssasdır.
  • Parametrlər böyük hərflərə həssas deyil.

İlkin Quraşdırma Əmrləri

MASTER, adı

SMS göndərənin telefon nömrəsi MASTER USER telefon nömrəsi kimi istifadə olunur. vahidin təsviri bura əlavə edilə bilər.

HAMISINI SİL, HAMISINI TƏMİZLƏ

Cihazı zavod parametrlərinə qaytarın

CLEARSIM

SİM kartdakı bütün məlumatları silin

SIFIRLAYIN

Cihazı yenidən başladın

MASTER USER vahidi konfiqurasiya etmək üçün əmrlər

OUTMODE, c, m, t Qeyd! ! ! HƏLƏ TƏTBİQ EDİLMİR

Xüsusi kanalları PULSED, TIMED və LATCHING çıxışları üçün təyin edin. t, TIMED çıxışları üçün dəqiqələrdəki müddətdir

Nəbz, cccc

Xüsusi kanalları PULSED çıxışlarına təyin edin. Ayarlanmasa, kanallar LATCHING çıxışları olaraq təyin ediləcək.

PULSETIME, t Pulse çıxış müddətini saniyələrlə təyin edir (0.. 10s)

GİRİŞ, cccc

Vəziyyət OFF -dan ON -a dəyişdikdə tetiklemesi lazım olan kanalları seçin və SMS mesajı göndərin

GİRİŞ, cccc

Vəziyyət ON -dan OFF -a dəyişəndə tetiklemesi lazım olan kanalları seçin və SMS mesajı göndərin

INTIME, c, t

Vəziyyət dəyişikliklərini saniyələrdə aşkar etmək üçün giriş gecikmə müddətini təyin edir

INTEXT, ch, ad, yandır, söndür

Hər giriş kanalının adını mətnə və mətnə qoyun

OUTTEXT, ch, ad, yandır, söndür

Hər bir çıxış kanalının adını mətnə və mətnə qoyun

Əlavə et, yer, nömrə, Çağırışlar, SMS çıxışları, girişlər

İstifadəçiyə təyin edilmiş çıxış və giriş kanalları olan "yeri" yaddaşında SİM karta istifadəçi əlavə edin

Del, yer

İstifadəçini SİM kart yaddaşından 'yerdən' silin

Kanal Adı

ChannelName adı ilə pulse çıxışı olacaq

ChannelName, onText və ya ChannelName, offText

ChannelName və onText/offText adı ilə çıxışı Açar/Söndürəcək

Cihazı idarə etmək üçün Normal İstifadəçi Komutları

???? I/O status yeniləməsini tələb edin. Status SMS göndərənə göndəriləcək.

Kanal Adı

ChannelName adı ilə pulse çıxışı olacaq

Kanal Adı, onText

Çıxışı ChannelName adı və status mətni onText ilə Açar

ChannelName, offText, ChannelName adı ilə çıxışı və status mətnini offText'i söndürəcək

Əmrlərin daha ətraflı təsviri üçün əlavə PDF sənədinə baxın.

Tövsiyə: