ESP32+MQTT+SIM+GPS

iAyre

✩✩✩✩✩✩✩
13 Мар 2024
4
0
Всем привет! Я пишу код для TTGO T-7000G v1.1 хочу сделать GPS Tracker (снизу прикреплю код)
ttgo-sim7000g-v11-modulis-esp32-wrover-b-sim7000g-gps-nb-iot-bt-wifi-18650.jpg
В чем может быть проблема? С этим проектом ввожусь 4 дня и ничего не могу понять что не так!?
Смотрел видео индуса одного через яндекс переводчик,и его код не работает! Менял APN и сим карты! В Serial Monitor (ctrl+shift+m)
"Connecting to GSM network..." но не пишет failed или GSM network connected successfully!
хотелось бы разобраться что не так!
Всем печенек:з


GPS TRACKER:
#define TINY_GSM_MODEM_SIM7000

#include <Wire.h>
#include <TinyGPS++.h>
#include <HardwareSerial.h>
#include <PubSubClient.h>
#include <ArduinoJson.h>
#include <TinyGsmClient.h>

// Параметры для подключения к MQTT
const char* mqtt_server = "io.adafruit.com"; // Адрес сервера Adafruit IO MQTT
const int mqtt_port = 1883; // Порт MQTT (обычно 1883)
const char* mqtt_user = "iAYRE"; // Имя пользователя (IO_USERNAME)
const char* mqtt_password = "aio_omsN91EKsq0FcI6tzSYmLre8kxvr"; // Ключ доступа (IO_KEY)
const char* mqtt_topic = "iAYRE/feeds/Map/csv";

// APN для вашего провайдера
#define GSM_APN       "omnitel" // APN вашего провайдера
#define GSM_USERNAME  "omni" // Имя пользователя (обычно не требуется)
#define GSM_PASSWORD  "omni" // Пароль (обычно не требуется)

// Объекты для работы с GPS и SIM7000G
TinyGPSPlus gps;
HardwareSerial gpsSerial(2); // Используем Serial2 для GPS
HardwareSerial sim7000Serial(2); // Используем Serial2 для SIM7000G

// Создаем объекты TinyGsmSim7000 и TinyGsmClient
TinyGsmSim7000 modem(sim7000Serial);
TinyGsmClient gsmClient(modem);

PubSubClient mqttClient(gsmClient);

unsigned long previousMillis = 0;
const long interval = 60000; // Отправка данных каждую минуту

void setup() {
  Serial.begin(9600);
  gpsSerial.begin(9600, SERIAL_8N1, 22, 21); // RX (GPIO22), TX (GPIO21)
  sim7000Serial.begin(9600, SERIAL_8N1, 26, 27); // RX (GPIO26), TX (GPIO27)
  delay(1000);

  connectGSM();
  connectMQTT();
}

void loop() {
  unsigned long currentMillis = millis();

  if (currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis;

    while (gpsSerial.available() > 0) {
      gps.encode(gpsSerial.read());
    }

    if (gps.location.isValid()) {
      // Считываем координаты и отправляем на MQTT сервер
      float latitude = gps.location.lat();
      float longitude = gps.location.lng();
     
      // Подготовка JSON
      StaticJsonDocument<200> doc;
      doc["latitude"] = latitude;
      doc["longitude"] = longitude;
      char jsonBuffer[256];
      serializeJson(doc, jsonBuffer);

      mqttClient.publish(mqtt_topic, jsonBuffer);
    }
  }

  if (!mqttClient.connected()) {
    connectMQTT();
  }

  mqttClient.loop();
}

void connectGSM() {
  Serial.println("Connecting to GSM network...");
  while (!modem.init()) {
    delay(1000);
  }

  // Установка APN
  if (!modem.gprsConnect(GSM_APN, GSM_USERNAME, GSM_PASSWORD)) {
    Serial.println("Failed to connect to GSM network!");
  } else {
    Serial.println("GSM network connected successfully!");
  }
}

void connectMQTT() {
  mqttClient.setServer(mqtt_server, mqtt_port);

  while (!mqttClient.connected()) {
    Serial.println("Attempting MQTT connection...");

    if (mqttClient.connect("ESP32Client", mqtt_user, mqtt_password)) {
      Serial.println("MQTT connection established!");
    } else {
      Serial.print("Failed to connect to MQTT, rc=");
      Serial.print(mqttClient.state());
      Serial.println(" Retry in 5 seconds");
      delay(5000);
    }
  }
}
 

engineer-988

✩✩✩✩✩✩✩
14 Мар 2024
1
0
Питание правильно подал? У меня так было банально из-за плохого соединения контактов
 

vortigont

★★★★★✩✩
24 Апр 2020
915
491
Saint-Petersburg, Russia

iAyre

✩✩✩✩✩✩✩
13 Мар 2024
4
0
@vortigont,
Я бы с радостью использовал бы официальные, но мне нужно написать код свой, и использовать экранчик и кнопку что в официальном такого нет

Ну и вот этот пункт проверьте Please ensure that the USIM card you use supports 2G(GSM)
Понимаешь как, я написал код и смотрю все заработало, отправило 33 запросов на сервер и прекратила, поменял сим-карту, ничего, не помогло, прошел день два и симка другая прочитала, будто у симки ограничения по запросам в секунду стоит…
Я пробовал и вайфай и то самое, он не может подключиться к GSM связи, аля APN неверный, я использую то что интернет пишет и ничего(естественно когда меняю симку, я менял и APN)
 

vortigont

★★★★★✩✩
24 Апр 2020
915
491
Saint-Petersburg, Russia
я написал код и смотрю все заработало
симка другая прочитала, будто у симки ограничения по запросам в секунду стоит
Я пробовал и вайфай и то самое
честно говоря я из этого потока сознания ничего не понял. Попробуйте для начала научиться ясно выражать свои мысли.
 
  • Лойс +1
Реакции: Брякомякс

iAyre

✩✩✩✩✩✩✩
13 Мар 2024
4
0
@vortigont,
Ну смотри, я написал код, и вроде все нормально, и бывает коннект с APN и связью и потом его нет, хоть я ничего не делаю особенного, что то, плата подключена к компу и она то находит сеть то нет, и с чем жто связано не понятно