Სარჩევი:
- ნაბიჯი 1: გადადით ნივთების მისაღებად
- ნაბიჯი 2: Solder Headers
- ნაბიჯი 3: ჩადეთ
- ნაბიჯი 4: ხელახლა გამყიდველი
- ნაბიჯი 5: მიამაგრეთ ანტენა
- ნაბიჯი 6: ჩადეთ SIM ბარათი
- ნაბიჯი 7: ინიციალიზაცია
- ნაბიჯი 8: ტექსტური შეტყობინებები
- ნაბიჯი 9: ხმა
ვიდეო: Arduino ფიჭური ფარის გაკვეთილი: 9 ნაბიჯი (სურათებით)
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:16
Arduino ფიჭური ფარი საშუალებას გაძლევთ განახორციელოთ სატელეფონო ზარები და გაგზავნოთ ტექსტური შეტყობინებები. ამ ფარის ტვინი არის SM5100B, რომელიც არის ძლიერი ფიჭური მოდული, რომელსაც შეუძლია შეასრულოს სტანდარტული მობილური ტელეფონების მრავალი ამოცანა. ეს ფარი მოითხოვს SIM ბარათის გამოყენებას ფიჭურ ქსელთან დასაკავშირებლად. გაკვეთილი, რომელიც მოყვება არის შიშველი ძვლების გაკვეთილი ფარის ინიციალიზაციისთვის, როგორც ტექსტური შეტყობინებების გაგზავნისა და მიღების, ასევე სატელეფონო ზარებისათვის. მოდულის ფუნქციონირების შესახებ მეტის გასაგებად, დარწმუნდით, რომ გადახედეთ Sparkfun– ის პროდუქტის გვერდზე არსებულ მონაცემთა ფურცლებს.
ნაბიჯი 1: გადადით ნივთების მისაღებად
თქვენ დაგჭირდებათ:
(x1) ფიჭური ფარი (x1) დასადგმელი Arduino სათაურები (x1) ოთხფენიანი ანტენა (x1) Arduino Uno
(გაითვალისწინეთ, რომ ამ გვერდის ზოგიერთი ბმული არის შვილობილი ბმულები. ეს არ ცვლის საქონლის ღირებულებას თქვენთვის. მე ვაინვესტირებ შემოსავალს, რასაც მივიღებ ახალი პროექტების განხორციელებაში. თუ გსურთ რაიმე შემოთავაზება ალტერნატიული მომწოდებლებისთვის, გთხოვთ ნება მომეცით ვიცით.)
ნაბიჯი 2: Solder Headers
ჩადეთ სათაურები ფარში და მიამაგრეთ ისინი ადგილზე.
ნაბიჯი 3: ჩადეთ
ჩასვით სათაურის ქინძისთავები არდუინოს სოკეტებში.
ნაბიჯი 4: ხელახლა გამყიდველი
ანტენის კაბელის კავშირი SM5100B მოდულთან, როგორც წესი, არ არის კარგი. ხელახლა შეაერთეთ კაბელის თითოეული კავშირი მოდულთან, რათა უზრუნველყოს კავშირი.
ნაბიჯი 5: მიამაგრეთ ანტენა
მიამაგრეთ ანტენა ანტენის კაბელზე.
ნაბიჯი 6: ჩადეთ SIM ბარათი
ჩადეთ SIM ბარათი უსაფრთხოდ SIM ბარათის სოკეტში.
ნაბიჯი 7: ინიციალიზაცია
გაუშვით შემდეგი კოდი Arduino– ზე:
/*
SparkFun Cellular Shield - Pass -Through Sample Sketch SparkFun Electronics Written by Ryan Owens 3/აღწერა: ეს ესკიზი დაწერილია Arduino Duemillanove– ს Cellular Shield– თან SparkFun Electronics– ის დასაკავშირებლად. ფიჭური ფარის შეძენა შესაძლებელია აქ: https://www.sparkfun.com/commerce/product_info.php?products_id=9607 ამ ესკიზის სერიული ბრძანებები ტერმინალური პროგრამიდან გადადის SM5100B ფიჭურ მოდულში; და ფიჭური მოდულის პასუხები განთავსებულია ტერმინალში. მეტი ინფორმაცია ნაპოვნია ესკიზის კომენტარებში. გააქტიურებული SIM ბარათი უნდა იყოს ჩასმული SIM ბარათის მფლობელში დაფაზე, რათა გამოიყენოთ მოწყობილობა! ესკიზი იყენებს NewSoftSerial ბიბლიოთეკას, რომელიც მიქალ ჰარტმა არდუინიანამ დაწერა. ბიბლიოთეკის ჩამოტვირთვა შესაძლებელია ამ URL– ზე: https://arduiniana.org/libraries/NewSoftSerial/ ეს კოდი მოცემულია Creative Commons Attribution ლიცენზიით. დამატებითი ინფორმაცია შეგიძლიათ იხილოთ აქ: https://creativecommons.org/licenses/by/3.0/ (გამოიყენეთ ჩვენი კოდი თავისუფლად! გთხოვთ, გვახსოვდეს, რომ მოგვცეს კრედიტი საჭიროებისამებრ. მადლობა!) */ #მოიცავს // ჩართეთ NewSoftSerial ბიბლიოთეკა, რათა გააგზავნოს სერიული ბრძანებები ფიჭური მოდულისთვის. #მოიცავს // გამოიყენება სიმებიანი მანიპულაციებისთვის char incoming_char = 0; // დაიცავს სერიული პორტიდან შემომავალ პერსონაჟს. პროგრამული უზრუნველყოფა სერიული უჯრედი (2, 3); // შექმენით "ყალბი" სერიული პორტი. Pin 2 არის Rx pin, pin 3 არის Tx pin. void setup () {// სერიული პორტების ინიციალიზაცია კომუნიკაციისთვის. სერიული.დაწყება (9600); უჯრედი.დაწყება (9600); //Დავიწყოთ! Serial.println ("SM5100B კომუნიკაციის დაწყება …"); } void loop () {// თუ სიმბოლო შემოდის ფიჭური მოდულიდან … if (cell.available ()> 0) {incoming_char = cell.read (); // მიიღეთ სიმბოლო ფიჭური სერიული პორტიდან. Serial.print (შემომავალი_ჩართი); // დაბეჭდეთ შემომავალი სიმბოლო ტერმინალში. } // თუ სიმბოლო მოდის ტერმინალიდან არდუინოში … if (Serial.available ()> 0) {incoming_char = Serial.read (); // მიიღეთ ტერმინალიდან მომდინარე ხასიათი if (incoming_char == '~') // თუ ეს არის ტილდა… incoming_char = 0x0D; //… გადაიყვანეთ ვაგონში დაბრუნება სხვა შემთხვევაში //… გადაიყვანე ctrl-Z უჯრედში. ბეჭდვა (შემომავალი_ჩარი); // პერსონაჟის გაგზავნა ფიჭურ მოდულში. Serial.print (შემომავალი_ჩართი); // გაიმეორეთ იგი ტერმინალში}} / * SM5100B Quck მითითება AT ბრძანების კომპლექტისთვის * თუ სხვაგვარად არ არის მითითებული AT ბრძანებები მთავრდება "შესვლის" ღილაკზე დაჭერით. 1.) დარწმუნდით, რომ თქვენი ქვეყნისთვის შერჩეულია შესაბამისი GSM ჯგუფი. აშშ – სთვის ბენდი უნდა იყოს მითითებული 7. ბენდის დასაყენებლად გამოიყენეთ ეს ბრძანება: AT+SBAND = 7 2.) Arduino– ს დაყენებული ფარის შემდეგ, დარწმუნდით, რომ მოდული კითხულობს და აღიარებს SIM ბარათს. ტერმინალური ფანჯრით გახსნილი და არდუინოს პორტზე და 9600 ბუდი, ჩართეთ არდუინო. დაწყების თანმიმდევრობა ასე უნდა გამოიყურებოდეს: SM5100B კომუნიკაციის დაწყება … +SIND: 1 +SIND: 10, "SM", 1, "FD", 1, "LD", 1, "MC", 1, "RC", 1, "ME", 1 მოდულთან ურთიერთობა იწყება პირველი სტრიქონის ჩვენების შემდეგ. კომუნიკაციის მეორე ხაზი, +SIND: 10, გვეუბნება, შეუძლია თუ არა მოდულს SIM ბარათის დანახვა. თუ SIM ბარათი გამოვლენილია, ყველა სხვა ველი არის 1; თუ SIM ბარათი არ არის გამოვლენილი ყველა სხვა ველი არის 0. 3.) დაელოდეთ ქსელურ კავშირს სანამ დაიწყებთ ბრძანებების გაგზავნას. +SIND: 10 პასუხის შემდეგ მოდული ავტომატურად დაიწყებს ქსელთან დაკავშირების მცდელობას. დაელოდეთ სანამ მიიღებთ შემდეგ რეპონენტებს: +SIND: 11 +SIND: 3 +SIND: 4 ფიჭური მოდულის +SIND პასუხი გვეუბნება მოდულის სტატუსს. აქ მოცემულია პასუხის მნიშვნელობების სწრაფი შემცირება: 0 SIM ბარათი ამოღებულია 1 SIM ბარათი ჩასმულია 2 ზარის მელოდია 3 AT მოდული ნაწილობრივ მზადაა 4 AT მოდული სრულიად მზად არის 5 გამოშვებული ზარების ID 6 გამოშვებული ზარი რომლის ID = 7 ქსელის სერვისი არის ხელმისაწვდომია გადაუდებელი ზარისთვის 8 ქსელი დაკარგულია 9 აუდიო ON 10 აჩვენეთ თითოეული სატელეფონო წიგნის სტატუსი საწყისი ფრაზის შემდეგ 11 რეგისტრირებული ქსელში ქსელში დარეგისტრირების შემდეგ შეგიძლიათ დაიწყოთ ურთიერთქმედება. აქ არის რამოდენიმე მარტივი და სასარგებლო ბრძანება დასაწყებად: ზარის განხორციელება: AT ბრძანება-ATDxxxyyyzzzz ტელეფონის ნომერი ფორმატით: (xxx) yyy-zzz try ---- cell.print ("ATDxxxyyyzzzz"); სატელეფონო ზარის განხორციელებისას დარწმუნდით, რომ მიუთითეთ მოწყობილობის მონაცემთა ფურცელი მიკროფონისა და დინამიკის ფარის დასაკავშირებლად. Txt შეტყობინების გასაგზავნად: AT ბრძანება - AT+CMGF = 1 ეს ბრძანება ადგენს ტექსტური შეტყობინების რეჟიმს "ტექსტზე". AT ბრძანება = AT+CMGS = "xxxyyyzzzz" (ვაგონის დაბრუნება) "ტექსტი გასაგზავნად" (CTRL+Z) ეს ბრძანება აღწერილობაში ოდნავ დამაბნეველია. ტელეფონის ნომერი, ფორმატში (xxx) yyy-zzzz შედის ორმაგი ციტატების შიგნით. დააჭირეთ "enter" ციტატების დახურვის შემდეგ. შემდეგ შეიყვანეთ გასაგზავნი ტექსტი. დაასრულეთ AT ბრძანება CTRL+Z გაგზავნით. ამ პერსონაჟის გაგზავნა არდუინოს ტერმინალიდან შეუძლებელია. გამოიყენეთ ალტერნატიული ტერმინალური პროგრამა, როგორიცაა Hyperterminal, Tera Term, Bray Terminal ან X-CTU. SM5100B მოდულს ამაზე ბევრად მეტი შეუძლია! დაათვალიერეთ პროდუქტის გვერდზე მოცემული მონაცემთა ფურცლები, რომ გაიგოთ მეტი მოდულის შესახებ.*/გახსენით სერიული პორტი ტერმინალში. Mac– ზე ეს კეთდება აკრეფით: screen /dev/tty.usbmodemfa131 9600 (შეცვალეთ tty.usbmodemfa131 თქვენი Arduino– ს სერიული მისამართით) დაელოდეთ შემდეგი თანმიმდევრობის დაბრუნებას: SM5100B კომუნიკაციის დაწყება… +SIND: 3 +SIND: 4 +SIND: 11 (თუ ეს თანმიმდევრობა არ დაბრუნდება, შეამოწმეთ ზემოთ მოყვანილი კოდის ბოლოში ჩამოთვლილი შეცდომის კოდები და სწორად გაასწორეთ. შეიძლება დაგჭირდეთ მოდულის დაყენება ჩრდილოეთ ამერიკის გამოყენებისთვის - იხ. ქვემოთ - სანამ ის დარეგისტრირდება ქსელში (მაგ. +SIND 11)) გააგზავნეთ შემდეგი ბრძანებები სერიულ პორტში: გაგზავნეთ ეს ჩრდილოეთ ამერიკის გამოყენებისთვის: AT+SBAND = 7 დააყენეთ მიმდინარე დრო - წ/მმ/დღე: AT+CCLK = "13/05/15, 11: 02:00 "გაგზავნეთ სატესტო ზარი: ATD4155551212
ნაბიჯი 8: ტექსტური შეტყობინებები
ჩამოტვირთეთ და დააინსტალირეთ SerialGSM თქვენს Arduino ბიბლიოთეკაში.
ტექსტური შეტყობინების გასაგზავნად ეწვიეთ Tronixstuff ფიჭური მოდულის სახელმძღვანელოს და გამოიყენეთ მაგალითი კოდი 26.3:
თუ გსურთ გაუშვათ კოდის მაგალითი ტექსტის მისაღებად, დაუკავშირეთ LED პინ 8 -ს და მიამაგრეთ იგი სერიაში 220 ოჰმეტიანი რეზისტორით მიწასთან.
ტექსტური შეტყობინების გასაგზავნად ეწვიეთ Tronixstuff ფიჭური მოდულის სახელმძღვანელოს და გამოიყენეთ მაგალითი კოდი 26.5:
გაგზავნეთ ერთ -ერთი შემდეგი ბრძანება თქვენს მობილურ მოდულში:
// ჩართავს შუქს #a1
// გამორთავს LED- ს #a0
ნაბიჯი 9: ხმა
შეაერთეთ მიკროფონი და სპიკერი ფარს დამიწებული აუდიო კაბელის გამოყენებით. ცენტრალური სიგნალის მავთული უნდა წავიდეს აუდიო პლუს ტერმინალებზე და დამცავი უნდა გადავიდეს ფარზე შესაბამის უარყოფით ტერმინალებზე. ეს კაბელები ანალოგიურად უნდა იყოს დაკავშირებული მიკროფონისა და დინამიკის მხარეს.
ხმოვანი ზარის დასაწყებად ატვირთეთ შემდეგი კოდი:
//**********************************************************************************
// დარეკეთ // // ბუფერული კოდი დაფუძნებულია შემდეგზე: // // //********************************************************************************** #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: // // // ****************************************** ********************************** #მოიცავს #განსაზღვრეთ BUFFSIZ 90 // დააყენეთ ბუფერული მასივის char at_buffer [BUFFSIZ]; char buffidx; // ქსელის მდგომარეობის ცვლადები int network_registered; int network_AT_ უკვე; // კოდის მდგომარეობის ცვლადები int firstTimeInLoop = 1; int firstTimeInOtherLoop = 1; int x; // დაიცავს სერიული პორტიდან შემომავალ პერსონაჟს. char შემომავალი_ჩარი = 0; // შექმენით "ყალბი" სერიული პორტი. Pin 2 არის Rx pin, pin 3 არის Tx pin. პროგრამული უზრუნველყოფა სერიული უჯრედი (2, 3); void setup () {// Arduino სერიული პორტის ინიციალიზაცია გამართვისთვის. სერიული.დაწყება (9600); // ტელეფონთან სასაუბროდ ვირტუალური სერიული პორტის ინიციალიზაცია. უჯრედი.დაწყება (9600); //Გამარჯობა მსოფლიო. Serial.println ("SM5100B კომუნიკაციის დაწყება …"); დაგვიანება (1000); // საწყისი ქსელის მდგომარეობის დაყენება network_registered = 0; network_AT_ready = 0; } // წაიკითხეთ AT სტრიქონები ფიჭური ფარიდან void readATString (void) {char c; buffidx = 0; // დაწყებისთანავე (x = 0; x 0) {c = cell.read (); if (c == -1) {at_buffer [buffidx] = '\ 0'; დაბრუნების; } if (c == '\ n') {გაგრძელება; } if ((buffidx == BUFFSIZ - 1) || (c == '\ r')) {at_buffer [buffidx] = '\ 0'; დაბრუნების; } at_buffer [buffidx ++] = c; }}} // AT სტრიქონების დამუშავება ბათილია ProcessATString () {if (strstr (at_buffer, "+SIND: 8")! = 0) {network_registered = 0; Serial.println ("ქსელის ქსელი მიუწვდომელია"); } if (strstr (at_buffer, "+SIND: 11")! = 0) {network_registered = 1; Serial.println ("რეგისტრირებული ქსელი"); } if (strstr (at_buffer, "+SIND: 4")! = 0) {network_AT_ready = 1; Serial.println ("ქსელი AT Ready"); }} void loop () { / * თუ გამოიძახეთ პირველად, შეაცილეთ სანამ ქსელი და AT არ იქნება მზად * / if (firstTimeInLoop == 1) {firstTimeInLoop = 0; ხოლო (network_registered == 0 || network_AT_ready == 0) {readATString (); ProcessATString (); }} if (firstTimeInOtherLoop == 1) {// მოძებნეთ შემომავალი ზარი if (strstr (at_buffer, "+CPAS: 3")! = 0) {// უპასუხეთ ტელეფონის უჯრედს.პრინტლნ ("ATA"); firstTimeInOtherLoop = 0; }}}
თქვენთვის ეს სასარგებლო, სახალისო ან გასართობი აღმოჩნდა? მიყევით @madeineuphoria- ს, რომ ნახოთ ჩემი უახლესი პროექტები.
გირჩევთ:
WiFi RGB ფიჭური ნათურა ESP8266 გამოყენებით: 6 ნაბიჯი
WiFi RGB ფიჭური ნათურა ESP8266– ის გამოყენებით: ამ პოსტში ჩვენ ვაშენებთ მშვენიერ RGB ფიჭურ ნათურას, რომლის კონტროლიც შესაძლებელია WiFi– ით. საკონტროლო გვერდი შედგება ფერადი ბორბლისგან, რომელიც საშუალებას გაძლევთ სწრაფად შეცვალოთ ფერები და ასევე შეგიძლიათ პირდაპირ მიუთითოთ RGB მნიშვნელობები, რომ შექმნათ სულ მეტი
Digi XBee3 ფიჭური SMS აქტივობა ბოტი: 7 ნაბიჯი
Digi XBee3 ფიჭური SMS ActivityBot: Digi XBee3 ™ ფიჭური SMS ActivityBot არის საგანმანათლებლო რობოტი, რომლის კონტროლი შესაძლებელია ნებისმიერი მობილური ტელეფონის ტექსტური შეტყობინებით, მსოფლიოს ნებისმიერ წერტილში. ActivityBot, დიგის მეგობრების მიერ Parallax Inc. განკუთვნილია პირველად რობოტ-მშენებლებისთვის
1602 LCD კლავიატურის ფარის გამოყენებით W/ Arduino [+პრაქტიკული პროექტები]: 7 ნაბიჯი
1602 LCD კლავიატურის ფარის გამოყენებით W/ Arduino [+პრაქტიკული პროექტები]: შეგიძლიათ წაიკითხოთ ეს და სხვა საოცარი გაკვეთილები ElectroPeak– ის ოფიციალურ ვებ – გვერდზე მიმოხილვა ამ სახელმძღვანელოში თქვენ ისწავლით თუ როგორ გამოიყენოთ Arduino LCD კლავიატურის ფარი 3 პრაქტიკული პროექტით. რას ისწავლით: როგორ შევქმნათ ფარი და გამოვყოთ გასაღებები
Countdown ტაიმერი GLCD ფარის გამოყენებით: 8 ნაბიჯი (სურათებით)
Countdown ტაიმერი GLCD Shield– ის გამოყენებით: ამ პროექტში მე ვხატავ countdown ტაიმერს 1 ფარის GLCD ფარზე, ამ პროექტის მომხმარებელს შეუძლია განსაზღვროს ტაიმერის ხანგრძლივობა GLCD– ზე დახატული ღილაკის გამოყენებით, როდესაც ტაიმერი 0 – ს მიაღწევს, იქნება ხმაურის ხმა და ვიბრაცია
IOT ფიჭური ქსელით ESP32– ით: 23 ნაბიჯი
IOT ფიჭური ქსელით ESP32– ით: დღეს ჩვენ განვიხილავთ GPRS მოდემს, უფრო სწორად, ESP32 და მის გამოყენებას ფიჭური ტელეფონის ქსელთან დაკავშირებით. ეს არის ის, რაც ძალიან კარგად მუშაობს. MQTT პროტოკოლის გამოყენებით, ჩვენ შემდეგ მონაცემებს გავაგზავნით Ubidots– ის საინფორმაციო დაფაზე. გამოიყენეთ ამ ასამბლეაში