Arduino+W5100网络扩展版,进行udp通讯

 1 #include<dht11.h>  //引入dth11.h文件
 2 dht11 DHT11;       //定义类
 3 #define DHT11_PIN 2 //传感器输出线接到数字量2#针脚
 4 #include <SPI.h>         // needed for Arduino versions later than 0018
 5 #include <Ethernet.h>
 6 #include <EthernetUdp.h>         // UDP library from: bjoern@cs.stanford.edu 12/30/2008
 7 
 8 byte mac[] = {
 9   0xDE, 0xAD, 0xBF, 0xEF, 0xBF, 0xFB
10 };
11 IPAddress ip(192, 168, 1, 176);
12 
13 unsigned int localPort = 8888;      // local port to listen on
14 char packetBuffer[UDP_TX_PACKET_MAX_SIZE];  //buffer to hold incoming packet,
15 String sendstr="";
16 EthernetUDP Udp;
17 
18 
19 void setup() {
20   Ethernet.begin(mac, ip);
21   Udp.begin(localPort);
22   pinMode(3,INPUT_PULLUP);//3#针脚输入 内置上啦电阻 黄灯状态
23   pinMode(5,INPUT_PULLUP);//5#针脚输入 内置上啦电阻 绿灯状态
24   pinMode(6,INPUT_PULLUP);//6#针脚输入 内置上啦电阻 红灯状态
25   pinMode(7,INPUT_PULLUP);//7#针脚输入 内置上啦电阻 电源状态
26 
27 
28   Serial.begin(9600);
29 }
30 
31 void loop() {
32 
33     int chk = DHT11.read(DHT11_PIN);//读取2#针脚数据
34     int D3=digitalRead(3);//读取开关量3#针脚 黄灯状态
35     int D5=digitalRead(5);//读取开关量5#针脚 绿灯状态
36     int D6=digitalRead(6);//读取开关量6#针脚 红灯状态
37     int D7=digitalRead(7);//读取开关量7#针脚 电源状态
38 
39 
40     
41     //温湿度数值
42     int shidu =DHT11.humidity;
43     int wendu=DHT11.temperature;
44     //电流
45     int dianliu = analogRead(0);
46     //电压
47     int dianya = analogRead(1);
48     
49     //温度
50     sendstr += String(wendu);
51     sendstr+=",";
52     //湿度
53     sendstr += String(shidu);
54     //黄灯
55     sendstr+=",";
56     sendstr += String(D3);
57     sendstr+=",";
58     //绿灯
59      sendstr += String(D5);
60     //红灯
61     sendstr+=",";
62     sendstr += String(D6);
63     //电源状态
64     sendstr+=",";
65     sendstr += String(D7);
66     //电流
67     sendstr+=",";
68     sendstr += String(dianliu);
69     //电压
70     sendstr+=",";
71     sendstr += String(dianya);
72   
73     int packetSize = Udp.parsePacket();
74     Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
75     if (packetSize ) {
76 
77         Udp.read(packetBuffer, UDP_TX_PACKET_MAX_SIZE);
78         if (0 == strncmp(packetBuffer, "get_info", 7))
79         {
80            
81             char writestr [sendstr.length()];  
82             sendstr.toCharArray(writestr,sendstr.length() + 1); 
83             Serial.println(packetBuffer);
84             delay(3);
85             Udp.write(writestr);
86   
87         }
88         Udp.endPacket();
89 
90     }
91   
92     sendstr="";
93 
94     delay(50);
95 }

 

posted @ 2017-06-29 09:16  zbchls  阅读(1965)  评论(0编辑  收藏  举报