New Text Document
New Text Document
h>
#include <SoftwareSerial.h>
#include "DHT.h"
#include <Servo.h>
#define DHTTYPE DHT11
#define Esp8266 Serial1
#define Debug Serial
//******************** declaration des variables
***************************
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
/*---- Capteur ----*/
int flamePin = A0;
int gazPin = A1;
int dhtPin = 12;
int pirPin = 3;
int speaker = 10;
Debug.begin(9600);
Esp8266.begin(9600);
dht.begin();
pinMode(flamePin,INPUT);
pinMode(gazPin,INPUT);
pinMode(pirPin,INPUT);
pinMode(dhtPin,INPUT);
// ----Define OUTPUT pins
pinMode(greenled, OUTPUT);
pinMode(flameled, OUTPUT);
pinMode(gazled, OUTPUT);
pinMode(speaker, OUTPUT);
pinMode(pirPin, OUTPUT);
lcd.begin(16,2);
lcd_game(400);
delay(4000);
}
void loop() {
capteurs();
}
void capteurs(){
Flame_test();
Gaz_test();
dht_test();
Pir_test();
Debug.println();
Esp8266.print(tram);
Debug.print(tram);
Debug.println();
delay(1000);
tram= "";
}
/**************************************************************************
**
*
* Capteur de Temperature
*
***************************************************************************
/
void dht_test(){
float h = dht.readHumidity();
float t = dht.readTemperature();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temperature:");
lcd.setCursor(13, 0);
lcd.print((int)t);
lcd.print("C");
lcd.setCursor(0,1);
lcd.print("Humidite: ");
lcd.setCursor(13,1);
lcd.print((int)h);
lcd.print("%");
tram+=(String)t+"|";
tram+=(String)h+"|";
}
/**************************************************************************
**
*
* Detecteur de mouvement
*
***************************************************************************
/
void Pir_test(){
Debug.print("mouvement detecte : ");
Pirr=digitalRead(pirPin);
Debug.println(Pirr);
delay(100);
tram+=Pirr;
tram+="|";
}
/**************************************************************************
**
*
* Gapteur de flame
*
***************************************************************************
/
void Flame_test(){
int fval = analogRead(flamePin);
int stat= 0;
if (fval <=80) {
stat= 1;
Debug.println(" Warning Fire is On");
tone(speaker, 750, 200);
digitalWrite(flameled, HIGH);
digitalWrite(greenled, LOW);
lcd.clear();
lcd.print("Attention !!");
lcd.setCursor(0,1);
lcd.print("!! Feu !!");
delay(500);
lcd.clear();
}
else {
stat= 0;
noTone(speaker);
digitalWrite(flameled, LOW);
digitalWrite(greenled, HIGH);
}
Debug.print("fire distance is :");
Debug.println(fval);
tram+=stat;
tram+="|";
}
/**************************************************************************
**
*
* Captteur de gaz
*
***************************************************************************
/
void Gaz_test(){
int gval=analogRead(gazPin);
int stat= 0;
if (gval >=250 ){
stat= 2;
Debug.println("Gaz opened");
tone(speaker, 600, 300);
digitalWrite(gazled, HIGH);
digitalWrite(greenled, LOW);
lcd.clear();
lcd.setCursor(1,0);
lcd.print("Attention !!");
lcd.setCursor(0,1);
lcd.print("!!! -Gaz- !!!");
delay(500);
lcd.clear();
}
else{
stat= 0;
noTone(speaker);
digitalWrite(gazled, LOW);
digitalWrite(greenled, HIGH);
}
Debug.print("gaz distance is :");
Debug.println(gval);
tram+=stat;
tram+="|";
}
/**************************************************************************
**
*
* LCD
*
***************************************************************************
/
void lcd_game(int delai){
// Quick 3 blinks of backlight
for(int i = 0; i< 3; i++)
{
lcd.backlight();
delay(200);
lcd.noBacklight();
delay(200);
}
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("PFE :");
lcd.setCursor(6,0);
lcd.print(" Domotique");
delay(3000);
lcd.setCursor(0,1);
lcd.print("A");delay(150);
lcd.setCursor(1,1);
lcd.print("c");delay(150);
lcd.setCursor(2,1);
lcd.print("t");delay(150);
lcd.setCursor(3,1);
lcd.print("i");delay(150);
lcd.setCursor(4,1);
lcd.print("v");delay(150);
lcd.setCursor(5,1);
lcd.print("a");delay(150);
lcd.setCursor(6,1);
lcd.print("t");delay(150);
lcd.setCursor(7,1);
lcd.print("i");delay(150);
lcd.setCursor(8,1);
lcd.print("o");delay(150);
lcd.setCursor(9,1);
lcd.print("n");delay(150);
for(int s=10;s<17;s++)
lcd_print('.',s,1);
for(int s=0;s<11;s++)
lcd_print('.',s,1);
lcd.setCursor(10,1);
lcd.print("active");
delay(3000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("connection ");
while (!(Esp8266.available() > 0 )){
for(int i=1; i<17 ; i++){
lcd_print('>' ,i,1);
delay(1);
int j =i-1;
lcd_print(' ' ,j,1);
delay(50);
}
}
recu= Esp8266.readString();
Debug.print(recu);
ssid = getStr(recu,1);
ip = getStr(recu,2);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ssid: ");
lcd.setCursor(7,0);
lcd.print(ssid);
lcd.setCursor(0,1);
lcd.print("ip: ");
lcd.setCursor(3,1);
lcd.print(ip);
delay(1000);
else if(stringData>index){
return dataPart;
break;
}
} return dataPart;
}
##include <ESP8266WiFi.h>
#include <Servo.h>
/***************** Déclaration des variables ****************/
Servo porte;
String tram="";
const char* ssid = "Eloctro-lab";
const char* password = "12345678";
int led1=16;
int led2=5;
int led3=4;
int led4=0;
int led5=2;
int pos =0;
WiFiServer server(80);
void setup(){
Serial.begin(9600);
delay(10);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(led4,OUTPUT);
pinMode(led5,OUTPUT);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
porte.attach(14);
porte.write(pos);
Serial.print("|");
Serial.print(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(100);
}
server.begin();
Serial.print("|");
Serial.print(WiFi.localIP());
Serial.print("|");
}
void loop() {
WiFiClient client = server.available();
if (!client) {
return;
}
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("");
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<head>");
client.println("<title>Domotique</title>");
client.println("<meta charset=\"utf-8\">");
client.println("<meta http-equiv=\"refresh\" content=\"20\">");
client.println("<meta name=\"viewport\" content=\"width=device-width,
initial-scale=1\">");
client.println("<link rel=\"stylesheet\"
href=\"http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css
\">");
//------- JavaScript -------
client.println("</div></div>");
client.println("<script
src=\"https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js\"><
/script>");
client.println("<script
src=\"http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js\">
</script>");
client.println("<script
type=\"text/javascript\">$(document).ready(function(){$
('a[datatoggle=\"tab\"]').on"
"('show.bs.tab',function(e){localStorage.setItem('activeTab',
$(e.target).attr('href'));});"
"var activeTab = localStorage.getItem('activeTab');if(activeTab){$('#myTab
a[href=\"' + activeTab + '\"]').tab('show');}});</script>");
//------ CSS ---------------
client.println("<style type=\"text/css\">.custom{ width: 75px ; padding:
5px;}.bs-example{margin: 20px;alignment:center;}"
"pre{max-width:500px; background-color: rgba(0,0,0,0.1); color: #737373; }"
"body{position: relative;margin-left: auto;margin-right: auto;width:
100%;text-align: left;}</style>");
client.println("</head>");
client.println("<body style=\"background:
url(http://www.wallpaperup.com/uploads/wallpapers/2013/10/28/166644/a526e84
ad1dcafaa6fe06ddda28ba029.jpg) no-repeat center center fixed;\">");
client.println("<div class=\"container\" style=\"text-align:
center;\"><h3>Smart Home <a class=\"glyphicon glyphicon-education\"
href=\"#sectionC\"></a></h3></div>");
client.println("<div class=\"bs-example\"><ul class=\"nav nav-tabs\"
style=\"background-color: "
"rgba(255,255,255,0.2)\" id=\"myTab\"><li class=\"active\"
id=\"capteurs\"><a data-toggle=\"tab\" "
"href=\"#sectionA\">Capteurs</a></li><li><a data-toggle=\"tab\"
href=\"#sectionB\">Control</a></li>"
"<li><a data-toggle=\"tab\" href=\"#sectionC\">A propos</a></li></ul>");
// ------------------------------- section A -----------------------------
----------
client.println("<div class=\"tab-content\"><div id=\"sectionA\"
class=\"tab-pane fade in active\" ><h5>Capteurs</h5>");
if (Serial.available()> 0 ){
String recu="" , flame="", gaz="", humi="",temp="", us="";
recu= Serial.readString();
flame = getStr(recu,0);
gaz = getStr(recu,1);
temp = getStr(recu,2);
humi = getStr(recu,3);
else if(stringData==index){
dataPart.concat(data[i]);}
else if(stringData>index){
return dataPart;
break;
}
} return dataPart;
}