Плата расширения GSM / GPRS и GPS для Raspberry Pi. Часть 7
Ниже код программы для выключения модуля, в котором реализована очень схожа с предыдущим логика:
Управление, отправкой команды AT на последовательный интерфейс, модуль еще не выключен, если нет, как еще один тест, выполняется процедура сброса путем отправки второй команды AT
В случае положительного ответа, выполняется процедура выключения, которая заключается в обеспечении на выводе GPIO27 высокого уровня сигнала в течение двух секунд.
/ *
* GSMOff
* /
// Подсоединяем библиотеку ArduPi
#include «arduPi.h»
int resetModulePin = 9;
int onModulePin = 8;
void switchModuleOff () {
digitalWrite (onModulePin, HIGH);
delay (2000);
digitalWrite (onModulePin, LOW);
}
void resetModule () {
digitalWrite (resetModulePin, HIGH);
delay (500);
digitalWrite (resetModulePin, LOW);
delay (100);
}
int main () {
Serial.begin (115200);
delay (2000);
pinMode (resetModulePin, OUTPUT);
pinMode (onModulePin, OUTPUT);
Serial.flush ();
printf («zero \ n»);
Serial.print («AT»);
delay (1000);
if (Serial.available () == 0)
{
printf («uno \ n»);
resetModule ();
delay (2000);
}
Serial.print («AT»);
delay (1000);
if (Serial.available ()> 0)
{
printf («due \ n»);
switchModuleOff (); //
}
return (0);
}
Для компиляции программы GSMOff используем команду:
g ++ -lrt -lpthread GSMOff.cpp arduPi.o -o GSMOff
Чтобы запустить программу, всегда после перехода в папку ArduPi, воспользуемся командой:
./ GSMOff
Наконец, в коде ниже, вы можете увидеть программу, которая позволяет отправить SMS.
/ *
* GSMSms
* /
// Include ArduPi library
#include «arduPi.h»
int timesToSend = 1; // The SMS number to be sent
int count = 0;
int ok = 0;
int numCar = 0;
char phone_number [] = «3… 9»; // SMS destination number
void setup () {
Serial.begin (115200); // UART baud rate
delay (2000);
Serial.println («AT + CMGF = 1»); // Sets the SMS mode to text
delay (100);
}
void loop () {
while (count <timesToSend) {
delay (1500);
Serial.print («AT + CMGS = \» "); // send the SMS (s)
Serial.print (phone_number);
Serial.println ("\" ");
while (Serial.read ()! = ‘>’);
Serial.print («Se arriva funziona»); // The SMS body
delay (500);
Serial.write (0x1A); // sends ++
Serial.write (0x0D);
Serial.write (0x0A);
delay (5000);
count ++;
}
}
int main () {
setup ();
while (1) {
loop ();
if (count == timesToSend)
{
break;
}
}
return (0);
}
Переменная phone_number [] содержит телефонный номер для вызова,
AT + CMGF = 1 задает режим Text для SMS,
AT + CMGS = отправляет SMS-сообщения, установлено в следующей инструкции,
И, наконец, посылает символы "++" для завершения вызова.
Чтобы скомпилировать программу, вводим команду:
g ++ -lrt -lpthread GSMSms.cpp arduPi.o -o GSMSms
и запускаем программу, как обычно:
./GSMSms
Прежде чем запустить программу, вам нужно запустить процедуру активации модуля GSM, чтобы убедиться, что модуль подключен и работает.
Когда вы пойдете дальше в разработке программы управления, то она должна будет обеспечить управление правильной последовательностью звонков, проверять и управлять ненормальными условиями.
Блок от наших партнеров: Не знаете к кому обратиться в вопросе благоустройства территории частного дома? Наша компания с радостью выполнит благоустройство территории частного дома в самые короткие сроки и по самой низкой цене. Звоните!