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 }