Hi I check your sketch and seems quite ok.
But I think you must add AUX pin or put a pull up resistor on It, with no AUX not work for me, but with aux I have a correct send.
And Arduino Json have some problem on serialize on String
#include "Arduino.h"
#include "LoRa_E32.h"
#include <DHT.h>
#include <ArduinoJson.h>
#define DHTPIN 4
#define DHTTYPE DHT11
int freeRame () {
#ifdef ESP8266
return Esp.getFreeHeap();
#else
extern int __heap_start, *__brkval;
int v;
return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval);
#endif // ESP8266
}
DHT dht(DHTPIN, DHTTYPE);
DynamicJsonDocument doc(512);
// ---------- esp8266 pins --------------
//LoRa_E32 e32ttl(D2, D3, D5, D7, D6);
//LoRa_E32 e32ttl(D2, D3); // Config without connect AUX and M0 M1
//#include <SoftwareSerial.h>
//SoftwareSerial mySerial(D2, D3); // RX, TX
//LoRa_E32 e32ttl(&mySerial, D5, D7, D6);
// -------------------------------------
// ---------- Arduino pins --------------
//LoRa_E32 e32ttl(2, 3, 5, 7, 6);
LoRa_E32 e32ttl100(4, 5, 3); // Config without connect AUX and M0 M1
//#include <SoftwareSerial.h>
//SoftwareSerial mySerial(2, 3); // RX, TX
//LoRa_E32 e32ttl(&mySerial, 5, 7, 6);
// -------------------------------------
void printParameters(struct Configuration configuration) {
Serial.println("----------------------------------------");
Serial.print(F("HEAD BIN: ")); Serial.print(configuration.HEAD, BIN);Serial.print(" ");Serial.print(configuration.HEAD, DEC);Serial.print(" ");Serial.println(configuration.HEAD, HEX);
Serial.println(F(" "));
Serial.print(F("AddH BIN: ")); Serial.println(configuration.ADDH, BIN);
Serial.print(F("AddL BIN: ")); Serial.println(configuration.ADDL, BIN);
Serial.print(F("Chan BIN: ")); Serial.print(configuration.CHAN, DEC); Serial.print(" -> "); Serial.println(configuration.getChannelDescription());
Serial.println(F(" "));
Serial.print(F("SpeedParityBit BIN : ")); Serial.print(configuration.SPED.uartParity, BIN);Serial.print(" -> "); Serial.println(configuration.SPED.getUARTParityDescription());
Serial.print(F("SpeedUARTDataRate BIN : ")); Serial.print(configuration.SPED.uartBaudRate, BIN);Serial.print(" -> "); Serial.println(configuration.SPED.getUARTBaudRate());
Serial.print(F("SpeedAirDataRate BIN : ")); Serial.print(configuration.SPED.airDataRate, BIN);Serial.print(" -> "); Serial.println(configuration.SPED.getAirDataRate());
Serial.print(F("OptionTrans BIN : ")); Serial.print(configuration.OPTION.fixedTransmission, BIN);Serial.print(" -> "); Serial.println(configuration.OPTION.getFixedTransmissionDescription());
Serial.print(F("OptionPullup BIN : ")); Serial.print(configuration.OPTION.ioDriveMode, BIN);Serial.print(" -> "); Serial.println(configuration.OPTION.getIODroveModeDescription());
Serial.print(F("OptionWakeup BIN : ")); Serial.print(configuration.OPTION.wirelessWakeupTime, BIN);Serial.print(" -> "); Serial.println(configuration.OPTION.getWirelessWakeUPTimeDescription());
Serial.print(F("OptionFEC BIN : ")); Serial.print(configuration.OPTION.fec, BIN);Serial.print(" -> "); Serial.println(configuration.OPTION.getFECDescription());
Serial.print(F("OptionPower BIN : ")); Serial.print(configuration.OPTION.transmissionPower, BIN);Serial.print(" -> "); Serial.println(configuration.OPTION.getTransmissionPowerDescription());
Serial.println("----------------------------------------");
}
void setup() {
Serial.begin(9600);
delay(500);
// Startup all pins and UART
e32ttl100.begin();
dht.begin();
// ResponseStructContainer c;
// c = e32ttl100.getConfiguration();
// struct Configuration configuration = *(Configuration*) c.data;
// printParameters(configuration);
//
// configuration.ADDL = 0x01;
// configuration.ADDH = 0x00;
// configuration.CHAN = 0x04;
//
// configuration.OPTION.fixedTransmission = FT_TRANSPARENT_TRANSMISSION;
// configuration.OPTION.wirelessWakeupTime = WAKE_UP_750;
//
// configuration.OPTION.fec = FEC_1_ON;
// configuration.OPTION.ioDriveMode = IO_D_MODE_PUSH_PULLS_PULL_UPS;
// configuration.OPTION.transmissionPower = POWER_20;
//
// configuration.SPED.airDataRate = AIR_DATA_RATE_010_24;
// configuration.SPED.uartBaudRate = UART_BPS_9600;
// configuration.SPED.uartParity = MODE_00_8N1;
//
//
// e32ttl100.setConfiguration(configuration, WRITE_CFG_PWR_DWN_SAVE);
// printParameters(configuration);
Serial.println("Hi, I'm going to send message!");
Serial.println(freeRame());
// Send message
ResponseStatus rs = e32ttl100.sendMessage("Hello, Taurus!");
Serial.println(freeRame());
// Check If there is some problem of succesfully send
Serial.println(rs.getResponseDescription());
}
int i = 0;
void loop() {
Serial.println(freeRame());
float h = dht.readHumidity();
// Read temperature as Celsius (the default)
float t = dht.readTemperature();
// Read temperature as Fahrenheit (isFahrenheit = true)
float f = dht.readTemperature(true);
// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println(F("Failed to read from DHT sensor!"));
// return;
}
// Compute heat index in Fahrenheit (the default)
float hif = dht.computeHeatIndex(f, h);
// Compute heat index in Celsius (isFahreheit = false)
float hic = dht.computeHeatIndex(t, h, false);
Serial.println(freeRame());
h = random(90);
t = random(40);
f = 1.0;
hif = 2.0;
hic = 2.0;
Serial.print(F("Humidity: "));
Serial.print(h);
Serial.print(F("% Temperature: "));
Serial.print(t);
Serial.print(F("°C "));
Serial.print(f);
Serial.print(F("°F Heat index: "));
Serial.print(hic);
Serial.print(F("°C "));
Serial.print(hif);
Serial.println(F("°F"));
Serial.println(freeRame());
delay(1000);
doc["temperature"] = t;
doc["humidity"] = h;
Serial.println(freeRame());
int size = measureJson(doc)+1;
char buf[size];
serializeJson(doc, buf, size);
Serial.println(buf);
Serial.println(measureJson(doc));
ResponseStatus rs = e32ttl100.sendMessage(buf, size);
// String buf;
// serializeJson(doc, buf);
// Serial.println(buf);
// Serial.println(buf.length());
// ResponseStatus rs = e32ttl100.sendMessage(buf);
Serial.println(freeRame());
Serial.println(rs.getResponseDescription());
Serial.println(freeRame());
delay(2000);
}
#include "Arduino.h"
#include "LoRa_E32.h"
#include <ArduinoJson.h>
#define E32_TTL_100
LoRa_E32 e32ttl(4, 5, 3); // Config without connect AUX and M0 M1
//#include <SoftwareSerial.h>
//SoftwareSerial mySerial(D2, D3); // RX, TX
//E32_TTL e32ttl(&mySerial, D5, D7, D6);
void printParameters(struct Configuration configuration);
void printModuleInformation(struct ModuleInformation moduleInformation);
//The setup function is called once at startup of the sketch
void setup()
{
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB
}
delay(400);
e32ttl.begin();
// ResponseStructContainer c;
// c = e32ttl.getConfiguration();
// struct Configuration configuration = *(Configuration*) c.data;
// printParameters(configuration);
//
// configuration.ADDL = 0x01;
// configuration.ADDH = 0x00;
// configuration.CHAN = 0x04;
//
// configuration.OPTION.fixedTransmission = FT_TRANSPARENT_TRANSMISSION;
// configuration.OPTION.wirelessWakeupTime = WAKE_UP_750;
//
// configuration.OPTION.fec = FEC_1_ON;
// configuration.OPTION.ioDriveMode = IO_D_MODE_PUSH_PULLS_PULL_UPS;
// configuration.OPTION.transmissionPower = POWER_20;
//
// configuration.SPED.airDataRate = AIR_DATA_RATE_010_24;
// configuration.SPED.uartBaudRate = UART_BPS_9600;
// configuration.SPED.uartParity = MODE_00_8N1;
//
//
// e32ttl.setConfiguration(configuration, WRITE_CFG_PWR_DWN_SAVE);
// printParameters(configuration);
// ResponseContainer c;
// c = e32ttl.getConfiguration();
// Configuration configuration = *(Configuration*) c.data;
// Serial.println(configuration.SPED.getUARTBaudRate());
// Serial.println(c.status.getResponseDescription());
//
// printParameters(configuration);
//
// ResponseContainer cMi;
// cMi = e32ttl.getModuleInformation();
// ModuleInformation mi = *(ModuleInformation*)cMi.data;
//
// Serial.println(cMi.status.getResponseDescription());
// Serial.println(cMi.status.code);
//
// printModuleInformation(mi );
//
// configuration.CHAN = configuration.CHAN-1;
// e32ttl.setConfiguration(configuration, WRITE_CFG_PWR_DWN_SAVE);
//
// ResponseContainer cNext;
// cNext = e32ttl.getConfiguration();
// Configuration configurationNext = *(Configuration*) cNext.data;
// Serial.println(configurationNext.SPED.getUARTBaudRate());
// Serial.println(cNext.status.getResponseDescription());
// printParameters(configurationNext);
}
DynamicJsonDocument doc(512);
// The loop function is called in an endless loop
void loop()
{
if (e32ttl.available() > 1){
// struct Messaggione {
// char message[8];
// bool mitico;
// };
//
// char type[5];
// ResponseContainer rs = e32ttl.receiveInitialMessage(sizeof(type));
// memcpy ( type, rs.data.c_str(), sizeof(type) );
//// ResponseContainer rs = e32ttl.receiveInitialMessage(5);
//// char type[5] = {rs.data.c_str()};
//
// Serial.println("READ TYPE: ");
// Serial.println(rs.status.getResponseDescription());
// Serial.println(type);
//
// ResponseStructContainer rsc = e32ttl.receiveMessage(sizeof(Messaggione));
// struct Messaggione messaggione = *(Messaggione*) rsc.data;
ResponseContainer rs = e32ttl.receiveMessage();
String message = rs.data;
Serial.println(rs.status.getResponseDescription());
Serial.println(message);
deserializeJson(doc, message);
Serial.print("humidity --> ");
Serial.println((float)doc["humidity"]);
// Serial.println(messaggione.message);
// Serial.println(messaggione.mitico);
}
}
//void printParameters(struct Configuration configuration) {
// Serial.println("----------------------------------------");
//
// Serial.print(F("HEAD BIN: ")); Serial.print(configuration.HEAD, BIN);Serial.print(" ");Serial.print(configuration.HEAD, DEC);Serial.print(" ");Serial.println(configuration.HEAD, HEX);
// Serial.println(F(" "));
// Serial.print(F("AddH BIN: ")); Serial.println(configuration.ADDH, BIN);
// Serial.print(F("AddL BIN: ")); Serial.println(configuration.ADDL, BIN);
// Serial.print(F("Chan BIN: ")); Serial.print(configuration.CHAN, HEX); Serial.print(" -> "); Serial.println();
// Serial.println(F(" "));
// Serial.print(F("SpeedParityBit BIN : ")); Serial.print(configuration.SPED.uartParity, BIN);Serial.print(" -> "); Serial.println();
// Serial.print(F("SpeedUARTDataRate BIN : ")); Serial.print(configuration.SPED.uartBaudRate, BIN);Serial.print(" -> "); Serial.println();
// Serial.print(F("SpeedAirDataRate BIN : ")); Serial.print(configuration.SPED.airDataRate, BIN);Serial.print(" -> "); Serial.println();
//
// Serial.print(F("OptionTrans BIN : ")); Serial.print(configuration.OPTION.fixedTransmission, BIN);Serial.print(" -> "); Serial.println();
// Serial.print(F("OptionPullup BIN : ")); Serial.print(configuration.OPTION.ioDriveMode, BIN);Serial.print(" -> "); Serial.println();
// Serial.print(F("OptionWakeup BIN : ")); Serial.print(configuration.OPTION.wirelessWakeupTime, BIN);Serial.print(" -> "); Serial.println();
// Serial.print(F("OptionFEC BIN : ")); Serial.print(configuration.OPTION.fec, BIN);Serial.print(" -> "); Serial.println();
// Serial.print(F("OptionPower BIN : ")); Serial.print(configuration.OPTION.transmissionPower, BIN);Serial.print(" -> "); Serial.println();
//
// Serial.println("----------------------------------------");
//
//}
void printParameters(struct Configuration configuration) {
Serial.println("----------------------------------------");
Serial.print(F("HEAD BIN: ")); Serial.print(configuration.HEAD, BIN);Serial.print(" ");Serial.print(configuration.HEAD, DEC);Serial.print(" ");Serial.println(configuration.HEAD, HEX);
Serial.println(F(" "));
Serial.print(F("AddH BIN: ")); Serial.println(configuration.ADDH, BIN);
Serial.print(F("AddL BIN: ")); Serial.println(configuration.ADDL, BIN);
Serial.print(F("Chan BIN: ")); Serial.print(configuration.CHAN, DEC); Serial.print(" -> "); Serial.println(configuration.getChannelDescription());
Serial.println(F(" "));
Serial.print(F("SpeedParityBit BIN : ")); Serial.print(configuration.SPED.uartParity, BIN);Serial.print(" -> "); Serial.println(configuration.SPED.getUARTParityDescription());
Serial.print(F("SpeedUARTDataRate BIN : ")); Serial.print(configuration.SPED.uartBaudRate, BIN);Serial.print(" -> "); Serial.println(configuration.SPED.getUARTBaudRate());
Serial.print(F("SpeedAirDataRate BIN : ")); Serial.print(configuration.SPED.airDataRate, BIN);Serial.print(" -> "); Serial.println(configuration.SPED.getAirDataRate());
Serial.print(F("OptionTrans BIN : ")); Serial.print(configuration.OPTION.fixedTransmission, BIN);Serial.print(" -> "); Serial.println(configuration.OPTION.getFixedTransmissionDescription());
Serial.print(F("OptionPullup BIN : ")); Serial.print(configuration.OPTION.ioDriveMode, BIN);Serial.print(" -> "); Serial.println(configuration.OPTION.getIODroveModeDescription());
Serial.print(F("OptionWakeup BIN : ")); Serial.print(configuration.OPTION.wirelessWakeupTime, BIN);Serial.print(" -> "); Serial.println(configuration.OPTION.getWirelessWakeUPTimeDescription());
Serial.print(F("OptionFEC BIN : ")); Serial.print(configuration.OPTION.fec, BIN);Serial.print(" -> "); Serial.println(configuration.OPTION.getFECDescription());
Serial.print(F("OptionPower BIN : ")); Serial.print(configuration.OPTION.transmissionPower, BIN);Serial.print(" -> "); Serial.println(configuration.OPTION.getTransmissionPowerDescription());
Serial.println("----------------------------------------");
}
void printModuleInformation(struct ModuleInformation moduleInformation) {
Serial.println("----------------------------------------");
Serial.print(F("HEAD BIN: ")); Serial.print(moduleInformation.HEAD, BIN);Serial.print(" ");Serial.print(moduleInformation.HEAD, DEC);Serial.print(" ");Serial.println(moduleInformation.HEAD, HEX);
Serial.print(F("Model no.: ")); Serial.println(moduleInformation.model, HEX);
Serial.print(F("Version : ")); Serial.println(moduleInformation.version, HEX);
Serial.print(F("Features : ")); Serial.println(moduleInformation.features, HEX);
Serial.println("----------------------------------------");
}