Arduino Uno + SIM808 EVB 3.2.4 не работает должным образом?
Итак, недавно я нашел в Интернете этот учебник о SIM808. Это выглядело очень круто, поэтому я заказал sim808 evb 3.2.4 на Amazon. Подключил модуль и соединил контакты RX (11) и (10) TX.
Вот код, с которым я работаю, пытался как можно лучше следовать этому руководству, но теперь я полностью запутался, купил SIM-карту, активировал SIM-карту, и, похоже, она прекрасно подключается
В мониторе последовательного порта иногда появляется следующее: 14:05:06.243 -> Инициализация прошла успешно, пожалуйста, отправьте мне SMS-сообщение!
Но чаще всего я получаю это: 14:04:37.586 --> Ошибка инициализации Sim808
#include <DFRobot_sim808.h> #include <SoftwareSerial.h>
#define MESSAGE_LENGTH 160 символьное сообщение[MESSAGE_LENGTH]; интервальный индекс сообщения = 0; СООБЩЕНИЕ[300]; лат[12]; уголь [12]; символ wspeed[12];
char phone[16]; символ даты и времени[24];
#define PIN_TX 10 # определить PIN_RX 11 SoftwareSerial mySerial(PIN_TX,PIN_RX); DFRobot_SIM808 sim808(&mySerial);//Подключить RX,TX,PWR,
аннулировать sendSMS(); недействительным getGPS(); отменить чтение SMS();
аннулировать установку() { mySerial.begin(9600); Серийный.начать(9600);
//******** Инициализировать модуль sim808 ************* пока(!sim808.init()) { Serial.print("Ошибка инициализации Sim808\r\n"); delay(1000); } delay(3000);
Serial.println("Инициализация SIM-карты прошла успешно");
Serial.println("Инициализация прошла успешно, отправьте мне SMS-сообщение!");
void loop() { //************ Обнаружение непрочитанных СМС ************************* messageIndex = sim808.isSMSunread();
//*********** По крайней мере одно НЕПРОЧИТАННОЕ СМС *********** если (индекс сообщения > 0) {
readSMS();
getGPS();
sendSMS();
//*************** Отключить питание GPS ************
sim808.detachGPS();
Serial.println("Please send SMS message to me!");
}
аннулировать чтениеSMS() { Serial.print("messageIndex: "); Serial.println(индекс сообщения);
sim808.readSMS(messageIndex, сообщение, MESSAGE_LENGTH, телефон, дата и время);
//*Чтобы не переполнять память SIM-карты, лучше ее удалить
sim808.deleteSMS(индекс сообщения);
Serial.print("От номера:");
Serial.println(телефон);
Serial.print("Дата и время: ");
Serial.println(дата-время);
Serial.print("Получено сообщение:");
Serial.println(сообщение);
аннулировать getGPS() { пока(!sim808.attachGPS()) { Serial.println("Открыть сбой питания GPS"); delay(1000); } delay(3000);
Serial.println("Успех открытия питания GPS");
пока(!sim808.getGPS()) {
Serial.print(sim808.GPSdata.year); Serial.print("/"); Serial.print(sim808.GPSdata.month); Serial.print("/"); Serial.print(sim808.GPSdata.day); Serial.print(" "); Serial.print(sim808.GPSdata.hour); Serial.print(":"); Serial.print(sim808.GPSdata.minute); Serial.print(":"); Serial.print(sim808.GPSdata.second); Serial.print(":"); Serial.println(sim808.GPSdata.centisecond); Serial.print("широта :"); Serial.println(sim808.GPSdata.lat); Serial.print("долгота:"); Serial.println(sim808.GPSdata.lon); Serial.print("скорость_км/ч :"); Serial.println(sim808.GPSdata.speed_kph); Serial.print("заголовок:"); Serial.println(sim808.GPSdata.heading); Серийный.println();
float la = sim808.GPSdata.lat; float lo = sim808.GPSdata.lon; float ws = sim808.GPSdata.speed_kph;
dtostrf(ла, 4, 6, лат); // помещаем значение с плавающей запятой la в массив символов lat. 4 = количество цифр до десятичного знака. 6 = количество цифр после запятой. dtostrf(lo, 4, 6, lon); // помещаем значение с плавающей запятой lo в массив символов lon dtostrf(ws, 6, 2, wскорость); // помещаем плавающее значение ws в массив символов wspeed
sprintf(СООБЩЕНИЕ, "Широта: %s\nДолгота: %s\nСкорость ветра: %s км/ч\nМой модуль работает. Меван Индула Патираж. Попробуйте по этой ссылке.\nhttp://www.latlong.net /Show-Latitude-Longitude.html\nhttp://maps.google.com/maps?q=%s,%s\n", широта, долгота, wскорость, широта, долгота);
аннулировать sendSMS() { Serial.println("Начать отправку сообщения...");
Serial.println(СООБЩЕНИЕ); Serial.println(телефон);
sim808.sendSMS(телефон,СООБЩЕНИЕ); }`
@Ethan Moore, 👍1
Обсуждение1 ответ
Я рекомендую вам использовать AT-команду, а затем использовать какую-либо библиотеку. Вам нужно покопаться в библиотеке для получения более подробной информации.
https://randomnerdtutorials.com/sim900-gsm-gprs-shield-arduino/ Пройдите по этой ссылке.... это даст вам примерное представление.
- GPRS SIM900 и GPS NEO-6M не работают вместе
- GSM и GPS-модуль не работают вместе
- как заставить щит GPRS/GSM SIM900 работать с модулем gps neo-6M с помощью платы Arduino UNO
- Соединение AI A7 Thinker с Arduino
- Конструкция устройства слежения за транспортным средством
- При компиляции этого кода он говорит: 'sendATcommand' was not declared in this scope
- GPS-модуль uBlox Neo 6M не отвечает
- Проблема с получением SMS - GSM-модуль Arduino Uno и SIM900A
код беспорядок. Пожалуйста, отформатируйте его правильно, чтобы он был разборчивым, @jsotola
почему вы спрашиваете, правильно ли он работает? ... разве вы не знаете, что вы хотите, чтобы он делал и что он делает?, @jsotola