Mundarija:

Arduino asosidagi GSM/SMS masofadan boshqarish pulti: 16 qadam (rasmlar bilan)
Arduino asosidagi GSM/SMS masofadan boshqarish pulti: 16 qadam (rasmlar bilan)

Video: Arduino asosidagi GSM/SMS masofadan boshqarish pulti: 16 qadam (rasmlar bilan)

Video: Arduino asosidagi GSM/SMS masofadan boshqarish pulti: 16 qadam (rasmlar bilan)
Video: Lesson 13: Using Flame Sensor module with Arduino 2024, Noyabr
Anonim
Arduino asosidagi GSM/SMS masofadan boshqarish pulti
Arduino asosidagi GSM/SMS masofadan boshqarish pulti

! ! ! N OT I C E! !

Mening hududimda mahalliy uyali telefon minorasi yangilanganligi sababli, men endi bu GSM modulidan foydalana olmayapman. Yangi minora endi 2G qurilmalarini qo'llab -quvvatlamaydi. Shuning uchun men endi bu loyihani qo'llab -quvvatlay olmayman.

Xobbilar uchun GSM modullarining keng assortimenti bilan ko'pchiligimiz uni sotib olishni tugatdik. Men mahalliy SIM800L modulini sotib oldim va modulning turli buyruqlari bilan o'ynadim.

Arduino Uno va Arduino IDE -dan foydalanib, men o'z g'oyalarimni haqiqatga aylantira oldim. Bu oson bo'lmadi, chunki YANGILI ENG ZO'R MASALA faqat 2KB SRAM bilan cheklangan. Internetda va turli forumlarda ko'p izlanishlardan so'ng, men bu cheklovni engishga muvaffaq bo'ldim.

Turli xil dasturlash usullari, Arduino kompilyatorini yaxshiroq tushunish va qo'shimcha xotira uchun SIM -karta va EEPROMdan foydalanish bu loyihani saqlab qoldi. Kodga ba'zi o'zgarishlar kiritilgandan so'ng, barqaror prototip bir hafta mobaynida qurildi va sinovdan o'tkazildi.

Cheklangan SRAMning kamchiliklari shundaki, qurilmaga displey va foydalanuvchi kalitlari o'rnatilmagan. Bu kodni to'liq qayta yozishga olib keldi. Foydalanuvchi interfeysi bo'lmagan holda, loyihani davom ettirishning yagona varianti - bu qurilmani va foydalanuvchilarni sozlash uchun SMS -xabarlardan foydalanish.

Bu hayajonli loyiha bo'lib chiqdi va rivojlanish davom etar ekan, ko'proq fyuchers qo'shildi.

Mening asosiy maqsadim - Arduino Uno yoki bu holda ATMEGA328p bilan ishlash va sirtga o'rnatuvchi komponentlardan foydalanmaslik. Bu keng jamoatchilikka qurilmani nusxalash va qurishni osonlashtiradi.

Birlikning spetsifikatsiyasi:

  • Qurilmada maksimal 250 foydalanuvchi dasturlanishi mumkin
  • To'rt raqamli chiqish
  • To'rt raqamli kirish
  • Har bir chiqishni PULSE yoki ON/OFF chiqishi sifatida sozlash mumkin
  • Chiqish pulsining davomiyligi 0,5.. 10 soniya orasida o'rnatilishi mumkin
  • Har bir kirishni O'chirish -O'chirish rejimini yoqish uchun sozlash mumkin.
  • Har bir kirishni yoqish va o'chirishni o'zgartirish uchun sozlash mumkin
  • Har bir kirish kechikish vaqti 0 soniyadan 1 soatgacha o'rnatilishi mumkin
  • Kirishni o'zgartirish uchun SMS -xabarlar 5 xil foydalanuvchiga yuborilishi mumkin
  • Har bir kirish uchun nomlar va holat matni foydalanuvchi tomonidan o'rnatilishi mumkin
  • Har bir chiqish uchun nomlar va holat matni foydalanuvchi tomonidan o'rnatilishi mumkin
  • Qurilmani USSD -xabarlar orqali SIM -kartadagi balans xabarlarini qabul qilish uchun sozlash mumkin.
  • Barcha foydalanuvchilar qurilmaning kirish -chiqish holatini yangilashni so'rashi mumkin
  • Barcha foydalanuvchilar SMS -xabarlar orqali individual chiqishlarni boshqarishi mumkin
  • Har bir foydalanuvchi qurilmaga qo'ng'iroq qilib, individual chiqishlarni boshqarishi mumkin

Xavfsizlik xususiyatlari

  • Qurilmani dastlabki sozlash faqat qurilmada bo'lganda amalga oshirilishi mumkin.
  • Dastlabki sozlash faqat MASTER USER tomonidan amalga oshirilishi mumkin
  • Dastlabki sozlash buyruqlari o'n daqiqadan so'ng avtomatik ravishda o'chiriladi.
  • Jihozni faqat taniqli foydalanuvchilar yuborgan qo'ng'iroqlar va SMSlar boshqarishi mumkin
  • Foydalanuvchilar faqat MASTER USER tomonidan tayinlangan chiqishlarni boshqarishi mumkin

