Je ne comprend pas trop, si tu ne veux pas "taper" un peu dans l'Arduino, pourquoi venir quémander de l'aide ?
Les solutions toutes cuites existent rarement par rapport à un cahier des charge spécifique.
En gros on te donne des infos, tu décortiques et tu analyses.... (tu peux également poser des questions dans cette démarche) et ensuite tu composes.... et on sera là pour un coup de main, mais pas pour du tout cuit.
Et si possible car je ne c'est pas si avec arduino c'est possible, de faire un envoi d'email alerte.
avec arduino tout est possible! la seule limite c'est l'imagination! pour les alertes emails, l'ethernet shield reste quand même le mieux je pense...http://arduino.cc/en/Main/ArduinoEthernetShield
Bonjour Simon, je cherche à faire le même truc (du moins très similaire) On peut travailler en parallèle sur ce projet.
Je ne sais pas si tu à<as des équipements arduino?
J'ai un Ethenet shield monté sur un Duemilanove. L'exemple ''web temperature'' est un bon départ selon moi. Tu cliques sur le bouton et la température affiche à l'écran. Il faudrait juste ramasser les infos pour établir un seuil haut et un seuil bas pour l'envoie de email.
L'envoie de sms peux être simple selon le fournisseur, mais en gros ''ton_numeros_de_tel@ton_fournisseur'' ex: 8005559214@rogers.net envoie un email sous forme de sms sur un téléphone. Sinon il y a des serveurs qui peuvent le faire. Donc 2 email, un sur ton cell et un sur ta boîte courriel.
Peut-être commenceé avec le code du webserver et le modifier? Je vais l'afficher plus tard.
Pas de problème BTguillaume, on vas pouvoir s'entre aider, et non j'ai pas encore fait l'achat du matériel vue que je ne c'est pas encore exactement ce qu'il me faut, aussi merci à tous et non je ne cherche pas de réponse toute cuite, mais une grande aide vue que je suis pas super fort en arduino, mais je suis motiver, et sur tous obliger de le faire, mais cela m'intéresse beaucoup !
Aussi le mieux entre le capteur LM35 et le DS18B20 c'est le quelle ?
Pour introduire une variable quelqu'un peu me dire ou commencer. Le test serait avec l'exemple du site :
if (x > 120){
digitalWrite(LEDpin1, HIGH);
digitalWrite(LEDpin2, HIGH);
}
Si je comprend bien une valeur plus grand que 120 fera réagire la ledpin 1 et 2?
Il faut aussi mettre #define ledpin1 et 2.
EtherShield es=EtherShield();
// prepare the webpage by writing the data to the tcp send buffer
uint16_t print_webpage(uint8_t *buf);
int8_t analyse_cmd(char *str);
// get current temperature
#define TEMP_PIN 3
#define LEDpin 1
#define LEDpin 2
void getCurrentTemp( int *sign, int *whole, int *fract);
Maltar:
Pas de problème BTguillaume, on vas pouvoir s'entre aider, et non j'ai pas encore fait l'achat du matériel vue que je ne c'est pas encore exactement ce qu'il me faut, aussi merci à tous et non je ne cherche pas de réponse toute cuite, mais une grande aide vue que je suis pas super fort en arduino, mais je suis motiver, et sur tous obliger de le faire, mais cela m'intéresse beaucoup !
Aussi le mieux entre le capteur LM35 et le DS18B20 c'est le quelle ?
J'ai commencé avec un duemilanove et enc28j60.
le code affiche la température en pesant sur le bouton . Il faut un ds18b20 (1-wire) sur une entrée numérique (la 3) dans l'exemple.
Pour ma pars il faut pas que cela ce face via bouton, mais automatiquement, moi je doit seulment m'occuper de l'alerte, c'est à dire, quand il y a une température x°, un email et un sms sont envoyez ^^
Dans ce cas, tu gère une temporisation, pour prélever la température, toutes les 30 sec par exemple, et dans le cas où le seuil est dépassé, tu déclenches l'action souhaité (connexion a un socket serveur, envoi d'un signal sur une sortie du arduino, etc...)
J'ai fait ça rapidement au boulot, pour expliquer la gestion de timer et de flag de dépassement pour ne pas envoyer une alerte à tous les cycles, mais uniquement quant il ya dépassement du seuil.
Pour la gestion Eternet, tu trouveras de nombreux exemples et tutoriel expliquant comment se connecter à un socket serveur.
// Définir la constante 10 sec
#define TPS_ATTENTE 10000
// Définir le seuil de température à 25°
#define SEUIL_TEMP 25
// Définir la sortie qui déclenchera l'allumage d'une led
#define PIN_LED 13
// déclarer les variables de gestion de temps
long previousMillis = 0;
unsigned long currentMillis = 0;
float temperature;
bool seuil_depasse;
void setup()
{
// Démarrage du timer
currentMillis = millis();
previousMillis = currentMillis;
// Placer le flag de détection de dépassement de seuil à faux
seuil_depasse = false;
// Définir la PIN de sortie
pinMode(PIN_LED, OUTPUT);
}
void loop()
{
// Vérification de la temporisation
currentMillis = millis();
if(currentMillis - previousMillis > TPS_ATTENTE)
{
Serial.println("Releve de temperature");
// Code pour récupérer la valeur de température et la stocker en degrés dans la variable : temperature
if(seuil_depasse && temperature < SEUIL_TEMP)
{
// Etteindre la LED
digitalWrite(PIN_LED, LOW);
// Remettre le flag de seuil dépassé à faux
seuil_depasse = false;
}
else if( !seuil_depasse && temperature >= SEUIL_TEMP)
{
// Allumer la LED
digitalWrite(PIN_LED, HIGH);
// mettre le flag de seuil dépassé à vrai
seuil_depasse = true;
// Mettre ici le code de connexion à un socket pour envoyer une trame d'alerte
// Afin que le serveur recevant cette trame, s'occupe d'envoyer un mail ou un SMS
}
}
}
J'ai trouver sa dans la partis Apprendre du site d'arduino.
Pour les erreurs les voicits, attention à la quantité haha !
Envoi_sms:6: error: 'GSM' does not name a type
Envoi_sms:7: error: 'GSM_SMS' does not name a type
Envoi_sms.cpp: In function 'int MesureTemp()':
Envoi_sms:17: error: 'samples' was not declared in this scope
Envoi_sms:17: error: 'Ref' was not declared in this scope
Envoi_sms:17: error: 'pinTemp' was not declared in this scope
Envoi_sms.cpp: In function 'void setup()':
Envoi_sms:37: error: 'gsmAccess' was not declared in this scope
Envoi_sms:37: error: 'GSM_READY' was not declared in this scope
Envoi_sms:40: error: expected primary-expression before '}' token
Envoi_sms:40: error: expected `;' before '}' token
Envoi_sms.cpp: At global scope:
Envoi_sms:44: error: expected declaration before '}' token
J'ai essayer comme cela et toujours rien.. je désespère.. :
//Déclaration et initialisation des variables
float mesure=0; //Variable pour le stockage mesure retournée par le capteur
float tension=0; //Variable pour le stockage de la tension
float temperature=0; //Variable pour le stockage de la température
float tempmax=18; //Temperature max
int portana0 = 0; //Numéro du port analogique sur lequel la température est mesurée
//Traitements initialisation
void setup()
{
analogReference(INTERNAL); //Permet de fixer la temperature de refernce à 1,1 volt
Serial.begin(9600); //initialisation de la liaison série à 9 600 bauds
}
//Traitements itératifs
void loop()
{
mesure = analogRead(portana0); //Lecture de la valeur fournie par le capteur de température
tension = mesure * 1.1 / 1024; //Conversion en tension (en volt)
temperature = tension * 100; //Conversion en température (en degré Celsius)
if (temp > TempMax) // la temperature est superieure a 18°C
Serial.begin(9600);
Serial.println("SMS Messages Sender");
boolean notConnected = true; // connection à l'état
while(notConnected)
{
if(gsmAccess.begin(PINNUMBER)==GSM_READY)
notConnected = false;
else
}
Serial.println("Not connected");
delay(1000);
}
{
Serial.println("GSM initialized");
}
void loop()
{
Serial.print("Enter a mobile number: ");
char remoteNumber[20]; // numéro de téléphone pour envoyez le sms
readSerial(remoteNumber);
Serial.println(remoteNumber);
// Texte du sms
Serial.print("Seuil dépassé, fermeture trape");
char txtMsg[200];
readSerial(txtMsg);
Serial.println("SENDING");
Serial.println();
Serial.println("Message:");
Serial.println(txtMsg);
// envoi le sms
sms.beginSMS(remoteNumber);
sms.print(txtMsg);
sms.endSMS();
Serial.println("\nCOMPLETE!\n");
}
Avec celui la j'obtient les erreurs suivantes :
envoi_sms3.cpp: In function 'void loop()':
envoi_sms3:22: error: 'temp' was not declared in this scope
envoi_sms3:22: error: 'TempMax' was not declared in this scope
envoi_sms3:30: error: 'gsmAccess' was not declared in this scope
envoi_sms3:30: error: 'PINNUMBER' was not declared in this scope
envoi_sms3:30: error: 'GSM_READY' was not declared in this scope
envoi_sms3:33: error: expected primary-expression before '}' token
envoi_sms3:33: error: expected `;' before '}' token
envoi_sms3.cpp: At global scope:
envoi_sms3:37: error: expected unqualified-id before '{' token
envoi_sms3.cpp: In function 'void loop()':
envoi_sms3:40: error: redefinition of 'void loop()'
envoi_sms3:15: error: 'void loop()' previously defined here
envoi_sms3:45: error: 'readSerial' was not declared in this scope
envoi_sms3:58: error: 'sms' was not declared in this scope