Forum Replies Created

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • in reply to: ESP32 – Ebyte LORA E32 433T30D V8 #32047
    petoga
    Participant

      Hi Renzo,
      They have been communicated each other, I change UART_BPS_RATE_9600 for serial speed and configuration.SPED.uartBaudRate = 0x03 and it works.
      I try to set higher like 19200 for all but after upload it in restart loop. Just 9600 is suitable, I dont know why.
      Thank Renzo!

      in reply to: ESP32 – Ebyte LORA E32 433T30D V8 #32044
      petoga
      Participant

        Hi Renzo,
        Thanks for your support, I have update my code with your comment, I also check voltage of all lora pin, I get M0 = M1 = 0v, AUX = 3.3v, Tx = 3.3v, Rx = 3.3v, for both module. But can not get receive data from both.
        AUX, RX, TX I use resistor 4.7k to 3.3v and M1, M0 use 1k ohm to GND (cause if dont use resistor it always 3.3v even though I set it LOW . Serial output as below:
        CHECK: No_data
        No_data
        Pin GPIO27: 0.00 V
        Pin GPIO33: 0.00 V
        Message sent successfully!
        Module acknowledged with response:
        Waiting for incoming data…
        Data available: 0
        CHECK: No_data

        Below is update code:
        `#include <Wire.h>
        #include <HardwareSerial.h>
        #include “LoRa_E32.h”
        //#define LED 14
        #define BUTT 12
        #define M1 33
        #define M0 27
        int counting = 0;
        #define RX_ESP 16 // RXD2 16
        #define TX_ESP 17 // TXD2 17
        #define AUX 5
        HardwareSerial mySerial(2);
        //LoRa_E32(byte txE32pin, byte rxE32pin, HardwareSerial* serial, byte auxPin, byte m0Pin, byte m1Pin, UART_BPS_RATE bpsRate, uint32_t serialConfig = SERIAL_8N1);
        LoRa_E32 e32ttl( RX_ESP ,TX_ESP, &mySerial, AUX, M0, M1,UART_BPS_RATE_9600,SERIAL_8N1);
        // ————————————-
        void printParameters(struct Configuration configuration);
        void printModuleInformation(struct ModuleInformation moduleInformation);
        void SendData(String str);
        void SendData(String str);
        void setMode(int m0, int m1);
        void waitForAux();
        String revData();
        void voltage();
        void printParameters(struct Configuration configuration);
        void printModuleInformation(struct ModuleInformation moduleInformation);
        //The setup function is called once at startup of the sketch
        //
        const int adcPins[] = {27, 33 }; //32, 33, 34, 35, 36, 39, 25, 26, 0, 2, 4, 12, 13, 14, 15, 27};
        //const int adcPins[] = { 16, 17, 5, 27, 33 };
        const int numPins = sizeof(adcPins) / sizeof(adcPins[0]);
        void setup()
        {
        Serial.begin(115200);
        //pinMode(LED, OUTPUT);
        pinMode(BUTT, INPUT);
        pinMode(M0, OUTPUT);
        pinMode(M1, OUTPUT);
        pinMode(AUX, INPUT);
        //digitalWrite(LED, LOW);
        setMode(LOW, LOW);
        digitalWrite(M0, LOW);
        digitalWrite(M1, LOW);
        //Serial1.begin(9600, SERIAL_8N1, RX_PIN, TX_PIN);
        mySerial.begin(9600, SERIAL_8N1, RX_ESP, TX_ESP);
        e32ttl.begin();
        waitForAux();
        delay(100);
        //
        ResponseStructContainer info = e32ttl.getModuleInformation();
        //
        delay(100);
        ResponseStructContainer c;
        c = e32ttl.getConfiguration();
        Configuration configuration = *(Configuration*) c.data;
        configuration.ADDL = 0x02;
        configuration.ADDH = 0x00;
        configuration.CHAN = 0x17;
        configuration.SPED.uartBaudRate = 0x04 ;//19200;
        configuration.SPED.airDataRate = 0x03; //2.4k
        configuration.OPTION.fec = 1;
        configuration.OPTION.transmissionPower = 0;
        configuration.OPTION.wirelessWakeupTime = 0;
        configuration.SPED.uartParity = 0;
        configuration.OPTION.ioDriveMode = IO_D_MODE_PUSH_PULLS_PULL_UPS; // Pull-up management
        Serial.print(F(“OptionFEC : “)); Serial.print(configuration.OPTION.fec, BIN);Serial.print(” -> “); Serial.println(configuration.OPTION.getFECDescription());
        Serial.print(F(“OptionPower : “)); Serial.print(configuration.OPTION.transmissionPower, BIN);Serial.print(” -> “); Serial.println(configuration.OPTION.getTransmissionPowerDescription());
        configuration.OPTION.fixedTransmission = FT_FIXED_TRANSMISSION;
        e32ttl.setConfiguration(configuration, WRITE_CFG_PWR_DWN_SAVE);
        Serial.println(“LoRa Sender Initialized”);
        c.close();
        printParameters(configuration);
        // —————————
        //

        digitalWrite(M0, LOW);
        digitalWrite(M1, LOW);
        }

        // The loop function is called in an endless loop
        void loop()
        {
        voltage();
        // ResponseStatus rs = e32ttl.sendFixedMessage(0,3,17, “HELLO LORA_3”);
        ResponseStatus rs = e32ttl.sendBroadcastFixedMessage(0x17, “HELLO LORA_3”);
        if (rs.code == 1) {
        Serial.println(“Message sent successfully!”);
        ResponseContainer response = e32ttl.receiveMessage();
        if (response.status.code == 1) {
        Serial.print(“Module acknowledged with response: “);
        Serial.println(response.data);
        } else {
        Serial.println(“No acknowledgment received.”);
        }
        } else {
        Serial.println(“Failed to send message.”);
        }
        //
        String res2 = revData();
        delay(100);
        Serial.println(“CHECK: ” + res2);
        if (res2.substring(0,12) == “HELLO LORA_2”) {
        Serial.println(“NHAN: ” + res2);
        delay(50);
        }
        else {
        Serial.println(res2);
        }
        delay(1000);
        //

        }
        //
        void printParameters(struct Configuration configuration) {
        Serial.println(“—————————————-“);

        Serial.print(F(“HEAD : “)); 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 : “)); Serial.println(configuration.ADDH, HEX);
        Serial.print(F(“AddL : “)); Serial.println(configuration.ADDL, HEX);
        Serial.print(F(“Chan : “)); Serial.print(configuration.CHAN, HEX); Serial.print(” -> “); Serial.println(configuration.getChannelDescription());
        Serial.println(F(” “));
        Serial.print(F(“SpeedParityBit : “)); Serial.print(configuration.SPED.uartParity, BIN);Serial.print(” -> “); Serial.println(configuration.SPED.getUARTParityDescription());
        Serial.print(F(“SpeedUARTDatte : “)); Serial.print(configuration.SPED.uartBaudRate, BIN);Serial.print(” -> “); Serial.println(configuration.SPED.getUARTBaudRate());
        Serial.print(F(“SpeedAirDataRate : “)); Serial.print(configuration.SPED.airDataRate, BIN);Serial.print(” -> “); Serial.println(configuration.SPED.getAirDataRate());

        Serial.print(F(“OptionTrans : “)); Serial.print(configuration.OPTION.fixedTransmission, BIN);Serial.print(” -> “); Serial.println(configuration.OPTION.getFixedTransmissionDescription());
        Serial.print(F(“OptionPullup : “)); Serial.print(configuration.OPTION.ioDriveMode, BIN);Serial.print(” -> “); Serial.println(configuration.OPTION.getIODroveModeDescription());
        Serial.print(F(“OptionWakeup : “)); Serial.print(configuration.OPTION.wirelessWakeupTime, BIN);Serial.print(” -> “); Serial.println(configuration.OPTION.getWirelessWakeUPTimeDescription());
        Serial.print(F(“OptionFEC : “)); Serial.print(configuration.OPTION.fec, BIN);Serial.print(” -> “); Serial.println(configuration.OPTION.getFECDescription());
        Serial.print(F(“OptionPower : “)); Serial.print(configuration.OPTION.transmissionPower, BIN);Serial.print(” -> “); Serial.println(configuration.OPTION.getTransmissionPowerDescription());
        Serial.println(“—————————————-“);
        }

        void SendData(String str) {
        String s = str + “: ” + String(counting);
        counting++;
        ResponseStatus rs = e32ttl.sendBroadcastFixedMessage(0x17, s);
        //ResponseStatus rs = e32ttl.sendFixedMessage(0x00, 0x03, 0x17, s);
        Serial.println(“Code: ” + String(rs.code));
        if (rs.code != 1) {
        Serial.println(“Error Ping: ” + rs.getResponseDescription());
        }
        else {
        Serial.println(“Message have been send: ” + s + ” ” + rs.getResponseDescription());
        }
        // Serial.println(String(rs.code) + “:” + rs.getResponseDescription());
        delay(200);
        }

        String revData() {
        String res =””;
        Serial.println(“Waiting for incoming data…”);
        Serial.println(“Data available: ” + String(e32ttl.available()));
        if (e32ttl.available() > 0){
        ResponseContainer rs = e32ttl.receiveMessage();
        if (rs.status.code == 1) {
        String data = rs.data;
        Serial.println(“Received: ” + data);
        return data;
        }
        }
        return “No_data”;
        }

        void setMode(int m0, int m1) {
        digitalWrite(M0, m0);
        digitalWrite(M1, m1);
        delay(10);
        }

        void waitForAux() {
        while (digitalRead(AUX) == LOW) {
        delay(1);
        }
        }

        void voltage() {
        for (int i = 0; i < numPins; i++) {
        int pin = adcPins[i];
        int adcValue = analogRead(pin); // Đọc giá trị ADC
        float voltage = adcValue * 3.3 / 4095.0; // Chuyển đổi giá trị ADC sang điện áp
        Serial.print(“Pin GPIO”);
        Serial.print(pin);
        Serial.print(“: “);
        Serial.print(voltage);
        Serial.println(” V”);
        }
        }
        Please help! Thank Renzo!

        Attachments:
        You must be logged in to view attached files.
      Viewing 2 posts - 1 through 2 (of 2 total)