#define TINY_GSM_MODEM_SIM7600 // SIM7600 AT instruction is compatible with A7670
#define SerialAT Serial1
#define SerialMon Serial
#define TINY_GSM_USE_GPRS true
#include <TinyGsmClient.h>
#include <SocketIOclient.h>
#include <ArduinoHttpClient.h>
#include <DHT.h>
#include <DHT_U.h>
#include <ArduinoJson.h>
#define RXD2 27 //VVM MODULE RXD INTERNALLY CONNECTED
#define TXD2 26 //VVM MODULE TXD INTERNALLY CONNECTED
#define powerPin 4 ////VVM MODULE ESP32 PIN D4 CONNECTED TO POWER PIN OF A7670C CHIPSET, INTERNALLY CONNECTED
#define DHTPIN 5 // Pin which is connected to the DHT sensor
#define DHTTYPE DHT22 // DHT 22 (AM2302)
#define USE_SERIAL Serial
DHT dht(DHTPIN, DHTTYPE);
JsonDocument doc;
char jsonOutput[128];
const char* serverUrl = "192.168.1.238";
const int serverPort = 3000;
char a, b;
const char apn[] = ""; //APN automatically detects for 4G SIM, NO NEED TO ENTER, KEEP IT BLANK
TinyGsm modem(SerialAT);
TinyGsmClient client(modem);
HttpClient http = HttpClient(client, serverUrl, serverPort);
void setup()
{
Serial.begin(115200);
pinMode(powerPin, OUTPUT);
digitalWrite(powerPin, LOW);
delay(100);
digitalWrite(powerPin, HIGH);
delay(1000);
digitalWrite(powerPin, LOW);
Serial.println("nconfiguring VVM Module. Kindly wait");
delay(10000);
SerialAT.begin(115200, SERIAL_8N1, RXD2, TXD2);
dht.begin();
// Restart takes quite some time
// To skip it, call init() instead of restart()
DBG("Initializing modem...");
if (!modem.init()) {
DBG("Failed to restart modem, delaying 10s and retrying");
return;
}
// Restart takes quite some time
// To skip it, call init() instead of restart()
DBG("Initializing modem...");
if (!modem.restart()) {
DBG("Failed to restart modem, delaying 10s and retrying");
return;
}
String name = modem.getModemName();
DBG("Modem Name:", name);
String modemInfo = modem.getModemInfo();
DBG("Modem Info:", modemInfo);
Serial.println("Waiting for network...");
if (!modem.waitForNetwork()) {
Serial.println(" fail");
delay(5000);
return;
}
Serial.println(" success");
if (modem.isNetworkConnected()) {
Serial.println("Network connected");
}
// GPRS connection parameters are usually set after network registration
Serial.print(F("Connecting to "));
Serial.print(apn);
if (!modem.gprsConnect(apn)) {
Serial.println(" fail");
delay(10000);
return;
}
Serial.println(" success");
if (modem.isGprsConnected()) {
Serial.println("LTE module connected");
}
}
void loop()
{
// Read temperature and humidity values
float h = dht.readHumidity();
float t = dht.readTemperature();
// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" *C");
String postData = "{"temperature":" + String(t) + ","humidity":" + String(h) + "}";
http.beginRequest();
http.post("/api/device-data");
http.sendHeader("Content-Type", "application/json");
http.sendHeader("Content-Length", postData.length());
http.beginBody();
http.print(postData);
// read the status code and body of the response
int statusCode = http.responseStatusCode();
String response = http.responseBody();
Serial.print("Status code: ");
Serial.println(statusCode);
Serial.print("Response: ");
Serial.println(response);
http.endRequest();
delay(2000); // Delay between sensor readings
}
I am trying to send data to my node.js server using GPRS for SIM module A7672S but from WIFI it receives successfully. My node.js code is below
app.post('/api/device-data', async (req, res) => {
const { temperature, humidity } = req.body;
if (temperature && humidity) {
const newData = new DeviceData({ temperature, humidity });
await newData.save();
console.log(`Received data: Temperature=${temperature}, Humidity=${humidity}`);
res.status(200).json({ message: 'Sensor data received successfully' });
} else {
res.status(400).send('Invalid data');
}
});
I don’t know why this is not able to send data using GPRS but with WIFI it runs smoothly.
my response is –>>>
In my response side I got very different error here my response is below
Status code: -3
Response:
Humidity: 66.40 % Temperature: 27.90 *C