Как общаться с sim800c с помощью Raspberry pi 3 на С ++ - PullRequest
0 голосов
/ 18 февраля 2019

Моя конечная цель - попытаться отправить некоторые простые данные, хранящиеся на моем 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», это могло бы помочь мне выяснить, что происходит, но я не особо удачлив в этом.Альтернативно, если у кого-то есть идея, почему команды не работают, или можете предоставить мне несколько способов их отладки / тестирования, это было бы замечательно.

1 Ответ

0 голосов
/ 07 марта 2019

Проблема оказалась просто простой ошибкой при подключении.

Я подключил вывод txd модуля sim к выводу txd на малиновом пироге, так как у меня сложилось впечатление, что вам просто нужно соответствоватьоднако, я не думал / не понимал, что вывод txd должен был перейти на вывод rxd.Их изменение позволило мне увидеть команды и ответы, возвращаемые из модуля.Чтобы реально заставить работать gprs, мне также нужно было временно установить вывод pwr на низкий, а затем на высокий.

...