ESP8266 MODBUS TCP转RTU

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;
    }
  }

由器,然后进行通讯

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值