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 }
相關文章
相關標籤/搜索