Bonjour,
Je suis en terminale Sti2d, et je souhaite obtenir votre aide.
Je fait actuellement un projet "conteneur à déchet" et je souhaite afficher les données de mon capteur d’ultrason sur mon site web. Mon capteur sert à donnée le taux restant en pourcentage avant que le conteneur soit plein.
Voici le programme (il fonctionne) :
unsigned long echo = 0;
int ultraSoundSignal = 4; // Ultrasound signal pin
unsigned long ultrasoundValue = 5;
int pourcent = NULL;
void setup()
{
Serial.begin(9600);
pinMode(ultraSoundSignal,OUTPUT);
}
unsigned long ping()
{
pinMode(ultraSoundSignal, OUTPUT); // Switch signalpin to output
digitalWrite(ultraSoundSignal, LOW); // Send low pulse
delayMicroseconds(2); // Wait for 2 microseconds
digitalWrite(ultraSoundSignal, HIGH); // Send high pulse
delayMicroseconds(5); // Wait for 5 microseconds
digitalWrite(ultraSoundSignal, LOW); // Holdoff
pinMode(ultraSoundSignal, INPUT); // Switch signalpin to input
digitalWrite(ultraSoundSignal, HIGH); // Turn on pullup resistor
// please note that pulseIn has a 1sec timeout, which may
// not be desirable. Depending on your sensor specs, you
// can likely bound the time like this -- marcmerlin
// echo = pulseIn(ultraSoundSignal, HIGH, 38000)
echo = pulseIn(ultraSoundSignal, HIGH); //Listen for echo
ultrasoundValue = echo / 58.138 ; //en CM
pourcent = (ultrasoundValue*100)/107.7 ;
return pourcent ;
}
void loop()
{
int x = 0;
x = ping();
Serial.println(x);
delay(250); //delay 1/4 seconds.
}
Voici mon site web (en construction):
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Conteneur à déchets</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
<?php ?>
</head>
<body>
<div class= "block">
<div class="sous_block_1">
<div class="graphique">
<p>Evolution mentuelle du remplissage du conteneur à déchet</p>
</div>
<div class="block_option_1">
<div class="calendrier">
<iframe src="https://calendar.google.com/calendar/embed?height=600&wkst=1&bgcolor=%23FFFFFF&src=kq2jfrjsj95p3bl3i6lnl1b92s%40group.calendar.google.com&color=%2323164E&ctz=Europe%2FParis" style="border-width:0" width="800" height="600" frameborder="0" scrolling="no"></iframe>
</div>
<div>
<div class="block_input">
<div class="couvercle_ouvert">
</div>
<div class="couvercle_fermer">
</div>
<div class="batterie">
</div>
</div class="vmc_load">
</div>
<div class="block_input">
<div class="vmc_allumé">
</div>
<div class="vmc_eteinte">
</div>
</div>
</div>
<div>
</div>
<div class="sous_block_2">
<div class="taux_remplissage">
<progress max="100" value="25" form="form-id">25%</progress>
</div>
</div>
</div>
</body>
</html>
j'aimerai liée les deux. J'aimerai afficher sur mon site le taux de remplissage en pourcent et un graphique de l'évolution annuelle.
Pourriez vous m'indiquer les tâche a suivre afin de faire le lien entre mon arduino est mon site internet.
Merci,
En attente de votre réponse.
bonjour,
Je fait actuellement un projet "conteneur à déchet" et je souhaite afficher les données de mon capteur d'ultrason sur mon site web. Mon capteur sert à donnée le taux restant en pourcentage avant que le conteneur soit plein.
il faut peut être envoyer les données sur une bdd du server du site pour l'afficher.
donc a commencer par réfléchir sur le moyen a utiliser pour le faire.
Premiere question importante, as tu une carte avec connecteur ethernet ou sheild ethernet??
en faite c'est juste de lamise en forme,
si tu as une base de données il suffit, d'envoyer les données sur une page php ou il y a un INSERT into...
http://www.tonsiteweb.com/data.php?data1=value1.....
ou si tu as un serveur dédies
http://localhost/data.php?data1=value1....
http://192.168.0.1/data.php?data1=value1 //adresse de ton serveur LAMP/XAMP ou autre..
#include <Ethernet.h>
//adresse mac de ton arduino
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // a changer c'est un exemple
//l'adresse IP de ton arduino
IPAddress ip(192,168,0,16);
char server[] = "192.168.0.1"; //adresse de ton serveur LAMP/XAMP ou autre...
//initialisation de la connection ethernet
EthernetClient client;
void setup() {
// demarrage de la liaison serie
Serial.begin(9600);
// demarrage de la connection ethernet
Ethernet.begin(mac, ip);
}
void loop() {
// Connection au serveur
if (client.connect(server, 80)) {
client.print("GET /data.php?"); //method GET
client.print("value=");//
client.print("x"); //le nom de ta variable
client.println(" HTTP/1.1"); // protocole http
client.println("Host: 192.168.0.1");
client.println("Connection: close");
client.stop(); // ferme la connection
}
else {
// si l'arduino n'arrive pas a se connecter a ton site web ou serveur
Serial.println("--> connection failed\n");
}
delay(10000);
}
Par la suite, pour recuperer la valeur c'est simplement du PHP PUR
soit $var= $_GET['value'];
connection a ta base....
ensuite $sql="insert into table ('$var') // a changer suivant le nombre de champs dans la table..
Oui nous avons sheild etherne,
#include <SPI.h> // ne pas oublier
#include <Ethernet.h>
//adresse mac de ton arduino
byte mac[] = {
0x90, 0xA2, 0xDA, 0x0D, 0xEE, 0xB0 }; // a changer c'est un exemple
//l'adresse IP de ton arduino
IPAddress ip(10,139,53,130);
char server[] = "192.168.56.20"; //adresse de ton serveur LAMP/XAMP ou autre...
//initialisation de la connection ethernet
EthernetClient client;
void setup() {
// demarrage de la liaison serie
Serial.begin(9600);
// demarrage de la connection ethernet
Ethernet.begin(mac, ip);
}
void loop() {
// Connection au serveur
if (client.connect(server, 80)) {
client.print("GET /data.php?"); //method GET
client.print("value=http://10.139.53.129/site1.php?donnee_capteur=");//
client.print("x"); //le nom de ta variable
client.println(" HTTP/1.1"); // protocole http
client.println("Host: 10.139.53.129");
client.println("Connection: close");
client.stop(); // ferme la connection
}
else {
// si l'arduino n'arrive pas a se connecter a ton site web ou serveur
Serial.println("--> connection failed\n");
}
delay(10000);
}
Quand je téléverse cela marche, maintenant pourriez vous m'expliquer de façon claire la démarche a suivre pour envoyer ces données du capteur a mon site.
Quand je téléverse cela marche, maintenant pourriez vous m'expliquer de façon claire la démarche a suivre pour envoyer ces données du capteur a mon site.
je pense qu'il faut faire quelques recherches quand même de ton coté.
tu n'as pas l'impression qu'il y a un bug dans ces lignes?
client.print("GET /data.php?"); //method GET
client.print("value=http://10.139.53.129/site1.php?donnee_capteur=");//
client.print("x"); //le nom de ta variable
le code php est opérationnel sur le server?
c'est quoi la requête exacte pour le server et inclure les données?
data.php?value=x
http://10.139.53.129/site1.php?donnee_capteur=x
Maintenant pour recuperer les données c'est du PHP pur, donc si tu connais pas php demande a un prof ou sur internet.....
Ceci dit, dans ton programme, le nom de variable x, c'est pas terrible..
bref,
maintenant faut vérifier si tu reçois quelque chose
http://10.139.53.129/site1.php?donnee_capteur=x
sur ton site1.php
si tu as tout lu ce que j'ai ecrit:
soit $donnee_capteur= $_GET['donnee_capteur']; // recupere la valeur envoyer par l'arduino
Ensuite si tu veux vérifier si tu as quelque chose il faut l'afficher..
echo $donne_capteur;
si tu as un message d'erreur, alors ca marche pas,
si tu as une valeur, ça veux dire que ca marche bien... c'est deja pas mal...
Par la suite, dans ta base de données, mais c'est pas a voir ici car c'est du php pur
tu te connecte a ta base de données
et tu fais un insert de la valeur dans ta table...
Dela tu peux faire une fonction qui permet de reactualiser tous les X temps pour recuperer la valeur et inserer les valeurs dans ta base..