Forum Replies Created

Viewing 4 posts - 976 through 979 (of 979 total)
  • Author
    Posts
  • Renzo Mischianti
    Keymaster

      Hi, I can’t check the sketch now, but please refer to my site, i update all the schema.
      In the next few days I check all with my Arduino mega.
      Thanks to write, and please wait.
      Bye Renzo

      in reply to: EByte e32 How to Send Message use JSON Format? #4415
      Renzo Mischianti
      Keymaster

        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("----------------------------------------");
        
        }
        in reply to: EByte e32 How to Send Message use JSON Format? #4413
        Renzo Mischianti
        Keymaster

          Hi taurushappy,
          you can use ArduinoJSON library, (I’m going to publish a post on how to use It).

          You can

            DynamicJsonDocument doc(512);
          
            // Set the values in the document
            doc["energyLifetime"] = 21698620;
            doc["energyYearly"] = 1363005;
          
          String buf;
          serializeJson(doc, buf);
          
          ResponseStatus rs = e32ttl.sendMessage(buf);

          Remember you have a size limit on message size of the lora E32.

          The code is untested, but I think It can be usefully to understand.

          Tell me if It’s ok.

          Bye Renzo

          Renzo Mischianti
          Keymaster

            Hi Michiel

            now It’s possible to check the status with

            if (pcf8574.begin()){
            Serial.println("pcf8574 started!");
            }else{
            Serial.println("pcf8574 not started!");
            }

            or

            if (pcf8574.digitalWrite(P7, startVal)){
            Serial.println("Write ok");
            }else{
            Serial.println("Write not ok");
            }

            It’s also possible to get last writeStatus with

            uint8_t getTransmissionStatusCode() const {
            return transmissionStatus;
            }
            bool isLastTransmissionSuccess(){
            return transmissionStatus==0;
            }

            Bye Renzo

          Viewing 4 posts - 976 through 979 (of 979 total)