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(телефон,СООБЩЕНИЕ); }`

, 👍1

Обсуждение

код беспорядок. Пожалуйста, отформатируйте его правильно, чтобы он был разборчивым, @jsotola

почему вы спрашиваете, правильно ли он работает? ... разве вы не знаете, что вы хотите, чтобы он делал и что он делает?, @jsotola


1 ответ


1

Я рекомендую вам использовать AT-команду, а затем использовать какую-либо библиотеку. Вам нужно покопаться в библиотеке для получения более подробной информации.

https://randomnerdtutorials.com/sim900-gsm-gprs-shield-arduino/ Пройдите по этой ссылке.... это даст вам примерное представление.

,