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 }