Моя конечная цель - попытаться отправить некоторые простые данные, хранящиеся на моем Raspberry pi 3, на внешний сервер / веб-сайт, используя sim800c из программы на c ++.Я считаю, что самый простой способ сделать это - выдать «AT команды» на сим / модем, но я изо всех сил пытаюсь это сделать.Я не могу понять, как я на самом деле должен выдавать AT-команды или как я могу проверить, работают ли они.В целях тестирования я написал некоторый код, который должен отправлять текстовое сообщение на номер телефона после того, как я это заработал, должно быть довольно просто выяснить AT-команды для связи с сервером.
Ниже приведено изображение того, как я все устроил, и я уверен, что это правильно.
https://i.imgur.com/zysmNXE.jpg
Ниже приведен базовый код на C ++, который я написал с использованием различных руководств., он компилируется и запускается в терминале, однако я не получаю никакого ответа от AT-команд и, что более важно, насколько я могу сказать, что они на самом деле не выполняются.Я пытался изменить поддельный номер на свой персональный, но это не имело значения.
#include <stdio.h>
#include <string.h>
#include <wiringPi.h>
#include <wiringSerial.h>
int main ()
{
int connection;
printf("Opening connection \n");
connection = serialOpen("/dev/ttyAMA0", 9600);
delay(1000);
printf("Connection: %d\n", connection);
printf("\n");
//Set gsm to text mode
serialPuts(connection,"AT+CMGF \r\n");
delay(1000);
//Number that the message should be sent to
serialPuts(connection,"AT+CMGS=\"12345678900\"\r\n");
delay(1000);
//The message
serialPuts(connection,"Hello World");
delay(1000);
//Print ctrl+x
serialPuts(connection,"\x1A");
delay(1000);
printf("Done \n");
return 0 ;
}
Насколько я могу судить, есть 3 вероятные причины, по которым он не работает;
- Возможная проблема конфигурации / настроек с pi
- Я неправильно его подключил
- Сим / модуль не работает
Я просто не уверен, как пройти тестирование / найти причину проблемы.Если бы я мог заставить свой код выводить ответ AT-команд после выполнения «serialPuts», это могло бы помочь мне выяснить, что происходит, но я не особо удачлив в этом.Альтернативно, если у кого-то есть идея, почему команды не работают, или можете предоставить мне несколько способов их отладки / тестирования, это было бы замечательно.