Я действительно нуждаюсь в помощи с этой проблемой, и, как наиболее часто советуется, я исследовал и исследовал и исследовал в течение нескольких дней, и я не могу понять, что не так ...
С этим существом сказал, что я работаю над проектом, который использует ESP-32S ( распиновка ) и GSM-модуль A6. ( распиновка ) Я пытаюсь подключить их, чтобы A6 отправлял данные в ThingSpeak ... Моя проблема в том, что я не могу заставить его работать ... У меня точно такая же конфигурация между два используют ESP8266, и он подключается и работает, но с ESP32S он просто не работает ...
Ниже приведен код, который я использовал для подключения 32 к A6, и все говорит об успехе и пройти, но это не изменит значения ThingSpeak, используя любые методы ...
#define TINY_GSM_MODEM_A6
#include "TinyGsmClient.h"
#include "ThingSpeak.h"
#define SerialMon Serial
HardwareSerial SerialAT(1);
bool modemConeted;
// Your GPRS credentials
// Leave empty, if missing user or pass
const char apn[] = "wireless.twilio.com";
const char user[] = "";
const char pass[] = "";
bool dataSent = false;
TinyGsm modem(SerialAT);
TinyGsmClient client(modem);
void setup(){
SerialMon.begin(9600);
delay(1000);
gsmModSetup();
}
void gsmModSetup() {
// Set GSM module baud rate
SerialAT.begin(9600, SERIAL_8N1, 27, 26, false); //27 and 26 are the pins on the ESP32S connected to the U_Rxd/U_Txd pins of A6
delay(3000);
SerialMon.println("Initializing modem...");
modem.init();
delay(3000);
String modemInfo = modem.getModemInfo();
SerialMon.print("Modem: ");
SerialMon.println(modemInfo);
SerialMon.print("Waiting for network...");
if (!modem.waitForNetwork()) {
SerialMon.println(" fail");
delay(10000);
return;
}
SerialMon.println(" OK");
SerialMon.print("Connecting to ");
SerialMon.print(apn);
if (!modem.gprsConnect(apn, user, pass)) {
SerialMon.println(" fail");
delay(5000);
return;
}
SerialMon.println(" OK");
}
void loop(){
}
Я использую карту Twilo Sim, которая загружена данными (как сказано выше, она работает с esp8266, поэтому не SIM и не доска) Единственная часть этого кода, которая не проходит, это часть, которая говорит, что соединение GPRS. это никогда не говорит, проходит или терпит неудачу. Он просто сидит около пяти минут, затем продолжается.
После этого я пытаюсь отправить сообщение в ThingSpeak, и оно выдает ThingSpeak ERROR-307, что означает, что не удалось подключиться к ThingSpeak ... Я пробовал 2 разных способа
То, что я считаю простым и обычным способом
ThingSpeak.setField(1, temp);
ThingSpeak.setField(2, h);
ThingSpeak.setField(3, p);
ThingSpeak.setField(4, pt);
ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey);
, и более сложный способ подключения к серверу отправляет команду GET со всеми значениями, объединенными со строками.
if (client.connect(thingSpeakAddress, 80))
{
client.print("POST /update HTTP/1.1\n");
client.print("Host: api.thingspeak.com\n");
client.print("Connection: close\n");
client.print("X-THINGSPEAKAPIKEY: " + WriteAPIKey + "\n");
client.print("Content-Type: application/x-www-form-urlencoded\n");
client.print("Content-Length: ");
client.print(thingSpeakData.length());
client.print("\n\n");
client.print(thingSpeakData);
}
client.stop();
Еще ни одна из них не работает, и я не знаю, что делать ... Мой A6 подключен к 32 с помощью GPIO26 & 27, они подключены к выводам A6 U_Rxd / U_Txd. Все доски имеют общую точку соприкосновения.
Любые дополнительные руководства по чтению или изменению кода или попыткам использования библиотек были бы чрезвычайно полезны, поскольку мои дни копания приносили только разочарование, поскольку одна попытка за другой не удалась. читатели этого - действительно моя последняя надежда в решении этой проблемы, которая мешает моему дальнейшему прогрессу.
(Любые вопросы о чем-либо на моем конце, пожалуйста, спросите. -Спасибо)