ModbusV103.ino.nodemcu.zip (220 K) 下载次数:64 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重新編輯 ]