Mundarija:
- 1 -qadam: narsalar oling
- 2 -qadam: Lehim sarlavhalari
- 3 -qadam: kiritish
- 4 -qadam: qayta sotish
- 5 -qadam: antennani ulang
- 6 -qadam: SIM -kartani joylashtiring
- 7 -qadam: ishga tushiring
- 8 -qadam: matnli xabarlar
- 9 -qadam: Ovoz
Video: Arduino uyali qalqoni bo'yicha qo'llanma: 9 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
Arduino uyali qalqoni sizga uyali telefon qo'ng'iroqlarini amalga oshirish va matnli xabarlar yuborish imkonini beradi. Bu qalqonning miyasi SM5100B bo'lib, u standart uyali telefonlarning ko'p vazifalarini bajarishga qodir mustahkam uyali moduldir. Bu qalqon uyali tarmoqqa ulanish uchun SIM -kartadan foydalanishni talab qiladi. Quyidagi qo'llanma qalqonni ishga tushirish, matnli xabarlarni yuborish, qabul qilish va telefon qo'ng'iroqlari uchun yalang'och suyaklar qo'llanmasidir. Modulning funktsional imkoniyatlari haqida ko'proq bilish uchun Sparkfun mahsulot sahifasidagi ma'lumotlar jadvalini tekshirib ko'ring.
1 -qadam: narsalar oling
Sizga kerak bo'ladi:
(x1) Uyali ekran (x1) Arduino -ning yig'iladigan sarlavhalari (x1) To'rt tarmoqli antenna (x1) Arduino Uno
(E'tibor bering, bu sahifadagi havolalarning ba'zilari sheriklik havolalaridir. Bu siz uchun mahsulot narxini o'zgartirmaydi. Men olgan mablag'imni yangi loyihalarni amalga oshirish uchun qayta sarmoya qilaman. Agar siz muqobil etkazib beruvchilar uchun biron bir taklifni xohlasangiz, menga ruxsat bering. bilaman.)
2 -qadam: Lehim sarlavhalari
Sarlavhalarni qalqonga joylashtiring va ularni joyiga lehimlang.
3 -qadam: kiritish
Sarlavha pinlarini Arduino uyalariga joylashtiring.
4 -qadam: qayta sotish
Antenna kabelining SM5100B moduliga ulanishi odatda unchalik yaxshi emas. Ulanishni ta'minlash uchun kabelning har bir ulanishini modulga qayta joylashtiring.
5 -qadam: antennani ulang
Antennani antenna simiga ulang.
6 -qadam: SIM -kartani joylashtiring
SIM -kartani SIM karta uyasiga mahkam joylashtiring.
7 -qadam: ishga tushiring
Arduino -da quyidagi kodni ishga tushiring:
/*
SparkFun uyali qalqoni - namunaviy eskiz SparkFun Electronics, Rayan Ouens 3 tomonidan yozilgan/Tavsif: Ushbu eskiz Arduino Duemillanoveni SparkFun Electronics -dan uyali qalqonga ulash uchun yozilgan. Uyali ekranni bu erda sotib olish mumkin: https://www.sparkfun.com/commerce/product_info.php?products_id=9607 Ushbu eskizda ketma -ket buyruqlar terminal dasturidan SM5100B uyali moduliga uzatiladi; va uyali modulning javoblari terminalda joylashtirilgan. Qo'shimcha ma'lumotni eskiz izohlarida topishingiz mumkin. Qurilmadan foydalanish uchun kartadagi SIM karta ushlagichiga faollashtirilgan SIM -kartani qo'yish kerak! Bu eskizda Arduiniana shtatidan Mikal Xart yozgan NewSoftSerial kutubxonasidan foydalaniladi. Kutubxonani quyidagi manzilda yuklab olish mumkin: https://arduiniana.org/libraries/NewSoftSerial/ Bu kod Creative Commons Attribution litsenziyasi ostida berilgan. Qo'shimcha ma'lumotni bu erdan topishingiz mumkin: https://creativecommons.org/licenses/by/3.0/ (Bizning koddan erkin foydalaning! Iltimos, bizga kreditni o'z vaqtida berishni unutmang. Rahmat!) */#Include // NewSoftSerial -ni qo'shing kutubxona uyali modulga ketma -ket buyruqlar yuborish uchun. #include // string manipulyatsiyasi uchun ishlatiladi char incoming_char = 0; // Seriya portidan keladigan belgini ushlab turadi. SoftwareSerial hujayra (2, 3); // "Soxta" ketma -ket portni yarating. 2 -pin - Rx pin, 3 -pin - Tx -pin. void setup () {// Aloqa uchun ketma -ket portlarni ishga tushiring. Serial.begin (9600); hujayra.begin (9600); //Qani boshladik! Serial.println ("SM5100B aloqasini ishga tushirish …"); } void loop () {// Agar belgi uyali moduldan kirsa … if (cell.available ()> 0) {incoming_char = cell.read (); // Uyali ketma -ket portdan belgini oling. Serial.print (kiruvchi_char); // Kiruvchi belgini terminalga chop eting. } // Agar belgi terminaldan Arduinoga kelayotgan bo'lsa … if (Serial.available ()> 0) {incoming_char = Serial.read (); // Terminaldan keladigan belgini oling, agar (incoming_char == '~') // Agar u tilde bo'lsa… incoming_char = 0x0D; //… vagonga qaytishni boshqa holatga o'tkazing, agar (incoming_char == '^') // Agar bu yuqori karet bo'lsa… incoming_char = 0x1A; //… ga aylantirish ctrl-Z cell.print (incoming_char); // Belgini uyali modulga yuboring. Serial.print (kiruvchi_char); // Uni terminalga qaytaring}} / * AT buyruqlar to'plami uchun SM5100B Quck ma'lumotnomasi * Agar boshqacha ko'rsatilmagan bo'lsa, AT buyruqlari "enter" tugmachasi bilan tugatiladi. 1.) Mamlakatingiz uchun to'g'ri GSM -band tanlanganligiga ishonch hosil qiling. AQSh uchun tarmoqli 7 ga o'rnatilishi kerak. Tarmoqni o'rnatish uchun quyidagi buyruqni ishlating: AT+SBAND = 7 2.) Arduino -ni qalqon o'rnatilgan holda yoqgandan so'ng, modul SIM -kartani o'qishini va tanishini tekshiring. Terdu oynasi ochilib, Arduino portiga o'rnatilgan va 9600 buad, Arduino -ni yoqing. Ishga tushirish ketma -ketligi shunday bo'lishi kerak: SM5100B aloqasini ishga tushirish … +SIND: 1 +SIND: 10, "SM", 1, "FD", 1, "LD", 1, "MC", 1, "RC", 1, "ME", 1 Modul bilan aloqa birinchi qator ko'rsatilgandan keyin boshlanadi. Ikkinchi aloqa liniyasi, +SIND: 10, modul SIM -kartani ko'ra oladimi -yo'qligini aytadi. Agar SIM -karta aniqlansa, qolgan har bir maydon 1 bo'ladi; Agar SIM -karta aniqlanmasa, qolgan maydonlar 0. 3.) Buyruqlarni yuborishni boshlashdan oldin tarmoq ulanishini kuting. +SIND: 10 javobidan so'ng, modul avtomatik ravishda tarmoqqa ulanishni boshlaydi. Quyidagi javoblar kelguncha kuting: +SIND: 11 +SIND: 3 +SIND: 4 Uyali moduldan +SIND javobi modullarning holatini bildiradi. Javob ma'nolarining qisqacha ta'rifi: 0 SIM-karta o'chirildi 1 SIM-karta qo'yildi 2 Qo'ng'iroq ohanglari 3 AT moduli qisman tayyor 4 AT moduli to'liq tayyor favqulodda qo'ng'iroq uchun mavjud 8 Tarmoq yo'qolgan Ishni boshlash uchun bir nechta oddiy va foydali buyruqlar: Qo'ng'iroq qilish uchun: AT buyrug'i-ATDxxxyyyzzzz formatidagi telefon raqami: (xxx) yyy-zzz harakat qilib ko'ring ---- cell.print ("ATDxxxyyyzzzz"); Agar siz qo'ng'iroq qilsangiz, mikrofon va karnayni qalqonga ulash uchun qurilmalar ma'lumotlar jadvaliga murojaat qiling. Txt xabarini yuborish uchun: AT buyrug'i - AT+CMGF = 1 Bu buyruq matnli xabar rejimini "matn" ga o'rnatadi. AT buyrug'i = AT+CMGS = "xxxyyyzzzz" (vagonni qaytarish) 'Yuborish uchun matn' (CTRL+Z) Bu buyruqni tasvirlash biroz chalkash. Telefon raqami (xxx) yyy-zzzz formatida ikkita tirnoq ichiga kiradi. Iqtiboslarni yopgandan so'ng "Enter" tugmasini bosing. Keyin yuboriladigan matnni kiriting. CTRL+Z yuborish orqali AT buyrug'ini tugating. Bu belgini Arduino terminalidan yuborib bo'lmaydi. Hyperterminal, Tera Term, Bray Terminal yoki X-CTU kabi muqobil terminal dasturidan foydalaning. SM5100B moduli bundan ham ko'proq narsani qila oladi! Modul haqida ko'proq bilish uchun mahsulot sahifasidagi ma'lumotlar varaqlarini ko'rib chiqing.*/Terminalda ketma -ket portni oching. Mac -da, bu yozish orqali amalga oshiriladi: screen /dev/tty.usbmodemfa131 9600 (tty.usbmodemfa131 -ni Arduino -ning ketma -ket manzili bilan almashtiring) Quyidagi ketma -ketlik qaytishini kuting: SM5100B aloqasini ishga tushirish … +SIND: 3 +SIND: 4 +SIND: 11 (Agar bu ketma -ketlik qaytarilmasa, yuqoridagi kodning pastki qismidagi xato kodlarini tekshiring va mos ravishda disk raskadrovka qiling. Siz Shimoliy Amerikada foydalanish uchun modulni o'rnatishingiz kerak bo'lishi mumkin - tarmoqqa ro'yxatdan o'tishdan oldin. +SIND 11)) Quyidagi buyruqlarni ketma -ket portga yuboring: Buni Shimoliy Amerika foydalanish uchun yuboring: AT+SBAND = 7 Joriy vaqtni belgilang - yy/mm/gg: AT+CCLK = "13/05/15, 11: 02:00 "Test qo'ng'irog'ini yuborish: ATD4155551212
8 -qadam: matnli xabarlar
Arduino kutubxonasiga SerialGSM -ni yuklab oling va o'rnating.
Matnli xabar yuborish uchun Tronixstuff uyali moduli qo'llanmasiga tashrif buyuring va 26.3 misol kodidan foydalaning:
Agar siz matnni olish uchun misol kodini ishlatmoqchi bo'lsangiz, LEDni 8 -pinga ulang va uni 220 ohmli rezistorli erga ulang.
Matnli xabar yuborish uchun Tronixstuff uyali moduli qo'llanmasiga tashrif buyuring va 26.5 misol kodidan foydalaning:
Uyali modulga quyidagi buyruqlardan birini yuboring:
// LEDni #a1 ga yoqadi
// LEDni o'chirib qo'yadi #a0
9 -qadam: Ovoz
Topraklangan audio kabel yordamida mikrofon va karnayni ekranga ulang. Markaziy signal simlari audio plyus terminallariga, ekranlash esa ekranning tegishli salbiy terminallariga o'tishi kerak. Bu kabellar xuddi shunday mikrofon va karnay tomoniga ulangan bo'lishi kerak.
Ovozli qo'ng'iroqni boshlash uchun quyidagi kodni yuklang:
//**********************************************************************************
// QO'NG'IROQ QILISH // // //********************************************************************************** #include #define BUFFSIZ 90 //Set up buffer array char at_buffer[BUFFSIZ]; char buffidx; //Network state variables int network_registered; int network_AT_ready; //Code state variables int firstTimeInLoop = 1; int firstTimeInOtherLoop = 1; int x; //Will hold the incoming character from the Serial Port. char incoming_char=0; //Create a 'fake' serial port. Pin 2 is the Rx pin, pin 3 is the Tx pin. SoftwareSerial cell(2, 3); void setup() { //Initialize Arduino serial port for debugging. Serial.begin(9600); //Initialize virtual serial port to talk to Phone. cell.begin(9600); //Hello World. Serial.println("Starting SM5100B Communication…"); delay(1000); //Set initial network state network_registered = 0; network_AT_ready = 0; } //Read AT strings from the cellular shield void readATString(void) { char c; buffidx= 0; // start at begninning for (x = 0; x 0) { c=cell.read(); if (c == -1) { at_buffer[buffidx] = '\0'; return; } if (c == '\n') { continue; } if ((buffidx == BUFFSIZ - 1) || (c == '\r')){ at_buffer[buffidx] = '\0'; return; } at_buffer[buffidx++]= c; } } } //Process the AT strings void ProcessATString() { if(strstr(at_buffer, "+SIND: 8") != 0) { network_registered = 0; Serial.println("network Network Not Available"); } if(strstr(at_buffer, "+SIND: 11") != 0) { network_registered=1; Serial.println("network Registered"); } if(strstr(at_buffer, "+SIND: 4") != 0) { network_AT_ready=1; Serial.println("network AT Ready"); } } void loop() { /* If called for the first time, loop until network and AT is ready */ if(firstTimeInLoop == 1) { firstTimeInLoop = 0; while (network_registered == 0 || network_AT_ready == 0) { readATString(); ProcessATString(); } } //LET'S MAKE A PHONE CALL! if(firstTimeInOtherLoop == 1){ //Change the 10 digit phone number to whatever you wish cell.println("ATD4155551212"); firstTimeInOtherLoop = 0; } }
To receive a voice call upload the following code
//**********************************************************************************
// ANSWER A CALL // // BUFFERING CODE BASED UPON: // // // ******************************************** ********************************** #include #define BUFFSIZ 90 // Bufer massivini char at_buffer sozlang [BUFFSIZ]; char buffidx; // tarmoq holati o'zgaruvchilari int network_registered; int network_AT_ready; // kod holati o'zgaruvchilari int firstTimeInLoop = 1; int firstTimeInOtherLoop = 1; int x; // Seriya portidan keladigan belgini ushlab turadi. char incoming_char = 0; // "Soxta" ketma -ket portni yarating. 2 -pin - Rx pin, 3 -pin - Tx -pin. SoftwareSerial hujayra (2, 3); void setup () {// Arduino ketma -ket portini disk raskadrovka uchun ishga tushiring. Serial.begin (9600); // Telefon bilan gaplashish uchun virtual ketma -ket portni ishga tushiring. hujayra.begin (9600); //Salom Dunyo. Serial.println ("SM5100B aloqasini ishga tushirish …"); kechikish (1000); // Dastlabki tarmoq holatini o'rnating network_registered = 0; network_AT_ready = 0; } // AT satrlarini uyali qalqondan o'qing void readATString (void) {char c; buffidx = 0; // (x = 0; x 0) {c = cell.read () uchun boshidan boshlang; agar (c == -1) {at_buffer [buffidx] = '\ 0'; qaytish; } agar (c == '\ n') {davom ettirish; } if ((buffidx == BUFFSIZ - 1) || (c == '\ r')) {at_buffer [buffidx] = '\ 0'; qaytish; } at_buffer [buffidx ++] = c; }}} // AT strings void ProcessATString () {ishlov berish (strstr (at_buffer, "+SIND: 8")! = 0) {network_registered = 0; Serial.println ("tarmoq tarmog'i mavjud emas"); } if (strstr (at_buffer, "+SIND: 11")! = 0) {network_registered = 1; Serial.println ("tarmoq ro'yxatdan o'tgan"); } if (strstr (at_buffer, "+SIND: 4")! = 0) {network_AT_ready = 1; Serial.println ("tarmoq AT tayyor"); }} void loop () { / * Agar birinchi marta chaqirilsa, tarmoq va AT tayyor bo'lguncha aylantiring * / if (firstTimeInLoop == 1) {firstTimeInLoop = 0; while (network_registered == 0 || network_AT_ready == 0) {readATString (); ProcessATString (); }} if (firstTimeInOtherLoop == 1) {// kiruvchi qo'ng'iroqni qidiring if (strstr (at_buffer, "+CPAS: 3")! = 0) {// Telefonga javob bering cell.println ("ATA"); firstTimeInOtherLoop = 0; }}}
Siz buni foydali, qiziqarli yoki ko'ngilochar deb topdingizmi? Mening so'nggi loyihalarimni ko'rish uchun @madeineuphoria -ni kuzatib boring.
Tavsiya:
Arduino bilan HMC5883L kompas sensori interfeysi bo'yicha qo'llanma: 10 qadam (rasmlar bilan)
Arduino bilan HMC5883L kompas sensori interfeysi bo'yicha qo'llanma: Tavsif HMC5883L-bu ikkita umumiy maqsadda ishlatiladigan 3 o'qli raqamli kompas: ferromagnit kabi magnit materialning magnitlanishini o'lchash, yoki kuchini va ba'zi hollarda yo'nalishni o'lchash uchun. nuqtadagi magnit maydon
Arduino L293D dvigatel haydovchisi qalqoni bo'yicha qo'llanma: 8 qadam
Arduino L293D dvigatel haydovchisi qalqoni bo'yicha qo'llanma: Siz bu va boshqa ko'plab ajoyib darslarni ElectroPeak rasmiy veb -saytida o'qishingiz mumkin. Umumiy sharh Ushbu qo'llanmada siz Arduino L293D dvigatel haydovchisi qalqoni yordamida DC, step va servo dvigatellarni boshqarishni o'rganasiz.
Arduino RFID qulflash bo'yicha qo'llanma: 6 qadam (rasmlar bilan)
Arduino RFID qulflash bo'yicha qo'llanma: Aziz do'stlar, boshqa ko'rsatmaga xush kelibsiz. Bu Educ8s.tv kanalidan Nik va bugun biz oddiy qulflash tizimini yaratish uchun ushbu RFID o'quvchisini Arduino bilan qanday ishlatishni o'rganamiz. Biz birinchi marta Arduino bilan RFID teglaridan foydalanmoqchimiz
Arduino UNO bilan RGB Led WS2812B interfeysi bo'yicha qo'llanma: 7 qadam (rasmlar bilan)
Arduino UNO bilan RGB Led WS2812B interfeysi bo'yicha qo'llanma: Bu qo'llanma sizga Arduino UNO bilan Sparkfun RGB Led WS2812B dan foydalanishning ba'zi asoslarini o'rgatadi
Arduino UNO bilan 0.91 dyuymli 128x32 OLED interfeysi bo'yicha qo'llanma: 7 qadam (rasmlar bilan)
Arduino UNO bilan OLED 0.91inch 128x32 interfeysi bo'yicha qo'llanma: Bu qo'llanma sizga Arduino UNO bilan 0.91 dyuymli LCD128x32 OLEDdan foydalanish bo'yicha ba'zi asoslarni o'rgatadi