รบกวนท่านผู้รู้ช่วยน่อย ใช้ Lora wifi และ เกีด Errer : Board heltec_wifi_kit_32 (platform esp32, package esp32) is unknown

ประมาณ นี้ครับ

เลือกบอร์ดยังครับ

เลือกแล้วครับ แต่ก่อนได้ แต่ตอนนี้เป๋นอะไร ไม่รุ้

image

หรือผิดทีตรงนี้

ภาพไม้ชัดเลยครับ

image

เคยใช้ esp8266 มาก่อนแล้วย้ายมา ใช้ esp32 ใช่ไหมครับ

ครับผม แต่ตอนนี้ Error แบบนี้

วางโค้ตที่ใช้นี้หน่อยครับ ฟังก์ชัน บางอันน่าจะหาย

ครับผม ได้แล้วครับ แต่ตอนนี้ลอง ขา ADC ไช้ไม่ได้ มันไม่อ่านเลย ได้ค่าเป็น 0

แก้ไขอะไรไปหรอครับถึงใช้ได้ แนะแนวทางหน่อยครับ

ลองหาอะไร confirm input ก่อนครับว่าได้เท่าไหร่

image

เปลี่ยนใช้ ไลบรารี ตัวนี้

1 Likes

ส่วนที่ Error แก้ที่ if (!LoRa.begin(BAND) เป็น if (!LoRa.begin(BAND,PABOOST)) เพราะเป็น double ครับ

รบกวนน่อย ครับคือผมส่งและรับค่าหลายค่าเชั่น ค่าแรงดัน หรือ อะนาลัอก Phase_A, Phase_B, Phase_C ต้องกำนดยังไง ทำยังไงก็ไม่ได้ ช่วยน่อย ขอบคุณครับ

กำหนดในไหนครับ จะนำไปกำหนดในฟังก์ชันไหน

คือ ผมอยาทำละบบระบุเฟสของระบบไฟฟ้า 0.4kV โดยใช้ LoRa wifi เป็นตัวส่ง/ตัวรับ โดยแยกเป็นเฟส A, B & C คับเพื่อให้ตรวจได้ว่าตัวไหน เป็นอะไร ตอนนี้ตัวส่ง ส่งไปได้ แต่ทีตัวรับแยกไม่ได้ และ ไม่รุ้ว่าจะต้องกำหนดตัวรับยังเพื่อจะนำไปคำนวณต่อ

// ตัวอย่างตัวส่ง
//#include<heltec.h>
#include <U8x8lib.h>
#include <LoRa.h>
#include <SPI.h>
String receivedText;
String receivedRssi;

// WIFI_LoRa_32 ports

// GPIO5  -- SX1278's SCK
// GPIO19 -- SX1278's MISO
// GPIO27 -- SX1278's MOSI
// GPIO18 -- SX1278's CS
// GPIO14 -- SX1278's RESET
// GPIO26 -- SX1278's IRQ(Interrupt Request)

#define Phase_A 37
#define SS      18
#define RST     14
#define DI0     26
#define BAND    433E6
#define PABOOST true



// the OLED used
U8X8_SSD1306_128X64_NONAME_SW_I2C u8x8(15,4,16);
//double BAND  =  433E6;
int counter = 0;
int Value_A = 0;
void setup() {
  pinMode(25,OUTPUT); //Send success, LED will bright 1 second

  Serial.begin(115200);
  delay(1000);

  u8x8.begin();
  u8x8.setFont(u8x8_font_chroma48medium8_r);
  
  Serial.println("LoRa Sender");
  u8x8.drawString(0, 1, "LoRa Sender");
  
  SPI.begin(5,19,27,18);
  LoRa.setPins(SS,RST,DI0);
  
  LoRa.setTxPower(20);
  LoRa.setSpreadingFactor(12);
  LoRa.setCodingRate4(5);
  LoRa.setSignalBandwidth(125E3); //
  LoRa.setPreambleLength(8);

  if (!LoRa.begin(BAND,PABOOST)) {
    Serial.println("Starting LoRa failed!");
    u8x8.drawString(0, 1, "Starting LoRa failed!");
    while (1);
  }
  Serial.println("LoRa Initial OK!");
}

void loop() {
  
   Value_A = analogRead(Phase_A);
   //Serial.print(Value_A);
  
  Serial.print("Sending packet: ");
  /////////////////////////////////
  u8x8.drawString(0, 4, "PacketID");
  Serial.println(counter);
  String txt = String(counter);
  char currentid[5];
  txt.toCharArray(currentid, 64);
  u8x8.drawString(9, 4, currentid);
  /////////////////////////////////
  Serial.print("ADC: ");
  u8x8.drawString(0, 6, "ADC");
  Serial.println(Value_A);
  String txt1 = String(Value_A);
  char currentid1[5];
  txt1.toCharArray(currentid1, 64);
  u8x8.drawString(5, 6, currentid1);//  6 >> 3
 
  //Serial.println(" ");
  //u8x8.drawString(0, 5, "ADC");
  //LoRa.print(Phase_A);
  // send packet
  LoRa.beginPacket();
  //LoRa.print("hello ");
  LoRa.print(counter);
  LoRa.println(Value_A); 
  LoRa.endPacket();
   //u8x8.drawString(0, 5, "Payload");
  // u8x8.drawString(9, 5, "LORA");
  
  delay(10);
  
  counter++;
  digitalWrite(25, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(100);              // wait for a second
  digitalWrite(25, LOW);    // turn the LED off by making the voltage LOW
  delay(100);              // wait for a second
  
  //delay(3000);
// ตัวอย่างตัวรับ
#include <U8x8lib.h>
#include <LoRa.h>

String receivedText;
String receivedText1;

// Pin definetion of WIFI LoRa 32
#define SCK     5    // GPIO5  -- SX127x's SCK
#define MISO    19   // GPIO19 -- SX127x's MISO
#define MOSI    27   // GPIO27 -- SX127x's MOSI
#define SS      18   // GPIO18 -- SX127x's CS
#define RST     14   // GPIO14 -- SX127x's RESET
#define DI0     26   // GPIO26 -- SX127x's IRQ(Interrupt Request)

#define BAND    433E6  //you can set band here directly,e.g. 868E6,915E6
#define PABOOST true

// the OLED used
U8X8_SSD1306_128X64_NONAME_SW_I2C u8x8(15,4,16);

void setup() {

  pinMode(25,OUTPUT); //Send success, LED will bright 1 second

  SPI.begin(5, 19, 27, 18);
  LoRa.setPins(SS, RST, DI0);

  Serial.begin(115200);
  delay(1000);

  LoRa.setTxPower(20);
  LoRa.setSpreadingFactor(12);
  LoRa.setCodingRate4(5);
  LoRa.setSignalBandwidth(125E3);
  LoRa.setPreambleLength(8);

  u8x8.begin();
  u8x8.setFont(u8x8_font_chroma48medium8_r);

  Serial.println("LoRa Receiver");
  u8x8.drawString(0, 0, "LoRa Receiver"); // 0 
  //u8x8.drawString(0, 1, "ID");  


  if (!LoRa.begin(BAND,PABOOST)) {
    Serial.println("Starting LoRa failed!");
    u8x8.drawString(0, 1, "Starting LoRa failed!");
    while (1);
  }
}

void loop() {

  // try to parse packet
  int packetSize = LoRa.parsePacket();
  if (packetSize) {
    // received a packet
    Serial.print("Received packet '");
    //u8x8.drawString(0, 1, "ID");

  String incoming = "";
  //String incomingADC = "";

  while (LoRa.available())
  {
    incoming += (char)LoRa.read();
    //incomingADC += (char)LoRa.read();
  }

    receivedText1 = incoming;
//    char currentid[64];
//    receivedText.toCharArray(currentid, 64);
//    u8x8.drawString(4, 1, currentid);
//    //print Received Text
//    Serial.print(receivedText);

    // print RSSI of packet
    Serial.print(" ADC ");
   // Serial.println(LoRa.packetRssi());
    u8x8.drawString(0, 3, "ADC");
    //receivedRssi = LoRa.packetRssi();
    //receivedText1 = incoming;
    //receivedText1 = incomingADC;
    char currentid1[64];
    receivedText1.toCharArray(currentid1, 64);
    u8x8.drawString(5, 3, currentid1);
    Serial.print(receivedText1);
/////////////////////////////////////////////////////////////////
    receivedText = incoming;
   
    u8x8.drawString(0, 4, "ADC1");
    //receivedRssi = LoRa.packetRssi();
    //receivedText1 = incoming;
    //receivedText1 = incomingADC;
    char currentid[64];
    receivedText.toCharArray(currentid, 64);
    u8x8.drawString(5, 4, currentid);
    Serial.print(receivedText);


////////////////////////////////////////////////////////////////
    

    digitalWrite(25, HIGH);   // turn the LED on (HIGH is the voltage level)
    delay(100);              // wait for a second
    digitalWrite(25, LOW);    // turn the LED off by making the voltage LOW
    delay(100);              // wait for a second
  }

}

อาจจะตอบช้าไปหน่อยนะครับ ช่วงนี้ใช้เวลากับการแก้ปัญหาระบบหลังบ้านภายในเว็บอยู่นะครับ เลยตอบได้แค่กระทู้ทั่วๆ ไป เดียวจะหาเวลามาเช็คดูให้นะครับ ช่วงนี้ลอง หาข้อมูลเพิ่มเติมดูก่อน เอามาแปะไว้ในนี้ก็ได้จะได้ช่วยๆ กันวิเคราะห์ครับ