Boshqa Xususiyatlar

  • Qo'ng'iroqlar bepul, chunki qo'ng'iroq hech qachon javob bermaydi.
  • Qo'ng'iroq qilinganida, qo'ng'iroq faqat 2 soniyadan so'ng to'xtaydi. Bu qo'ng'iroq qiluvchiga birlik qo'ng'iroqqa javob berganligini tasdiqlaydi.
  • Agar SIM -karta provayder USSD -xabarlarni qo'llab -quvvatlasa, MASTER USER -dan balans bo'yicha so'rov yuborish mumkin. Balansni o'z ichiga olgan USSD -xabar MASTER USER -ga yuboriladi.

1 -qadam: Elektr ta'minoti

Quvvatlantirish manbai
Quvvatlantirish manbai

Qurilmani standart xavfsizlik tizimlariga (signalizatsiya tizimlari, elektr garaj eshiklari, elektr eshikli dvigatellar) ulash mumkinligi uchun, qurilma odatda bunday tizimlarda mavjud bo'lgan 12V DCdan quvvatlanadi.

Quvvat 12V IN va 0V terminallarida qo'llaniladi va 1A sug'urta bilan himoyalangan. Qo'shimcha 12V OUT terminallari mavjud va ular sug'urta bilan himoyalangan.

D1 diodi qurilmani 12V chiziqlardagi teskari polaritli ulanishlardan himoya qiladi.

C1 va C2 kondansatkichlari 12V kuchlanishli tarmoqlarda mavjud bo'lgan shovqinlarni filtrlaydi. 12V kuchlanish qurilmaning rölesini quvvatlantirish uchun ishlatiladi.

5V kuchlanish LM7805L kuchlanish regulyatoridan iborat bo'lib, SIM800L GSM moduli uchun zarur bo'lgan barqaror +5V, shuningdek mikroprotsessorni chiqaradi. C3 va C4 kondansatkichlari +5V besleme liniyasida bo'lishi mumkin bo'lgan shovqinlarni filtrlaydi. Nisbatan katta o'lchamdagi elektrolitik kondansatkichlar ishlatilgan, chunki SIM800L GSM moduli uzatishda ancha kuch sarflaydi.

Voltaj regulyatorida issiqlik qabul qilgich kerak emas.

2 -qadam: raqamli kirish

Raqamli kirish
Raqamli kirish
Raqamli kirish
Raqamli kirish

Raqamli kirish signallari hammasi 12V, ular 5V mikro -kontroller bilan bog'lanishi kerak. Buning uchun optik ulagichlar 5V tizimidan 12V signallarni ajratish uchun ishlatiladi.

1K kirish qarshiligi opto ulagichga kirish oqimini 10mA atrofida cheklaydi.

Joylar cheklanganligi sababli, kompyuter platasida 5V tortish qarshiligi uchun joy yo'q edi. Mikro-nazorat moslamasi kirish pinlarini kuchsiz tortish imkoniyatini berish uchun o'rnatiladi.

Opto -ulagichning kirishida (LOW) hech qanday signal bo'lmasa, opto -ulagichning LEDidan hech qanday oqim o'tmaydi. Shunday qilib, optik aloqa tranzistorlari o'chiriladi. Mikro-nazoratchining kuchsiz tortilishi kollektorni deyarli 5V ga ko'taradi va mikro-nazoratchi tomonidan mantiqiy YUQOR sifatida qaraladi.

Opto -ulagichning kirishiga 12V (YUQOR) qo'llanilganda, 10mA atrofida opto -ulanish diodidan o'tadi. Shunday qilib, optik aloqa tranzistori yoqiladi. Bu kollektorni deyarli 0V ga tushiradi va mikrokontroldor tomonidan LOW mantiqsiz ko'rinadi.

E'tibor bering, mikrokontroler tomonidan ko'riladigan kirish 12V kirishiga qaraganda teskari.

Kirish pinini o'qish uchun oddiy kod quyidagicha ko'rinadi:

boolean Input = digitalRead (inputpin);

Teskari signalni to'g'rilash uchun quyidagi koddan foydalaning:

boolean Input =! digitalRead (inputpin); // Diqqat! o'qish oldida

Endi mikrokontroler tomonidan ko'riladigan kirish 12V kirishidagi kirishga mos keladi.

Yakuniy kirish davri 4 ta raqamli kirishdan iborat. Har bir kirish kompyuter kartasidagi terminallarga ulangan.

3 -qadam: Raqamli chiqish

Raqamli chiqish
Raqamli chiqish
Raqamli chiqish
Raqamli chiqish
Raqamli chiqish
Raqamli chiqish

Odatda, rölelarning minimal sonini boshqaradigan sxema bilan, eng yaxshi usul, ko'rsatilganidek, tranzistorli haydovchi sxemasidan foydalanishdir. Bu oddiy, arzon va samarali.

