 ModbusV103.ino.nodemcu.zip (220 K) 下载次数:91
 ModbusV103.ino.nodemcu.zip (220 K) 下载次数:91  ESP8266 MODBUS TCP轉RTU //本程序用來作為MODBUS TCP從站(TCP SERVER模式),最多連接4個客戶端,收到MODBUS TCP
//數據后軟串口轉發出去,串口采用MODBUS RTU模式,9600 N81格式,D1發送,D2接收。
//LED聯網時慢閃,配網時快閃。有客戶端接入后偶爾閃一下,無客戶端接入的話,長亮。
//8266采用STA+AP模式,電腦可以兩種連接方式和8266通訊。
//1,電腦先連上8266的AP,然后電腦再作為客戶端連接8266的SERVER進行通訊
//2,電腦和8266都連上路
#include "main.h" 
#define  VERSION   "V1.03" 
void Led_On(void)                             //模塊上二極管亮
{
   digitalWrite(Led, LOW);                    //高為關,低為開
   Led_State = true;
} 
void Led_Off(void)                            //模塊上二極管滅
{
   digitalWrite(Led, HIGH);                   //高為關,低為開
   Led_State = false;
} 
bool autoConfig()                             //用之前的配網參數自動聯網,聯網時LED慢閃
{
  WiFi.mode(WIFI_STA);                        //STA模式
  WiFi.begin();
  for (int i = 0; i < 20; i++)                //20S還沒連上網絡的話返回錯誤
  {
    int wstatus = WiFi.status();              //讀取網絡狀態
    if (wstatus == WL_CONNECTED)              //已經連上的話打印信息
    {
      Serial.println("AutoConfig Success");
      Serial.printf("SSID: %s\r\n", WiFi.SSID().c_str());
      Serial.printf("PSW:  %s\r\n", WiFi.psk().c_str());
      Serial.print("IP:   ");
      Serial.println(WiFi.localIP());         //得到IP地址
      return true;
    }
    else
    {
      Serial.print("AutoConfig Waiting......");
      Serial.println(wstatus);
      delay(1000);
      Led_Flag = !Led_Flag;
      digitalWrite(Led, Led_Flag);
    }
  }
  Serial.println("AutoConfig Faild!" );
  return false;
} 
void smartConfig()                            //一鍵配網函數,這時LED快閃
{
  WiFi.mode(WIFI_STA);
  Serial.println("\r\nWaiting for Smartconfig");
  delay(2000);
  WiFi.beginSmartConfig();                    //等待配網 
  while (1)                                   //死循環,直到配好網絡
  {
    Serial.print(".");
    delay(400);
    Led_Flag = !Led_Flag;
    digitalWrite(Led, Led_Flag);
    if (WiFi.smartConfigDone())               //配網完成
    {
      Serial.println("SmartConfig Success");
      Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str());
      Serial.printf("PSW:%s\r\n", WiFi.psk().c_str());
      WiFi.setAutoConnect(true);              //設置自動連接
      break;
    }
  }
由器,然后進行通訊,需要的聯系我免費私發。有些人把代碼買錢,這些人真不要臉。
已經上次bin文件,使用esp826自帶燒寫軟件燒寫,使用安可信廣播配網,,
————————————————                                                 
[ 此帖被402096806在2024-10-19 14:25重新編輯 ]