همانطور که میدونید سنسور DHT11 سنسور دما و رطوبت هست ، در این پروژه از بخش رطوبت سنج این سنسور استفاده شده به صورتی که رطوبت اندازه گیری شده به سرور ارسال میشه و از طرف دیگه به کمک برنامه اندروید و از طریق اینترنت میتونید رطوبت رو مشاهده کنید . در این پروژه هم مثل پروژه Motion IoT سنسور حرکت IOT اطلاعات به سایت ic2cloud.com ارسال میشه و سخت افزار استفاده شده در این پروژه هم Arduino آردوینو هست.
سخت افزاری ها استفاده شده در این پروژه Arduino Uno و Arduino Ethernet Shield و Humidity/Temperature Sensor DHT11 هست.در صورتی که با نحوه کارکرد سایت ic2cloud آشنایی اولیه ندارید میتونید به این لینک برید.
جهت اتصال سنسور رطوبت به برد آردوینو میتونید به صورت زیر عمل کنید و سورس برنامه رو بر اساس آموزش درپروژه Motion IoT سنسور حرکت IOT تغییر بدین و اجرا کنید.
|
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