Wind speed sensor
Radiation Shield Specification
#include <SoftwareSerial.h>
#include <DHT.h>
#include <Wire.h>
#include <Adafruit_BMP085.h>
String wifiName = " "; //Wifi Name
String wifiPass = " "; //Wifi Password
int rainPin = A0;
int thresholdValue = 500;
int rxPin = 0; //ESP8266 RX pin
int txPin = 1; //ESP8266 TX pin
int hall_pin = 3;
float hall_thresh = 10;
#define DHTPIN 2 //DHT Pin
#define DHTTYPE DHT11 //DHT Sensor Type
DHT DHT1_1(DHTPIN, DHTTYPE); //DHT11 Object
Adafruit_BMP085 bmp; //BMP085 Object
String ip = "184.106.153.149"; //Thingspeak ip adrress
SoftwareSerial esp(rxPin, txPin); //Serial Communication pin
void setup()
{
Wire.begin();
DHT1_1.begin();
bmp.begin();
pinMode(rainPin, INPUT);
Serial.begin(9600); //Serial communication starts
pinMode(hall_pin, INPUT);
Serial.println("Started");
esp.begin(115200); //ESP8266 communication start
esp.println("AT"); //AT command for test
Serial.println("AT Sent");
while(!esp.find("OK"))
{
esp.println("AT");
Serial.println("ESP8266 Not Found.");
}
Serial.println("OK");
esp.println("AT+CWMODE=1"); //setting the ESP8266 module to client.
while(!esp.find("OK")){ //waiting until the adjustment is made.
esp.println("AT+CWMODE=1");
Serial.println("Setting Up....");
}
Serial.println("Set as Client");
Serial.println("Connecting to network...");
esp.println("AT+CWJAP=\\""+wifiName+"\\",\\""+wifiPass+"\\""); //connecting to our network.
while(!esp.find("OK")); //Waiting until we're connected to the network.
Serial.println("Connected.");
delay(100);
}
void loop()
{
esp.println("AT+CIPSTART=\\"TCP\\",\\""+ip+"\\",80"); //Connection Thingspeak
if(esp.find("Error")){ //checking for connection error.
Serial.println("AT+CIPSTART Error");
}
float hall_count = 1;
float start = micros();
bool on_state = false;
while(hall_count <= 5){
if (digitalRead(hall_pin)==0){
if (on_state==false){
on_state = true;
hall_count+=1;
}
} else{
on_state = false;
}
}
int sensorValue = analogRead(rainPin);
if(sensorValue < thresholdValue){
sensorValue = 1;
}
else {
sensorValue = 0;
}
float end_time = micros();
float time_passed = ((end_time-start)/1000000.0);
float rpm_val = (hall_count/time_passed)*60.0;
float temperature = DHT1_1.readTemperature();
float humidity = DHT1_1.readHumidity();
float temperature2 = bmp.readTemperature();
float pressure = bmp.readPressure();
float altitude = bmp.readAltitude();
String data = "GET <https://api.thingspeak.com/update?api_key=6FAYRI8LS16OPDNQ>"; //Thingspeak command. Instead of xxxxx, we write our own api keynote in Key.
data += "&field1=";
data += String(temperature);
data += "&field2=";
data += String(humidity);
data += "&field3=";
data += String(temperature2);
data += "&field4=";
data += String(pressure);
data += "&field5=";
data += String(altitude);
data += "&field6=";
data += String(sensorValue);
data += "&field7=";
data += String(rpm_val);
data += "\\r\\n\\r\\n";
esp.print("AT+CIPSEND=");
esp.println(data.length()+10);
delay(1000);
if(esp.find(">"))
{
esp.print(data);
Serial.println(data);
Serial.println("data sent.");
delay(1000);
}
}