电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>如何使用Arduino UNO制作LAN/以太网中继开关

如何使用Arduino UNO制作LAN/以太网中继开关

2022-11-22 | zip | 0.11 MB | 次下载 | 免费

资料介绍

描述

如何使用 Arduino UNO 和以太网屏蔽 ENC28j60 制作 LAN/以太网继电器开关。这是一个简单的教程,通过局域网远程控制。

为了控制它,我使用了 HTTP 和 JSON。电子电路可用作更大系统 IoT 物联网的一部分。

查看更多: 如何使用 Arduino UNO 制作 LAN/以太网中继开关。

第 1 步:组件

第 2 步:示意图

 
pYYBAGN6fT2AS961AAG1_k-bPjk475.jpg
 

第 3 步:以太网模块 ENC28J60

 
poYBAGN6fT-AEpUVAAG2hT07ank659.jpg
两个版本的 ENC28J60 模块
 

从 Arduino UNO 连接 ENC28J60

 
pYYBAGN6fUKATHajAAIvb5DtPq0158.jpg
以太网 ENC28j60
 

 

 
poYBAGN6fUWAPiQDAAI29_AKZrE038.jpg
以太网屏蔽纳米
 

第 4 步:软件

该软件支持两个继电器,但增加它们的数量不是问题。IP 设备永久分配给 192.168.0.101。如果您有更多设备在同一网络上工作,则必须记住唯一的 IP 和 MAC 地址。

#include  // Used for Ethernet  #define PIN_LED 2  #define PIN_RELAY_0 A5 #define PIN_RELAY_1 A4    // **** ETHERNET SETTING **** // Ethernet MAC address - must be unique on your network byte mac[] = { 0x41, 0x44, 0x41, 0x43, 0x48, 0x41 }; //Ethernet interface IP address (unique in your network) IPAddress ip(192, 168, 0, 101);                         //ethernet interface IP port (80 = http) EthernetServer server(80); EthernetClient client; String str = "";   void setup() {   Serial.begin(115200);   Serial.print("START");    pinMode(PIN_RELAY_0, OUTPUT);   pinMode(PIN_RELAY_1, OUTPUT);    SW(0, LOW);   SW(1, LOW);    // start the Ethernet connection and the server:   Ethernet.begin(mac, ip);   server.begin();    Serial.print("IP Address: ");   Serial.println(Ethernet.localIP());   Serial.println(); }  void loop() {   client = server.available();    if( client ){     Serial.println("BEGIN-------------->\n");      boolean currentLineIsBlank = true;     String line = "";     bool firstLine = true;          while (client.connected()){              if (client.available()) {         char c = client.read();         Serial.print(c);          if (c == '\n' && currentLineIsBlank) {           String html = "{";           for(int i=0; i<2; i++){             if( SW_state(i) ){               html += ""sw_"+String(i)+"":1 ";             }else{               html += ""sw_"+String(i)+"":0 ";             }              if( i<1 ) html += ",";           }           html += "}";                      client.println(html);           break;         }          if (c == '\n') {                      currentLineIsBlank = true;           if( firstLine ) {             firstLine = false;             Serial.println("-------------------------------" + line);             if( line.indexOf( "sw_on=0" ) >= 0 ){               SW(0, HIGH);             }else if( line.indexOf( "sw_on=1" ) >= 0 ){               SW(1, HIGH);             }else if( line.indexOf( "sw_off=0" ) >= 0 ) {               SW(0, LOW);             }else if( line.indexOf( "sw_off=1" ) >= 0 ){               SW(1, LOW);             }           }         }else if (c != '\r') {           currentLineIsBlank = false;           if( firstLine ) {             line = line + c;           }         }       }     }      delay(10);      client.stop();     Serial.println("END-------------->\n");   } }  bool SW_state(byte num){   bool val;   switch(num){     case 0: val = digitalRead(PIN_RELAY_0); break;     case 1: val = digitalRead(PIN_RELAY_1); break;   }   return !val; }  void SW(byte num, bool val){   val = !val;   switch(num){     case 0: digitalWrite(PIN_RELAY_0, val); break;     case 1: digitalWrite(PIN_RELAY_1, val); break;   } }

第 5 步:测试

要打开继电器,只需在浏览器中输入链接。http://192.168.0.101/sw_on=1 ,“1”为继电器编号。关闭继电器http://192.168.0.101/sw_off=1 作为响应,我们得到一个 JSON 中继状态{"sw_0":0 ,"sw_1":0 }

 
pYYBAGN6fUiAAeywAADQGdKEVEg941.jpg
打开继电器。
 

 

 
poYBAGN6fUuAWAG7AADR9aPSMKE222.jpg
关闭继电器。
 

 


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1A7159和A7139射频芯片的资料免费下载
  2. 0.20 MB   |  55次下载  |  5 积分
  3. 2PIC12F629/675 数据手册免费下载
  4. 2.38 MB   |  36次下载  |  5 积分
  5. 3PIC16F716 数据手册免费下载
  6. 2.35 MB   |  18次下载  |  5 积分
  7. 4dsPIC33EDV64MC205电机控制开发板用户指南
  8. 5.78MB   |  8次下载  |  免费
  9. 5STC15系列常用寄存器汇总免费下载
  10. 1.60 MB   |  7次下载  |  5 积分
  11. 6模拟电路仿真实现
  12. 2.94MB   |  4次下载  |  免费
  13. 7PCB图绘制实例操作
  14. 2.92MB   |  2次下载  |  免费
  15. 8零死角玩转STM32F103—指南者
  16. 26.78 MB   |  1次下载  |  1 积分

本月

  1. 1ADI高性能电源管理解决方案
  2. 2.43 MB   |  452次下载  |  免费
  3. 2免费开源CC3D飞控资料(电路图&PCB源文件、BOM、
  4. 5.67 MB   |  141次下载  |  1 积分
  5. 3基于STM32单片机智能手环心率计步器体温显示设计
  6. 0.10 MB   |  137次下载  |  免费
  7. 4A7159和A7139射频芯片的资料免费下载
  8. 0.20 MB   |  55次下载  |  5 积分
  9. 5PIC12F629/675 数据手册免费下载
  10. 2.38 MB   |  36次下载  |  5 积分
  11. 6如何正确测试电源的纹波
  12. 0.36 MB   |  19次下载  |  免费
  13. 7PIC16F716 数据手册免费下载
  14. 2.35 MB   |  18次下载  |  5 积分
  15. 8Q/SQR E8-4-2024乘用车电子电器零部件及子系统EMC试验方法及要求
  16. 1.97 MB   |  8次下载  |  10 积分

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935121次下载  |  10 积分
  3. 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
  4. 1.48MB  |  420062次下载  |  10 积分
  5. 3Altium DXP2002下载入口
  6. 未知  |  233088次下载  |  10 积分
  7. 4电路仿真软件multisim 10.0免费下载
  8. 340992  |  191367次下载  |  10 积分
  9. 5十天学会AVR单片机与C语言视频教程 下载
  10. 158M  |  183335次下载  |  10 积分
  11. 6labview8.5下载
  12. 未知  |  81581次下载  |  10 积分
  13. 7Keil工具MDK-Arm免费下载
  14. 0.02 MB  |  73810次下载  |  10 积分
  15. 8LabVIEW 8.6下载
  16. 未知  |  65988次下载  |  10 积分