Υπό ανάπτυξη
Γράφει ο Στέλιος
Αδειούχος Ηλεκτρολόγος 1ης ομάδας Α ειδικότητας και ηλεκτρονικός.
Σε αυτο το project θα φτιάξουμε ενα μετεωρολογικό σταθμό με τον οποίο θα μετράμε
την θερμοκρασία την υγρασία την πίεση της ατμόσφαιρας την υγρασία του εδάφους και θα αναγνωρίζουμε το πότε βρέχει .
Υλοποίηση κατασκευής
Βήμα 1ο
Η λίστα των υλικών που θα χρησιμοποιηθούν:
Arduino board
DHT11 Humidity and temperature sensor
BMP180 Barometer sensor
Rain Drop sensor module
Soil Humidity sensor module
Breadboard or Custom ProtoShield
Βήμα 2ο
Οι συνδέσεις ειναι απλές ,ακολουθούμε τα παρακάτω
Rain Drop Module
- the VCC pin on Arduino’s 5V output
- the GND pin to Arduino’s GND and
- the Analog Data to Arduino's analog pin 0
Soil Humidity Module
- the VCC pin on Arduino’s 5V output
- the GND pin to Arduino’s GND and
- the Analog Data to Arduino's analog pin 1
BMP185
- the VCC pin on Arduino’s 3.3V output
- the GND pin to Arduino’s GND
- the SDA (Serial Data Line) pin to Arduino’s analog pin 4 and
- the SCL (Serial Clock Line) pin to Arduino’s analog pin 5
DHT11
- the VCC pin on Arduino’s 5V output
- the GND pin to Arduino’s GND and
- the DATA pin to Arduino’s digital pin 4
Βήμα 3
Το λογισμικό για τον Arduino φαίνετε παρακάτω το αντιγράφουμε όλο και το κάνουμε upload
Για να το κατεβάσετε κάντε κλικ εδώ arduino
Επίσης θα χρειαστούμε και δύο βιβλιοθήκες
Βιβλιοθήκη για τον αισθητήρα BMP180 εδώ
Βιβλιοθήκη για τον αισθητήρα dht11
/*
Pin Configuration
Rain Drop A0
Soil Humidity A1
SDA A4
SCL A5
DHT11 Data D2
*/
int result [5]; //Sensor result array
#include <Wire.h> //Including wire library
#include <SFE_BMP180.h> //Including BMP180 library
#define ALTITUDE 3 //Altitude where I live (change this to your altitude)
SFE_BMP180 pressure; //Creating an object
#include <DHT.h> //Including DHT11 library
#define DHTPIN 2 //Define DHT11 digital pin
#define DHTTYPE DHT11 //Define DHT TYPE which is DHT11
DHT dht(DHTPIN, DHTTYPE); //Execute DHT11 library
void setup() {
Serial.begin(9600); //Starting serial communication
Serial.println("Program started");
//Analog setup
pinMode(A0, INPUT); //Soil
pinMode(A1, INPUT); //Rain
//BMP180 Setup
if (pressure.begin()) //If initialization was successful, continue
{Serial.println("BMP180 init success");
Serial.print("AWS :");
Serial.print("\t");
Serial.print("Rain Drop\t");
Serial.print("Soil Hum\t");
Serial.print("Pressure \t");
Serial.print("Air Hum\t");
Serial.print("\t");
Serial.println("Temp \t");}
else //Else, stop code forever
{
Serial.println("BMP180 init fail");
while (1);
}
//DHT11 setup
dht.begin();
}
void loop() {
//analog setup
int A_Rain = analogRead(A0);
int A_Soil = analogRead(A1);
A_Rain = map(A_Rain, 800, 1023, 100, 0);
A_Soil = map(A_Soil, 400, 1023, 100, 0);
result[0]=A_Soil;
result[1]=A_Rain;
//bmp180 setup
char status;
double T, P, p0;
status = pressure.startTemperature();
if (status != 0) {
delay(status);
status = pressure.getTemperature(T);
if (status != 0) {
status = pressure.startPressure(3);
if (status != 0) {
delay(status);
status = pressure.getPressure(P, T);
if (status != 0) {
p0 = pressure.sealevel(P, ALTITUDE);
result[2]=p0;
}}}}
result[3] = dht.readHumidity();
result[4] = dht.readTemperature();
Serial.print("AWS : ");
Serial.print(" \t");
Serial.print(result[0]);
Serial.print(" %\t");
Serial.print("\t");
Serial.print(result[1]);
Serial.print(" %\t");
Serial.print("\t");
Serial.print(result[2]);
Serial.print(" hPa \t");
Serial.print(result[3]);
Serial.print(" %\t");
Serial.print("\t");
Serial.print(result[4]);
Serial.println("C \t");
delay(5000);
}
Τέλος αφού σιγουρευτείτε πως όλα έχουν πάει καλά βγάλτε τον arduino σε εξωτερικό χώρο ανοίξτε το σειριακό παράθυρο στο λογισμικό του arduino για να πάρετε τις πρώτες μετρήσεις.
Καλή επιτυχία.