Rezistorlar erga tushishni va tranzistor bazasi tokini cheklashni ta'minlaydi. Transistor o'rni haydash uchun mavjud bo'lgan oqimni oshirish uchun ishlatiladi. Mikro -nazorat pimidan faqat 1mA olinsa, tranzistor 100 mA yukni almashtirishi mumkin. Ko'p turdagi o'rni uchun etarli. Diyot-bu orqaga qaytuvchi diod bo'lib, o'rni almashish paytida kontaktlarning zanglashiga olib keladigan yuqori kuchlanishdan himoya qiladi. Ushbu sxemadan foydalanishning qo'shimcha afzalligi shundaki, o'rni ishchi kuchlanishi mikro tekshirgichning kuchlanishidan farq qilishi mumkin. Shunday qilib, 5V o'rni o'rniga 48Vgacha bo'lgan har qanday shahar kuchlanishidan foydalanish mumkin.

ULN2803 bilan tanishish

Loyihaga qanchalik ko'p o'rni kerak bo'lsa, komponentlar soni shuncha yuqori bo'ladi. Bu PCB dizaynini qiyinlashtiradi va qimmatbaho PCB maydonini ishlatishi mumkin. ULN2803 kabi tranzistorli massivdan foydalanish, albatta, kichik o'lchamli PCB o'lchamlarini saqlashga yordam beradi, ULN2803 mikro -kontroldan 3,3V va 5V kirish uchun juda mos keladi va 48V DCgacha bo'lgan o'rni boshqarishi mumkin. ULN2803 -da 8 ta individual tranzistorli sxemalar mavjud, ularning har biri o'z o'rni uchun zarur bo'lgan barcha komponentlar bilan jihozlangan.

Yakuniy chiqish davri ULN3803 dan iborat bo'lib, 4 ta 12V DC doimiy chiqish rölesini boshqaradi. O'rnimizni har bir kontaktini kompyuter paneli terminallarida topish mumkin.

4 -qadam: mikrokontroller osilatori

Mikro boshqaruvchi osilator
Mikro boshqaruvchi osilator
Mikro boshqaruvchi osilator
Mikro boshqaruvchi osilator
Mikro boshqaruvchi osilator
Mikro boshqaruvchi osilator

Osilator davri

To'g'ri ishlashi uchun mikrokontrollerga osilator kerak. Arduino Uno dizaynini saqlab qolish uchun sxemada 16 MGts standart osilator ishlatiladi. Ikkita variant mavjud:

Kristal

Bu usulda ikkita yuklovchi kondansatkichga ulangan kristal ishlatiladi. Bu eng keng tarqalgan variant.

Rezonator

Rezonator-bu asosan 3-pinli bitta to'plamdagi kristall va ikkita yuklovchi kondansatkich. Bu komponentlar sonini kamaytiradi va kompyuter kartasidagi bo'sh joyni oshiradi.

Komponentlar sonini iloji boricha pastroq tutish uchun 16 MGtsli rezonatordan foydalanishni tanladim.

5 -qadam: Ko'rsatkichli LEDlar

Ko'rsatkichli LEDlar
Ko'rsatkichli LEDlar
Ko'rsatkichli LEDlar
Ko'rsatkichli LEDlar

Ba'zi LEDlarsiz har qanday sxema qanday bo'ladi? Kompyuter taxtasida 3 mm diodli LEDlar o'rnatildi.

1K rezistorlar LED orqali tokni 5mA dan pastroq chegaralash uchun ishlatiladi, 3 mm yuqori yorqinlikdagi LEDlardan foydalanganda yorqinligi juda yaxshi bo'ladi.

LEDlarning holatini oson talqin qilish uchun ikkita rang ishlatiladi. Yorug'lik ko'rsatkichlari bilan ikkita LEDni birlashtirib, faqat ikkita LEDdan juda ko'p ma'lumot olish mumkin.

Qizil LED

Qizil LED nosozlik holatlarini, uzoq kechikishlarni, noto'g'ri buyruqlarni ko'rsatish uchun ishlatiladi.

Yashil LED

Yashil LED sog'lom va/yoki to'g'ri kirish va buyruqlarni ko'rsatish uchun ishlatiladi.

6 -qadam: Mikro protsessorni qayta o'rnatish davri

Mikro protsessorni tiklash sxemasi
Mikro protsessorni tiklash sxemasi

Xavfsizlik nuqtai nazaridan, qurilmaning ba'zi funktsiyalari qurilmani ishga tushirgandan keyingi dastlabki 10 daqiqada mavjud bo'ladi.

Qayta tiklash tugmasi yordamida jihozni qayta o'rnatish uchun qurilmaning quvvatini o'chirish shart emas.

U qanday ishlaydi

10K qarshilik RESET chizig'ini 5V ga yaqin ushlab turadi. Tugma bosilganda, RESET liniyasi 0V ga tortiladi va mikrokontroller qayta tiklanadi. Tugma qo'yib yuborilgach, RESET liniyasi %v ga qaytadi va mikrokontrolerni orqaga qaytaradi.

7 -qadam: SIM800L moduli

SIM800L moduli
SIM800L moduli
SIM800L moduli
SIM800L moduli
SIM800L moduli
SIM800L moduli

Qurilmaning yuragi SIM800L GSM modulidir. Ushbu modulda mikrokontrolda faqat 3 ta kirish -chiqish pinlari ishlatiladi.

