|
|

楼主 |
发表于 2015-12-21 14:06:55
|
显示全部楼层
Arduino Uno代码如下:
- #include "Arduino.h"
- #include "serialReadPMValue.h"
- #include <DHT22.h>
- #include <stdio.h>
- #include <SPI.h>
- #include <Ethernet.h>
- // 数字PIN 3 --> LED 红
- // 数字PIN 7 --> DHT22温湿度
- // 数字PIN 9 --> 蜂鸣器
- // 模拟PIN 0 --> 模拟声音
- // 模拟PIN 3 --> LX1972环境光
- uint16_t PM01Value = 0; // PM1.0
- uint16_t PM2_5Value = 0; // PM2.5
- uint16_t PM10Value = 0; // PM10
- #define receiveDatIndex 32
- uint8_t receiveDat[receiveDatIndex];
- #define DHT22_PIN 7
- DHT22 myDHT22(DHT22_PIN);
- int valLight = 0; // 光线Value
- int valSound = 0; // 声音Value
- byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
- IPAddress server(116, 236, 162, 186); // 项目服务器公网IP
- IPAddress ip(192, 168, 1, 76); // 内网IP(该终端设备的内网IP)
- EthernetClient client;
- String myTempPM01 = "";
- String myTempPM25 = "";
- String myTempPM10 = "";
- String myTempLight = "";
- String myTempSound = "";
- String myTempTemp = "";
- String myTempHumi = "";
- void setup()
- {
- Serial.begin(9600);
- Ethernet.begin(mac, ip);
- pinMode(3, OUTPUT);
- pinMode(9, OUTPUT);
- }
- void loop()
- {
- int length = serialRead(Serial, receiveDat, receiveDatIndex, 5);
- int checkSum = checkValue(receiveDat, receiveDatIndex);
- if(length&&checkSum)
- {
- PM01Value = transmitPM01(receiveDat); //取PM1.0
- PM2_5Value = transmitPM2_5(receiveDat); //取PM2.5
- PM10Value = transmitPM10(receiveDat); //取PM10
- }
- static unsigned long OledTimer = millis();
- if (millis() - OledTimer >= 5000)
- {
- OledTimer=millis();
-
- cDHT22();
-
- valLight = analogRead(3); // 取光线Value
- valSound = analogRead(0); // 取声音Value
-
- digitalWrite(3, HIGH); // LED点亮
- digitalWrite(9, HIGH); // 蜂鸣器鸣叫
- Serial.println("");
- myTempPM01 = String(PM01Value); // 将int转换成String
- myTempPM25 = String(PM2_5Value);
- myTempPM10 = String(PM10Value);
- myTempLight = String(valLight);
- myTempSound = String(valSound);
-
- Serial.println("PM01:" + myTempPM01 + "ug/m3, PM25:" + myTempPM25 + "ug/m3, PM10:" + myTempPM10 + "ug/m3");
- Serial.println("Temperature:" + myTempTemp + "C, Humidity:" + myTempHumi + "%");
- Serial.println("Light:" + myTempLight + ", Sound:" + myTempSound);
-
- if (client.connect(server, 80)) // 提交的项目服务器80端口
- {
- Serial.println("Connected");
- // HTTP请求,携带7个参数
- client.println("POST [url]http://116.236.162.186/servlet/mypm?unoVar01=[/url]" + myTempPM01 + "&unoVar02=" + myTempPM25 + "&unoVar03=" + myTempPM10 + "&unoVar04=" + myTempTemp + "&unoVar05=" + myTempHumi + "&unoVar06=" + myTempLight + "&unoVar07=" + myTempSound + " HTTP/1.1");
- client.println("Host:116.236.162.186");
- client.println();
- }
- else
- {
- Serial.println("connection failed");
- }
- Serial.println();
- client.stop();
- }
-
- digitalWrite(3, LOW);
- digitalWrite(9, LOW);
- }
- void cDHT22()
- {
- DHT22_ERROR_t errorCode;
- errorCode = myDHT22.readData();
- if (errorCode == DHT_ERROR_NONE)
- {
- myTempTemp = String(myDHT22.getTemperatureC()); //取温度
- myTempHumi = String(myDHT22.getHumidity()); //取湿度
- }
- }
复制代码 |
|