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 }