Modul standart ketma -ket port orqali mikrokontrollerga ulanadi.

  • Birlikdagi barcha buyruqlar standart AT buyruqlari yordamida ketma -ket port orqali yuboriladi.
  • Kiruvchi qo'ng'iroq paytida yoki SMS qabul qilinganda, ma'lumot ASCII matni yordamida ketma -ket port orqali mikrokontrollerga yuboriladi.

Joyni tejash uchun GSM moduli kompyuter platasiga 7 pinli sarlavha orqali ulanadi. Bu GSM modulini olib tashlashni osonlashtiradi. Bu, shuningdek, foydalanuvchiga modulning pastki qismidagi SIM -kartani osongina joylashtirish/olib tashlash imkonini beradi.

Faol SIM -karta kerak va SIM -karta SMS -xabarlarni yuborish va qabul qila olishi kerak.

SIM800L GSM modulini sozlash

Jihozni ishga tushirgandan so'ng, GSM modulini tiklash pimi bir soniya past tortiladi. Bu GSM moduli faqat elektr ta'minoti barqarorlashgandan so'ng ishga tushishini ta'minlaydi. GSM modulini qayta ishga tushirish uchun bir necha soniya kerak bo'ladi, shuning uchun modulga AT buyruqlarini yuborishdan oldin 5 soniya kuting.

GSM moduli mikro -kontroller bilan to'g'ri aloqa qilish uchun sozlanganligiga ishonch hosil qilish uchun ishga tushirish vaqtida quyidagi AT buyruqlari ishlatiladi:

DA

GSM moduli mavjudligini aniqlash uchun ishlatiladi

AT+CREG?

Ushbu buyruq GSM moduli uyali telefon tarmog'ida ro'yxatdan o'tguncha so'raladi

AT+CMGF = 1

SMS xabar rejimini ASCII ga o'rnating

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

Agar SMS mavjud bo'lsa, SMS ma'lumotlarini GSM modulining ketma -ket portiga yuboring

AT+CMGD = 1, 4

SIM -kartada saqlangan SMS -xabarlarni o'chirib tashlang

AT+CPBS = / "SM

GSM modulining telefon kitobini SIM kartaga o'rnating

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

GSM moduli vaqtini uyali telefon tarmog'ining vaqtiga o'rnating

Vaqtni sozlash uchun 5 soniya kuting

AT+CUSD = 1

USSD xabar almashish funksiyasini yoqish

8 -qadam: Mikro boshqaruvchi

Mikro boshqaruvchi
Mikro boshqaruvchi
Mikro boshqaruvchi
Mikro boshqaruvchi
Mikro boshqaruvchi
Mikro boshqaruvchi

Mikro -nazoratchi Arduino Uno -da ishlatilgan AtMega328p standarti. Shunday qilib, kodni ikkalasi bilan solishtirish mumkin. Bortda oson dasturlash uchun kompyuter platasida 6 pinli dasturlash sarlavhasi mavjud.

Qurilmaning turli bo'limlari mikroprotsessorga ulangan va quyidagilarni o'z ichiga oladi.

  • To'rt raqamli kirish
  • To'rt raqamli chiqish
  • Osilator
  • Ikkita ko'rsatkichli LED
  • O'chirish sxemasi
  • SIM800L GSM moduli

GSM moduliga va undan barcha aloqa SoftwareSerial () funktsiyasi yordamida amalga oshiriladi. Ushbu usul ishlab chiqish bosqichida Arduino IDE uchun asosiy ketma -ket portni bo'shatish uchun ishlatilgan.

Faqat 2KB SRAM va 1KB EEPROM bilan jihozga ulanishi mumkin bo'lgan bir nechta foydalanuvchilarni saqlash uchun etarli xotira yo'q. SRAM -ni bo'shatish uchun barcha foydalanuvchi ma'lumotlari GSM modulidagi SIM -kartada saqlanadi. Bu tartib bilan jihoz 250 xil foydalanuvchilarga xizmat ko'rsatishi mumkin.

Qurilmaning konfiguratsiya ma'lumotlari EEPROM -da saqlanadi, shuning uchun foydalanuvchi ma'lumotlari va tizim ma'lumotlarini bir -biridan ajratadi.

Hali ham bir nechta zaxira kiritish -chiqarish pinlari mavjud, biroq LCD displey va/yoki klaviatura qo'shish imkoniyati SoftWareSerial () buferlarini qabul qilish va uzatish uchun SRAMning katta miqdori tufayli amalga oshmadi, Qurilmada har qanday turdagi foydalanuvchi interfeysi yo'qligi sababli, barcha sozlamalar va foydalanuvchilar SMS -xabarlar yordamida dasturlashtirilgan.

9 -qadam: SRAM xotirasini optimallashtirish

SRAM xotirasini optimallashtirish
SRAM xotirasini optimallashtirish

Arduino IDE rivojlanish bosqichining boshida kodni tuzishda SRAM xotirasi pastligi haqida xabar bergan. Buni bartaraf etish uchun bir qancha usullar ishlatilgan.

Ketma -ket portda olingan ma'lumotlarni cheklang

