时间:2017-05-17 20:35来源:未知 作者:admin 点击:
103
次
如何使局域网/以太网使用Arduino Uno和继电器开关屏蔽ENC28J60以太网。 这是一个简单的教程,在局域网内远程控制。 控制我使用HTTP和JSON。 这个电路可以作为一个大的系统的一部分,物联网。 这篇文章还可以在这里看到: 如何使局域网/以太网使用Arduino Uno
如何使局域网/以太网使用Arduino Uno和继电器开关屏蔽ENC28J60以太网。这是一个简单的教程,在局域网内远程控制。控制我使用HTTP和JSON。这个电路可以作为一个大的系统的一部分,物联网。
这篇文章还可以在这里看到:
如何使局域网/以太网使用Arduino Uno继电器开关
步骤1:成分
-
微控制器
-
继电器模块250v 10a
-
一些电线
-
以太网盾纳米或ENC28J60以太网
步骤3:ENC28J60以太网模块
连接从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:测试
打开继电器,只要输入链接在浏览器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) |
|