Всем привет! Я пишу код для TTGO T-7000G v1.1 хочу сделать GPS Tracker (снизу прикреплю код)
В чем может быть проблема? С этим проектом ввожусь 4 дня и ничего не могу понять что не так!?
Смотрел видео индуса одного через яндекс переводчик,и его код не работает! Менял APN и сим карты! В Serial Monitor (ctrl+shift+m)
"Connecting to GSM network..." но не пишет failed или GSM network connected successfully!
хотелось бы разобраться что не так!
Всем печенек:з
В чем может быть проблема? С этим проектом ввожусь 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);
}
}
}