GSM moduli barcha xabarlarni ketma -ket portga mikrokontrolderga etkazadi. Ba'zi SMS -xabarlarni qabul qilganda, qabul qilingan xabarning umumiy uzunligi 200 belgidan oshishi mumkin. Bu AtMega chipida mavjud bo'lgan barcha SRAM -ni tezda iste'mol qilishi mumkin va bu barqarorlik bilan bog'liq muammolarni keltirib chiqaradi.

Buning oldini olish uchun GSM modulidan qabul qilingan har qanday xabarning faqat birinchi 200 ta belgisidan foydalaniladi. Quyidagi misolda, hisoblagich o'zgaruvchisida qabul qilingan belgilarni hisoblash orqali buni qanday qilish mumkinligi ko'rsatilgan.

// dasturiy ta'minot ketma -ket portidan ma'lumotlarni qidirish

// ----------------------------------------------- RxString = ""; Hisoblagich = 0; while (SSerial.available ()) {delay (1); // buferga yangi ma'lumotlarni joylashtirish uchun vaqt berish uchun qisqa kechikish // yangi belgini olish RxChar = char (SSerial.read ()); // satrga birinchi 200 belgini qo'shing, agar (Counter <200) {RxString.concat (RxChar); Hisoblagich = Hisoblagich + 1; }}

Serial.print () kodini kamaytirish

Arduino Serial Monitori ishlab chiqish jarayonida qulay bo'lishiga qaramay, ko'p SRAM -dan foydalanishi mumkin. Kod iloji boricha kamroq Serial.print () kodi yordamida ishlab chiqilgan. Kodning bir qismi ishlash uchun sinovdan o'tkazildi, barcha Serial.print () kodi bu qismdan olib tashlandi.

