网页开发平台的运用-使用Arduino实现ModbusTCP控制

  Arduino是被广泛使用的电子原型平台,包含硬件(各种型号的开发板)与软件(Arduino IDE),Arduino实现环境感知功能依赖于各种传感器(温湿度传感器、空气质量传感器等),通过传感器的数据感知,Arduino可通过灯光,转子等装置来对环境做出反馈或改变。

  Modbus是工业电子设备间通信的业界标准,可通过串口、以太网以及其他支持互联网协议的网络进行通信。

  ModbusTCP是利用以太网TCP/IP实现的Modbus通信协议,我们可以使用带网络扩展板的Arduino开发板来制作Modbus从机。通过Modbus协议的通讯指令,我们向Arduino中的寄存器发送写指令,通过改变寄存器的状态实现灯光的控制。

  接下来我们开始组装Arduino,使用到的零件如下:

零件名称数量
1Arduino UNO R3 开发板1
2Arduino Ethernet W5100 网络扩展板1
3USB数据线1
4网线1
5面包板1
6杜邦线若干
7LED灯1
8220欧姆电阻1

  Arduino开发板与Ethernet W5100网络扩展板组装完成后的外观如下图所示。
在这里插入图片描述
在这里插入图片描述
  我们设计的程序的流程如下:
在这里插入图片描述
  使用Arduino IDE 编译并上传以下Arduino程序。

// 采用 MyArduinoProjects Modbus TCP 链接库
// http://myarduinoprojects.com/modbus.html
#include <SPI.h>
#include <Ethernet.h>

#include "MgsModbus.h"                                //引入Modbus TCP 链接库
MgsModbus Mb;

// 设置网络 (网络扩充卡 MAC 可自行修改 +1 避免冲突)
byte mac[] = {0x90, 0xA2, 0xDA, 0x0E, 0x94, 0xB6 };     //设置Arduino设备的网卡MAC地址
IPAddress ip(192, 168, 1, 162);     //设置Arduino设备的网络IP地址
IPAddress gateway(192, 168, 1, 1);  //设置网关的IP地址
IPAddress subnet(255, 255, 255, 0); //设置子网掩码

#define LED_PIN 8                                    //定义LED PIN为8
int LedSwitch=0;

void setup() {
   Serial.begin(9600);
   Ethernet.begin(mac, ip, gateway, subnet);         // 启动网络
   Serial.println("网络已经开通"); 

   //设置要使用的缓存器地址
   //0 1 2 3 4 是 Holding 缓存器的顺序,其地址分别是10000,10001,10002,10003,10004
   // 新增缓存器   mb.MbData(i);   
   Mb.MbData[0] = 0;                                 // 0=关闭LED灯 1=打开LED灯
   pinMode(LED_PIN, OUTPUT);                         // 设定脚位 PIN 8为输出模式
}
 
void loop() {
   LedSwitch=Mb.MbData[0];                           // 读取数字缓存器的数值
   if (LedSwitch!=0){
       digitalWrite(LED_PIN, HIGH);                  //PIN 8输出为HIGH,LED点亮
   }
   else {    
   digitalWrite(LED_PIN, LOW);                       //PIN 8输出为LOW,LED熄灭
   }
   delay(500);                                       //延时 0.5秒
   Mb.MbsRun();                                      //呼叫 Modbus   
}

  上述设计完成后,我们使用FastWeb网页开发平台快速设计界面。

在这里插入图片描述
  点击右侧的开关图像,开关打开,上方的灯泡切换为亮灯的状态,同时连接Arduino开发板的LED发光二极管处于点亮的状态;在亮灯状态下,点击右侧的开关图像,开关关闭,上方的灯泡切换为灯灭的状态,同时连接Arduino开发板的LED发光二极管处于关闭的状态。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值