Форум программистов, компьютерный форум, киберфорум
Arduino
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.79/19: Рейтинг темы: голосов - 19, средняя оценка - 4.79
0 / 0 / 1
Регистрация: 22.03.2014
Сообщений: 151

Оборвать вызов Arduino Duemillanove + SIM900

08.02.2015, 16:25. Показов 4038. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите каким образом можно оборвать соединение во время дозвона, если абонент не берет трубку в течение 15 секунд?

C++
1
2
3
4
if (vcs.voiceCall(charbuffer))
        {      
          while(vcs.getvoiceCallStatus()==CALLING) {Serial.println("CCCC");};  
        }
Во время гудка я так полагаю должны отправляться символы в ком порт. Но они не отправляются. Из этого я делаю вывод что функция блокирующая.
Как я понял метод voiceCall блокирующий. То есть пока он выполняется программа как бы останавливается и ждет пока снимется трубка на другом конце. Как быть? Нашел ещё внешние прерывания, но это не подходит. Спасибо.
P.S. Использую Arduino Duemillanove + Sim900 модем.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.02.2015, 16:25
Ответы с готовыми решениями:

Arduino SIM900 передача данных
Здравствуйте. Есть Mega 2560, SIM900, сервер, принимающий get-запросы, но до него еще далеко. Не понимаю как реализовать передачу...

ARDUINO UNO + SIM900 SHILD
Вопрос знатокам. возможно ли на GSM модуле включить несущую? (не звонок делать, а просто синус на заданной частоте?)...

ARDUINO + GSM SIM900 (лекбес)
ARDUINO + GSM SIM900 (лекбес) Короче скока не спрашивал на форумах так и не получил ответа, видать мало кто в теме и вот решил поделится,...

