Mundarija:
- 1 -qadam: Elektr ta'minoti
- 2 -qadam: raqamli kirish
- 3 -qadam: Raqamli chiqish
- 4 -qadam: mikrokontroller osilatori
- 5 -qadam: Ko'rsatkichli LEDlar
- 6 -qadam: Mikro protsessorni qayta o'rnatish davri
- 7 -qadam: SIM800L moduli
- 8 -qadam: Mikro boshqaruvchi
- 9 -qadam: SRAM xotirasini optimallashtirish
- 10 -qadam: dasturiy ta'minot ketma -ket bufer hajmi
- 11 -qadam: Kompyuter platasini yasash
- 12 -qadam: Kompyuter platasini yig'ish
- 13 -qadam: AtMega328p dasturlash
- 14 -qadam: qurilmani ulash
- 15 -qadam: Dastlabki sozlash
- 16 -qadam: SMS buyruqlari
Video: Arduino asosidagi GSM/SMS masofadan boshqarish pulti: 16 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
! ! ! 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
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 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
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
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
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
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
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 -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
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
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 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
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
# # 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
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
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
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:
LoRa asosidagi masofadan boshqarish pulti - Katta masofadan asboblarni boshqarish: 8 qadam
LoRa asosidagi masofadan boshqarish pulti | Katta masofadan asboblarni boshqarish: Hey, nima bo'ldi, bolalar! Bu loyihada biz LEDlar, motorlar kabi turli xil asboblarni boshqarish uchun ishlatilishi mumkin bo'lgan masofadan boshqarish pultini yaratmoqchimiz yoki agar biz kundalik hayotimiz haqida gapiradigan bo'lsak, biz o'z uy dasturchimizni boshqaramiz.
IRduino: Arduino masofadan boshqarish pulti - yo'qolgan masofadan boshqarish pultiga taqlid: 6 qadam
IRduino: Arduino masofadan boshqarish pulti - Yo'qotilgan masofadan boshqarish pultiga taqlid qiling: Agar siz televizor yoki DVD pleer uchun masofadan boshqarish pultini yo'qotib qo'ysangiz, qurilmaning o'zi tugmachalarini bosib o'tish, topish va ulardan foydalanish qanchalik achinarli ekanligini bilasiz. Ba'zida bu tugmalar masofadan boshqarish pulti bilan bir xil funktsiyalarni taklif qilmaydi. Qabul qilish
Taymer funktsiyasi bilan televizorni masofadan boshqarish pulti yordamida uy jihozlarini qanday boshqarish mumkin: 7 qadam (rasmlar bilan)
Uy asbob -uskunalarini masofadan boshqarish pulti bilan taymer funktsiyasi yordamida qanday boshqarish mumkin: Iste'mol bozoriga 25 yil kirganidan keyin ham, infraqizil aloqa so'nggi kunlarda juda dolzarb bo'lib qolmoqda. Bu sizning 55 dyuymli 4K televizoringiz yoki avtomobilingizning ovoz tizimidan qat'i nazar, hamma narsaga javob berish uchun IQ masofadan boshqarish pulti kerak
Oddiy masofadan boshqarish pulti to'rt kanalli RC o'yinchoqli masofadan boshqarish pultiga aylantirildi: 4 qadam
Oddiy masofadan boshqarish pulti to'rt kanalli RC o'yinchoqli masofadan boshqarish pultiga aylantirildi: 如何 通用 遥控 器 套件 的 的.方法 非常 简单。 只需
Eskate yoki gidrofoil uchun Arduino asosidagi masofadan boshqarish pulti: 5 qadam (rasmlar bilan)
Eskate yoki gidrofoil uchun Arduino -ga asoslangan masofadan boshqarish pulti: Bu ko'rsatma sizga barcha kod va texnik vositalarni o'z ichiga olgan eskate yoki elektr gidrofoil bilan ishlatish uchun masofadan boshqarish pultini yaratishni ko'rsatib beradi. Lehimlash juda ko'p, lekin uni yasash ham qiziq. Masofadan boshqarish pulti nima qila oladi? Hamkorlik