Serial.print (F (("")) kodidan foydalanish

Odatda Arduino Serial Monitor -da ko'rsatiladigan ko'p ma'lumotlar tavsiflar qo'shilganda mantiqan to'g'ri keladi. Quyidagi misolni oling:

Serial.println ("Muayyan harakatlarni kutish");

"Muayyan harakatlar kutilmoqda" qatori tuzatilgan va uni o'zgartirib bo'lmaydi.

Kodni kompilyatsiya qilish paytida kompilyator FLASH xotirasida "Muayyan harakatlarni kutish" qatorini o'z ichiga oladi.

Bundan tashqari, kompilyator "Serial.print" yoki "Serial.println" ko'rsatmasida ishlatiladigan satr doimiy ekanligini ko'radi. Mikro ishga tushganda, bu doimiy SRAM xotirasiga ham joylashtiriladi.

Serial.print () funktsiyalaridagi "F" prefiksidan foydalanib, u kompilyatorga bu satr faqat FLASH xotirasida mavjudligini aytadi. Bu misol uchun satr 28 ta belgidan iborat. Bu SRAMda bo'shatilishi mumkin bo'lgan 28 bayt.

Serial.println (F ("Muayyan harakatlarni kutish"));

Bu usul SoftwareSerial.print () buyruqlariga ham tegishli. GSM moduli AT buyruqlarida ishlaganligi sababli, kodda SoftwareSerial.print ("xxxx") buyruqlari ko'p. "F" prefiksi yordamida deyarli 300 bayt SRAM bo'shatildi.

Uskuna ketma -ket portidan foydalanmang

Kodni tuzatgandan so'ng, ALL Serial.print () buyruqlarini olib tashlash orqali apparat ketma -ket porti o'chirildi. Bu SRAM -ning qo'shimcha baytlarini bo'shatdi.

Kodda hech qanday Serial.print () buyrug'i qolmagan bo'lsa, qo'shimcha 128 bayt SRAM mavjud edi. Bu apparat ketma -ket portini koddan olib tashlash orqali amalga oshirildi. Bu 64 baytli uzatishni va 64 baytli qabul qilish tamponlarini kuchaytiradi.

// Serial.begin (9600); // apparat ketma -ket port o'chirilgan

Stringlar uchun EEPROM dan foydalanish

Har bir kirish va chiqish uchun uchta qatorni saqlash kerak edi. Bu kanal nomi, kanal yoqilganda mag'lubiyat va kanal o'chirilganida.

Hammasi bo'lib 8 ta I/U kanallari bo'lsa, ular bo'ladi

  • Kanal nomlarini o'z ichiga olgan 8 ta satr, har biri 10 belgidan iborat
  • Kanalni o'z ichiga olgan 8 ta satr, har biri 10 belgidan iborat
  • Ta'rif o'chirilgan kanalni o'z ichiga olgan 8 ta satr, har biri 10 belgidan iborat

Bu 240 baytgacha bo'lgan SRAM -ni e'lon qiladi. Bu satrlarni SRAMda saqlash o'rniga, ular EEPROMda saqlanadi. Bu qo'shimcha 240 bayt SRAM bo'shatdi.

To'g'ri uzunlikdagi satrni e'lon qilish

O'zgaruvchilar odatda kodning boshida e'lon qilinadi. String o'zgaruvchisini e'lon qilishda tez -tez uchraydigan xato shundaki, biz simlarni to'g'ri sonli e'lon qilmaymiz.

GSM_Nr satri = "";

GSM_Name qatori = ""; GSM_Msg qatori = "";

Ishga tushirish vaqtida mikrokontroller SRAMda bu o'zgaruvchilar uchun xotira ajratmaydi. Bu keyinchalik bu satrlar ishlatilganda beqarorlikka olib kelishi mumkin.

Buning oldini olish uchun, dasturiy ta'minotda ishlatiladigan simlarning to'g'ri soni ko'rsatilgan satrlarni e'lon qiling.

GSM_Nr qatori "1000000000";

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

Bir xil belgilar bilan satrlarni qanday e'lon qilmaganimga e'tibor bering. Agar siz bu satrlarni "1234567890" deb aytsangiz, kompilyator uchta o'zgaruvchida bir xil satrni ko'radi va faqat bitta satr uchun SRAMda etarli xotira ajratadi.

10 -qadam: dasturiy ta'minot ketma -ket bufer hajmi

Dasturiy ta'minot ketma -ket bufer hajmi
Dasturiy ta'minot ketma -ket bufer hajmi

Quyidagi kodda siz dasturiy ta'minot portidan 200 tagacha belgini o'qish mumkinligini ko'rasiz.

// dasturiy ta'minot ketma -ket portidan ma'lumotlarni qidirish

// ----------------------------------------------- RxString = ""; Hisoblagich = 0; while (SSerial.available ()) {delay (1); // buferga yangi ma'lumotlarni joylashtirish uchun vaqt berish uchun qisqa kechikish // yangi belgini olish RxChar = char (SSerial.read ()); // satrga birinchi 200 belgini qo'shing, agar (Counter <200) {RxString.concat (RxChar); Hisoblagich = Hisoblagich + 1; }}

Bu dasturiy ta'minot ketma -ket porti uchun kamida 200 baytli buferni talab qiladi. Odatiy bo'lib, dasturiy ta'minot ketma -ket port buferi atigi 64 bayt. Buferni ko'paytirish uchun quyidagi faylni qidiring:

SoftwareSerial.h

Faylni matn muharriri bilan oching va bufer hajmini 200 ga o'zgartiring.

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

*Ta'riflar ********************************************** ******************************/ #ifndef _SS_MAX_RX_BUFF #define _SS_MAX_RX_BUFF 200 // RX bufer o'lchami #endif

11 -qadam: Kompyuter platasini yasash

Kompyuter platasini yasash
Kompyuter platasini yasash

Kompyuter kartasi Cadsoft Eagle -ning bepul versiyasi yordamida ishlab chiqilgan (menimcha, ism o'zgardi).

  • Kompyuter taxtasi - bu bir tomonlama dizayn.
  • Sirtga o'rnatiladigan komponentlar ishlatilmaydi.
  • Barcha komponentlar SIM karta modulini o'z ichiga olgan holda kompyuter kartasiga o'rnatiladi.
  • Hech qanday tashqi komponentlar yoki ulanishlar talab qilinmaydi
  • Tel o'tkazgichlar toza ko'rinish uchun komponentlar ostida yashiringan.

Kompyuter panellarini yaratish uchun men quyidagi usuldan foydalanaman:

  • Kompyuter kartasining tasviri Press-n-Peel-da lazerli printer yordamida chop etiladi.
  • Keyin Press-n-Peel kompyuter kartasining toza bo'lagi ustiga qo'yiladi va lenta bilan mahkamlanadi.
  • Kompyuter taxtasi tasviri, keyin laminatordan o'tib, Press-n-Peel-dan bo'sh kompyuter kartasiga o'tkaziladi. Men uchun 10 ta o'tish eng yaxshi ishlaydi.
  • Kompyuter platasi xona haroratiga qadar soviganidan so'ng, press-n-Peel taxtadan sekin ko'tariladi.
  • Keyin kompyuter taxtasi issiq suvda eritilgan ammoniy Persulfat kristallari yordamida ishlangan.
  • Naqshlashdan so'ng, ko'k rangli Press-n-Peel va qora toner, ishlangan kompyuter kartasini aseton bilan tozalash orqali chiqariladi.
  • Keyin taxta Dremel yordamida o'lchamiga kesiladi
  • Teshikli barcha komponentlar uchun teshiklar 1 mm matkap yordamida amalga oshiriladi.
  • Terminalli vintli ulagichlar 1,2 mm matkap yordamida burg'ulashadi.

12 -qadam: Kompyuter platasini yig'ish

Kompyuter platasini yig'ish
Kompyuter platasini yig'ish
Kompyuter platasini yig'ish
Kompyuter platasini yig'ish
Kompyuter platasini yig'ish
Kompyuter platasini yig'ish
Kompyuter platasini yig'ish
Kompyuter platasini yig'ish

O'rnatish birinchi navbatda eng kichik komponentlarni qo'shish va eng katta qismlarga o'tish orqali amalga oshiriladi.

Ushbu yo'riqnomada ishlatiladigan barcha komponentlar, SIM800 moduli bundan mustasno, mening mahalliy etkazib beruvchimdan olingan. Ular har doim zaxiraga ega deb o'ylashadi. Iltimos, ularning Janubiy Afrika veb -saytiga qarang:

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

ESLATMA! Avval ATMEGA328p IC ostida joylashgan ikkita o'tish moslamasini lehimlash

Buyurtma quyidagicha:

  • Rezistorlar va diod
  • Qayta tiklash tugmasi
  • IC soketlari
  • Voltaj regulyatori
  • Sarlavha pinlari
  • Kichik kondansatörler
  • LEDlar
  • Sug'urta ushlagichi
  • Terminal bloklari
  • Relaylar
  • Elektrolitik kondansatörler

ICni o'rnatishdan oldin, qurilmani 12V ga ulang va barcha kuchlanishlarning to'g'riligini tekshiring.

Nihoyat, shaffof lakdan foydalanib, uni elementlardan himoya qilish uchun kompyuter taxtasining mis tomonini yoping.

Lak quriganida, IClarni joylashtiring, lekin GSM modulini AtMega dasturlashtirilguncha qoldiring.

13 -qadam: AtMega328p dasturlash

AtMega328p dasturlash
AtMega328p dasturlash
AtMega328p dasturlash
AtMega328p dasturlash
AtMega328p dasturlash
AtMega328p dasturlash

# # Firmware 3.02 versiyasiga yangilang # #

Qurilmaga quvvat qayta tiklanganda MASTER USERga SMS yuborish yoqilgan

Men qurilmani dasturlash uchun dasturlash qalqoni bo'lgan Arduino Uno -dan foydalanayapman. Arduino Uno -dan dasturchi sifatida foydalanish haqida ko'proq ma'lumot olish uchun ushbu ko'rsatmaga qarang:

Arduino UNO AtMega328P dasturchisi sifatida

Dastur sarlavhasiga kirish uchun GSM modulini kompyuter kartasidan olib tashlash kerak. GSM modulini olib tashlashda antenna simini shikastlamaslikka ehtiyot bo'ling.

Kompyuter platasidagi dasturlash sarlavhasi yordamida dasturchi va birlik o'rtasida dasturiy kabelni ulang.

Jihozni dasturlash uchun tashqi 12V kuchlanish talab qilinmaydi. Kompyuter platasi Arduino -dan dasturiy kabel orqali quvvatlanadi.

Arduino IDE -da biriktirilgan faylni oching va uni qurilmaga dasturlang.

Dasturlashdan so'ng, dasturlash kabelini olib tashlang va GSM modulini joylashtiring.

Endi qurilma foydalanishga tayyor.

14 -qadam: qurilmani ulash

Qurilmani ulash
Qurilmani ulash
Qurilmani ulash
Qurilmani ulash
Qurilmani ulash
Qurilmani ulash

Jihozga barcha ulanishlar vintli terminallar orqali amalga oshiriladi.

Qurilmani quvvatlantirish

GSM moduliga ro'yxatdan o'tgan SIM -kartani qo'yganingizga va SIM -karta SMS -xabarlarni yuborishi va qabul qilishiga ishonch hosil qiling.

12V DC quvvat manbaiga 12V IN va har qanday 0V terminallariga ulang. Quvvatlantirilgandan so'ng, kompyuter kartasidagi qizil LED yonadi. Taxminan bir daqiqada GSM moduli uyali telefon tarmog'iga ulangan bo'lishi kerak. Qizil LED o'chadi va GSM modulidagi qizil LED tez yonadi.

Ushbu bosqichga o'tgandan so'ng, qurilma sozlashga tayyor.

Kirish ulanishlari

Raqamli kirish 12V kuchlanishli ishlaydi. Kirishni yoqish uchun kirishga 12V kuchlanish qo'llanilishi kerak. 12V kuchlanish o'chirilsa, kirish o'chadi.

Chiqish ulanishlari

Har bir chiqish o'zgaruvchan kontaktdan iborat. Har bir kontaktni kerak bo'lganda uzing.

15 -qadam: Dastlabki sozlash

Dastlabki sozlash
Dastlabki sozlash

Qurilmani dastlabki sozlash barcha parametrlar zavod parametrlariga o'rnatilishi va foydalanuvchi ma'lumotlarini to'g'ri formatda qabul qilish uchun konfiguratsiya qilingan bo'lishi uchun amalga oshirilishi kerak.

Barcha buyruqlar SMS -ga asoslanganligi sababli, sozlash uchun sizga boshqa telefon kerak bo'ladi.

Dastlabki sozlash uchun siz qurilmada bo'lishingiz kerak.

MASTER USER telefon raqamini o'rnating

Faqat MASTER USER qurilmani sozlashi mumkin bo'lgani uchun, bu qadam birinchi navbatda bajarilishi kerak.

  • Jihoz quvvatlanishi kerak.
  • Qayta tiklash tugmachasini bosing va qo'yib yuboring va kompyuter platasidagi qizil LED o'chishini kuting.
  • GSM modulidagi NET LED tez yonadi.
  • Endi qurilma dastlabki sozlash buyruqlarini qabul qilishga tayyor. Buni 10 daqiqa ichida bajarish kerak.
  • MASTER, tavsifni o'z ichiga olgan SMS -xabarni telefon raqamiga yuboring.
  • Agar qabul qilinsa, kompyuter kartasidagi yashil LED ikki marta yonadi.
  • MASTER USER endi dasturlashtirilgan.

Qurilmani zavod parametrlariga qaytaring

MASTER USER dasturlashtirilgandan so'ng, qurilma sozlamalari zavod parametrlariga o'rnatilishi kerak.

  • Telefon raqamiga faqat CLEARALL SMS -xabarini yuboring.
  • Agar qabul qilinsa, kompyuter kartasidagi yashil va qizil LEDlar sekundiga bir marta yonadi. Qurilma zavod sozlamalari bilan tiklandi.
  • Barcha sozlamalar zavod parametrlariga qaytarildi.
  • Qurilmani qayta ishga tushirish uchun Reset tugmasini bosing va qo'yib yuboring.

SIM -kartani formatlash

Oxirgi qadam - SIM kartada saqlangan barcha ma'lumotlarni o'chirish va uni ushbu qurilmada foydalanish uchun sozlash.

  • Qayta tiklash tugmachasini bosing va qo'yib yuboring va kompyuter platasidagi qizil LED o'chishini kuting.
  • GSM modulidagi NET LED tez yonadi.
  • Endi qurilma dastlabki sozlash buyruqlarini qabul qilishga tayyor. Buni 10 daqiqa ichida bajarish kerak.
  • Telefon raqamiga faqat ERASESIM bilan SMS -xabar yuboring.
  • Agar qabul qilinsa, kompyuter kartasidagi yashil LED yonadi.

Endi jihoz konfiguratsiya qilingan va foydalanishga tayyor.

16 -qadam: SMS buyruqlari

SMS buyruqlar
SMS buyruqlar

Birlik tomonidan ishlatiladigan uch xil turdagi buyruqlar mavjud. Barcha buyruqlar SMS orqali yuboriladi va ularning barchasi quyidagi formatda bo'ladi:

Buyruq,,,,,,

  • NORMAL USER buyruqlaridan tashqari barcha buyruqlar katta -kichiklarga sezgir.
  • Parametrlar katta -kichiklarga sezgir emas.

Dastlabki o'rnatish buyruqlari

MASTER, ismi

SMS yuboruvchining telefon raqami MASTER USER telefon raqami sifatida ishlatiladi. Bu erda birlik tavsifi qo'shilishi mumkin.

HAMMASINI TOZALAMOQ

Qurilmani zavod parametrlariga qaytaring

TIZIM

SIM kartadagi barcha ma'lumotlarni o'chirib tashlang

QAYTA O'RNATISH

Jihozni qayta yoqing

MASTER USER Jihozni sozlash buyruqlari

OUTMODE, c, m, t QAYD! ! ! HECH QILMAYDI

Muayyan kanallarni PULSED, TIMED yoki LATCHING chiqishlariga sozlang. t - TIMED chiqishi uchun daqiqalardagi vaqt davomiyligi

Pulse, cccc

Muayyan kanallarni PULSED chiqishlariga o'rnating. Agar sozlanmagan bo'lsa, kanallar LATCHING chiqishi sifatida o'rnatiladi.

PULSETIME, t Pulsli chiqish vaqtini soniyalarda belgilaydi (0.. 10s)

INPUTON, cccc

Vaziyat OFF holatidan ON holatiga o'zgarganda, ishga tushirish kerak bo'lgan kanallarni o'rnating va SMS xabar yuboring

INPUTOFF, cccc

Tartibga solinishi kerak bo'lgan kanallarni o'rnating va holat ON holatidan OFF holatiga o'zgarganda SMS xabar yuboring

INTIME, c, t

Vaziyat o'zgarishini soniyalarda aniqlash uchun kirish kechikish vaqtini belgilaydi

INTEXT, ch, ism, yoqish, o'chirish

Har bir kirish kanalining nomini matn va o'chirilgan matnga o'rnating

OUTTEXT, ch, ism, yoqish, o'chirish

Har bir chiqish kanalining nomini matn va o'chirilgan matnga o'rnating

Qo'shish, joylashuv, raqam, izohlar, SMS chiqishlari, kirishlar

Foydalanuvchini SIM kartaga xotira "joylashuvi" ga qo'shish, foydalanuvchiga chiqish va kirish kanallari tayinlangan

Del, joylashuv

Foydalanuvchini SIM karta xotirasidagi "joylashuv" dan o'chirish

Kanal nomi

ChannelName nomi bilan puls chiqadi

ChannelName, onText yoki ChannelName, offText

ChannelName va onText/offText nomi bilan chiqishni yoqadi/o'chiradi

Qurilmani boshqarish uchun oddiy foydalanuvchi buyruqlari

???? I/U holatini yangilashni so'rang. Status SMS -xabari yaratuvchiga yuboriladi.

Kanal nomi

ChannelName nomi bilan puls chiqadi

Kanal nomi, onText

Chiqishni ChannelName nomi va holat matni onText bilan yoqadi

ChannelName, offText chiqishni ChannelName nomi bilan o'chirib qo'yadi va matn matnini o'chiradi

Buyruqlarning batafsil tavsifi uchun ilova qilingan PDF hujjatiga qarang.

Tavsiya: