همانطور که میدونید سنسور DHT11 سنسور دما و رطوبت هست ، در این پروژه از بخش رطوبت سنج این سنسور استفاده شده به صورتی که رطوبت اندازه گیری شده به سرور ارسال میشه و از طرف دیگه به کمک برنامه اندروید و از طریق اینترنت میتونید رطوبت رو مشاهده کنید . در این پروژه هم مثل پروژه Motion IoT سنسور حرکت IOT اطلاعات به سایت ic2cloud.com ارسال میشه و سخت افزار استفاده شده در این پروژه هم Arduino آردوینو هست.
سخت افزاری ها استفاده شده در این پروژه Arduino Uno و Arduino Ethernet Shield و Humidity/Temperature Sensor DHT11 هست.در صورتی که با نحوه کارکرد سایت ic2cloud آشنایی اولیه ندارید میتونید به این لینک برید.
![](https://yazdkit.com/wp-content/uploads/2018/09/HumidityIoT-01-Components-1024x768.jpg)
جهت اتصال سنسور رطوبت به برد آردوینو میتونید به صورت زیر عمل کنید و سورس برنامه رو بر اساس آموزش درپروژه Motion IoT سنسور حرکت IOT تغییر بدین و اجرا کنید.
![](https://yazdkit.com/wp-content/uploads/2018/09/HumidityIoT-04-Wiring-Diagram-1024x636.jpg)
![](https://www.ic2cloud.com/documents/10181/11738/Arduino+Humidity+Sensor+DHT11+Pinout.png/5c6cc314-2871-4cdf-a122-0c389fc4b1a6?t=1425485916928) |
Humidity/Temperature Sensor |
Pin |
Description |
GND |
Ground |
Data |
Communication Channel |
۵V |
۵V |
|
بعد از اتصال سنسور طوبت به برد الان نوبت پروگرم کردن برد Arduino میرسه که با سورس زیر میتونید اونو پروگرم کنید.
)
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xDD }; // mac address for ethernet board
EthernetClient eth; // the Ethernet client
char server[] = "www.ic2pro.com"; // Wiring Cloud host name
int port = 80;
String devId = "111-222-333"; // Device ID. CREATE YOUR OWN GUID; Use this http://www.guidgenerator.com/
String auth = "dXNlcjpwYXNzd29yZA=="; // Authentication credentials Create a string from <email_address>:<API_Password> and encode it base64
// The sample here "dXNlcjpwYXNzd29yZA==" is the encoding for "user:password"
#define DHTPin ۸ // pin to connect DHT11 chip's data pin
byte DHTData[5]; // collect the data red from sensor
// Update HUMIDITY value on the server
void sendHumidity(String humidity)
{
Serial.println("Send Humidity...");
if (eth.connect(server, port)) { // initialize HTTP connection on port 80
eth.println("GET http://" + String(server) + ":" + String(port) + "/Wire/connector/set?id=" + devId + "&HUMIDITY=" + humidity + " HTTP/1.1"); // submit HTTP request
eth.println("Authorization: Basic " + auth);
eth.println("Connection: close");
eth.println();
Serial.println("Connected");
}
else {
Serial.println("Connection Error");
}
eth.stop();
}
// Initializa DHT Chip
void initDHT() {
pinMode(DHTPin, OUTPUT);
digitalWrite(DHTPin, HIGH);
}
// read Data from DHT11 chip
byte readDHTData() {
byte dht_in;
byte i;
digitalWrite(DHTPin, LOW);
delay(20);
digitalWrite(DHTPin, HIGH);
delayMicroseconds(40);
pinMode(DHTPin, INPUT);
//delayMicroseconds(40);
dht_in = digitalRead(DHTPin);
if (dht_in) {
return 1;
}
delayMicroseconds(80);
dht_in = digitalRead(DHTPin);
if (!dht_in) {
return 2;
}
delayMicroseconds(80);
for (i = 0; i < 5; i++)
DHTData[i] = readDHTByte();
pinMode(DHTPin, OUTPUT);
digitalWrite(DHTPin, HIGH);
byte dht_check_sum =
DHTData[0] + DHTData[1] + DHTData[2] + DHTData[3];
if (DHTData[4] != dht_check_sum)
return 3;
return 0;
}
// read next byte from DHT sensor
byte readDHTByte() {
byte i = 0;
byte result = 0;
for (i = 0; i < 8; i++) {
while (digitalRead(DHTPin) == LOW);
delayMicroseconds(30);
if (digitalRead(DHTPin) == HIGH)
result |= (۱ << (۷ - i));
while (digitalRead(DHTPin) == HIGH);
}
return result;
}
void setup() {
initDHT();
Serial.begin(115200);
Serial.println("Start...");
Ethernet.begin(mac);
delay(1000);
}
void loop() {
String st;
String sh;
switch (readDHTData()) {
case 0:
sh = String(DHTData[0]) + "." + String(DHTData[1]);
Serial.println("Humidity = " + sh);
sendHumidity(sh);
break;
case 1:
Serial.println("Error 1: DHT start condition 1 not met.");
sendHumidity("ERR");
break;
case 2:
Serial.println("Error 2: DHT start condition 2 not met.");
sendHumidity("ERR");
break;
case 3:
Serial.println("Error 3: DHT checksum error.");
sendHumidity("ERR");
break;
default:
Serial.println("Error: Unrecognized code encountered.");
sendHumidity("ERR");
break;
}
delay(1000);
}
|
برای کسب اطلاعات بیشتر میتونید به این لینک برید و در آخر هم تمام فایل های مورد نیاز رو جهت دانلود برای شما قرار داده ایم.
Download “humidity-iot-DHT11.zip”humidity-iot-DHT11.zip – 0 بار دانلود شده است – 648 KB