26
0 / 0 / 1
Регистрация: 22.03.2014
Сообщений: 151
10.02.2015, 23:28  [ТС]
Студворк — интернет-сервис помощи студентам
raxp, Я могу только дома попробовать вечером(. А можете мне сказать почему не работает мой вариант? Я просто хочу понять в чем ошибка. Основной цикл у меня при вызове (vcs.voiceCall(charbuffer)) по идее останавливается и ждет пока не отработает функция voiceCall. В это время в таймере у меня набирается время. Когда время набирает 10секунд в таймере вешается трубка. По идее у меня в основном цикле voiceCall должна вернуть единицу и основной цикл должен закрутиться дальше. Почему этого не происходит?

Добавлено через 10 часов 9 минут
Сделал так. Пока без проверки 10 секунд. Не Делает вызов почему-то...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
/*
 Make Voice Call
 
 This sketch, for the Arduino GSM shield, puts a voice call to
 a remote phone number that you enter through the serial monitor.
 To make it work, open the serial monitor, and when you see the
 READY message, type a phone number. Make sure the serial monitor
 is set to send a just newline when you press return.
 
 Circuit:
 * GSM shield
 * Voice circuit.
 With no voice circuit the call will send nor receive any sound
 
 
 created Mar 2012
 by Javier Zorzano
 
 This example is in the public domain.
 */
// libraries
#include <GSM.h>
#include "TimerOne.h"
// PIN Number
#define PINNUMBER ""
 
// initialize the library instance
GSM gsmAccess; // include a 'true' parameter for debug enabled
GSMVoiceCall vcs;
 
String remoteNumber = "";  // the number you will call
char charbuffer[20];
long tmp_time = millis();
int flag = 0;
void setup()
{
  
  Timer1.initialize(500000);         // initialize timer1, and set a 1/2 second period
  Timer1.attachInterrupt(callback);  // attaches callback() as a timer overflow interrupt
 
  // initialize serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
 
  Serial.println("Make Voice Call");
 
  // connection state
  boolean notConnected = true;
 
  // Start GSM shield
  // If your SIM has PIN, pass it as a parameter of begin() in quotes
  while (notConnected)
  {
    if (gsmAccess.begin(PINNUMBER) == GSM_READY)
      notConnected = false;
    else
    {
      Serial.println("Not connected");
      delay(1000);
    }
  }
 
  Serial.println("GSM initialized.");
  Serial.println("Enter phone number to call.");
 
}
 
void loop()
{
  
  //сбрасываем входящий
  if (vcs.getvoiceCallStatus()==IDLE_CALL ) {vcs.hangCall();}
   
  // add any incoming characters to the String:
  while (Serial.available() > 0)
  {
    char inChar = Serial.read();
    // if it's a newline, that means you should make the call:
    if (inChar == '\n')
    {
      // make sure the phone number is not too long:
      if (remoteNumber.length() < 20)
      {
        // let the user know you're calling:
        Serial.print("Calling to : ");
        Serial.println(remoteNumber);
        Serial.println();
 
        // Call the remote number
        remoteNumber.toCharArray(charbuffer, 20);
        tmp_time = millis();       
        flag=1;       
      }
      else
      {
        Serial.println("That's too long for a phone number. I'm forgetting it");
        remoteNumber = "";
      }
    }
    else
    {
      // add the latest character to the message to send:
      if (inChar != '\r')
        remoteNumber += inChar;
    }
  }
}
 
void callback()
{
  if  (flag==1)
{
flag=0;
        // Если соединились
        if (vcs.voiceCall(charbuffer))
        {
          // Сбросили
        vcs.hangCall();
        Serial.println("Call Finished");
        remoteNumber = "";
        Serial.println("Enter phone number to call.");
        }
}
}
0
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
10.02.2015, 23:32
Code
1
2
3
4
5
// Если соединились
        if (vcs.voiceCall(charbuffer))
        {
          // Сбросили
        vcs.hangCall();
в чем смысл?
0
0 / 0 / 1
Регистрация: 22.03.2014
Сообщений: 151
10.02.2015, 23:34  [ТС]
raxp, Если взяли трубку то сбросить звонок. Звучит смешно, но в этом есть смысл.
0
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
10.02.2015, 23:59
Не, в этом помогать я вам не намерен. Это низко так с людьми обращаться.
0
0 / 0 / 1
Регистрация: 22.03.2014
Сообщений: 151
11.02.2015, 00:07  [ТС]
Спасибо на том что помогли. Этот звонок будет делаться самому себе.

Добавлено через 1 минуту
Если бы это делалось с целью кого-то достать, то я бы взял телефон и позвонил человеку 50 раз) Ну я в этом смысла не вижу.
0
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
11.02.2015, 07:40
Да, да, особенно себе и 50 раз. Расскажите.
0
0 / 0 / 1
Регистрация: 22.03.2014
Сообщений: 151
10.04.2015, 13:09  [ТС]
raxp, если я напишу Вам в личку истиную цель проекта, и она не будет связана с плохими делами, попробуете мне подсказать почему не работает мой код?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.04.2015, 13:09
Помогаю со студенческими работами здесь

ARDUINO R3 + SIM900 = web client
Вот на таком железе (так нужно, ибо уже приобретено) ...

Arduino + модуль Sim900, попытка записи файла
Здравствуйте. Нашел в сети скетч позволяющий записывать данные с микрофона через плату SIM900 , мне не удаетя загрузить его в ардуино,...

Питание Arduino GSM Shield SIM900 – непонятки.
Шилд вот такой https://ru.otyexpress.som/item/SIM900-G ... 0.0.d84tBj Проблемка такая. При питании через штатный разъём на плате от блока...

Как подключить Arduino Uno и SIM900 GSM Shield
Хочу подключить SIM900 GSM Shield к Arduino Uno. Пробую обычные AT-команды, но нету никакого результата. Помимо SIM900 GSM Shield...

Некорректная отправка СМС через SIM900 в связке с Arduino UNO R3
При включении из EEPROM считываются данные и отправляются по СМС #include &lt;EEPROM.h&gt; #include &lt;GPRS_Shield_Arduino.h&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru