分享

如何使局域网/以太网使用Arduino Uno继电器开关

 共同成长888 2020-06-23
时间:2017-05-17 20:35来源:未知 作者:admin 点击: 103 次
如何使局域网/以太网使用Arduino Uno和继电器开关屏蔽ENC28J60以太网。 这是一个简单的教程,在局域网内远程控制。 控制我使用HTTP和JSON。 这个电路可以作为一个大的系统的一部分,物联网。 这篇文章还可以在这里看到: 如何使局域网/以太网使用Arduino Uno
如何使局域网/以太网使用Arduino Uno继电器开关

如何使局域网/以太网使用Arduino Uno和继电器开关屏蔽ENC28J60以太网。这是一个简单的教程,在局域网内远程控制。控制我使用HTTP和JSON。这个电路可以作为一个大的系统的一部分,物联网。

这篇文章还可以在这里看到:

如何使局域网/以太网使用Arduino Uno继电器开关
如何使局域网/以太网使用Arduino Uno继电器开关

步骤1:成分

  • 微控制器
  • 继电器模块250v 10a
  • 一些电线
  • 以太网盾纳米ENC28J60以太网

步骤2:示意图

如何使局域网/以太网使用Arduino Uno继电器开关

步骤3:ENC28J60以太网模块

如何使局域网/以太网使用Arduino Uno继电器开关
连接从Arduino Uno ENC28J60。
Arduino Uno 以太网盾纳米 ENC28J60以太网
13 / SCK引脚 D13 SCK
12针/味噌 D12 所以
引脚11 / 2 D11
10针/不锈钢 D10 反恐精英
GND GND GND
3v3 VCC VCC

步骤4:软件

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

 

#include <UIPEthernet.h> // 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,低);
 } } } else if(
 
!=“R”){ 
 currentlineisblank = false;
如果(一线){ 
线=线+ C;
 } } } } 
 
 
 
 
延迟(10);
 
客户端。stop();
串行out.println(“端-------------- > \n”);} } 
 
 
 
布尔sw_state(字节数){ 
 bool val;
开关(NUM){ 
案例0:val = //读出数字接口的值(pin_relay_0);断裂;
案例1:val = //读出数字接口的值(!瓦尔;
 } 
 
空隙SW(字节数、bool val){ 
 Val!瓦尔;
开关(NUM){ 
案例0:digitalwrite(pin_relay_0,Val);断裂;
案例1:digitalwrite(pin_relay_1,Val);断裂;
下载源代码:arduinounoethernet.ino

步骤5:测试

如何使局域网/以太网使用Arduino Uno继电器开关

打开继电器,只要输入链接在浏览器HTTP:/ / 192.168.0.101 / sw_on = 1,“1”是中继数。关闭继电器HTTP:/ / 192.168.0.101 / sw_on = 1,对此我们得到一个JSON继电器状态{“sw_0”:0,“sw_1”:0 }。


(责任编辑:admin)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多