Salut, j'ai besoin d'aide dans mon programme arduino, c'est niveau amateur mais peu complexe, si quelqu'un qui s'y connait bien peut m'aider,je vais tout bien détailler, qu'il m'envoie un MP.
Je le poste directement ici, merci à ceux qui prendront la peine de m'aider
En gros je cherche a adapter mon programme en fonction du programme cariotts pour y transmettre mes données :
Le programme cariotts (j'ai mis que la parti utile) :
int LEDPin = 7; // Une LED est branchée à la sortie 7
int PotPin = A3; // Un potentiomètre a son curseur branchée à l'entrée analogique 3
int LED = 0; // État précédent de la LED (0 si éteinte, 1 si allumée)
int newLED = 0; // Nouvel état de la LED (0 si éteinte, 1 si allumée)
void setup() {
pinMode(LEDPin, OUTPUT);
Serial.begin(9600);
Serial.println("Demarrage");
// DHCP (dynamic host configuration protocol): on cherche une adresse ip pour
// votre shield Ethernet.
if (Ethernet.begin(mac) == 0) {
Serial.println("Echec de la configuration DHCP Ethernet");
while(true); // alors pas la peine d'aller plus loin
}
Serial.println("Reussite de la configuration DHCP Ethernet");
delay(1000);
}
void loop() {
int val = analogRead(PotPin); // Valeur du potentiomètre
if (val > 500) { // 500 est la frontière arbitraire entre LED allumée et LED éteinte
newLED = 1; // On allume la LED
}
else {
newLED = 0; // on éteint la LED
}
digitalWrite(LEDPin, newLED);
if (LED != newLED) { // Si l'état de la LED a changé
Serial.println("");
Serial.println("");
Serial.println("Envoi du Stream");
LED = newLED;
sendStream(); // on envoi les données au serveur carriots
}
delay(500);
// Si on reçoit des données de l'internet, on les envoit au moniteur
// série (utile pour déboguer).
while (client.available()) {
char c = client.read();
Serial.print(c);
}
if (!client.connected()) {
client.stop();
}
}
// Envoi des données
void sendStream()
{
String txt1 = String(analogRead(PotPin)); //String contenant la valeur du potentiomètre
Serial.print("Valeur du potentiometre: " );
Serial.println(txt1); // pour débogage
String txt2 = "";
if ( LED == 0 ) {
txt2 = "LED_OFF"; // String indiquant l'état de la LED
}
else {
txt2 = "LED_ON";
}
Serial.print("Etat de la LED: ");
Serial.println(txt2); // Pour débogage
if (client.connect(server, 80)) { // Si la connexion fonctionne
Serial.println("Connection etablie");
String json = "{\"protocol\":\"v2\",\"device\":\""+DEVICE+"\",\"at\":\"now\",\"data\":{\"valeur\":\""+txt1+"\",\"LED\":\""+txt2+"\"}}";
Mon programme (capteur de température et présence a adapter en fonction de celui là haut) :
int ledPin = 13; // Pin choisie à cause de sa LED (visible sur la carte)
int inputPin = 37; // Pin d'entrée choisie pour surveillé le senseur PIR
int pirMotionState = LOW; // Pour commencer, nous considérons qu'il n'y a pas de nouvement.
int val = 0; // Variable utilisée pour lire l'entrée Pin 2 (valeur du PIR)
void setup() {
pinMode(ledPin, OUTPUT); // déclarer LED comme sortie
pinMode(inputPin, INPUT); // déclarer le Senseur comme entrée
Serial.begin(9600);
Serial.begin(9600);//Set Baud Rate to 9600 bps
}
void loop(){
int val;
int dat;
val=analogRead(0);//Connect LM35 on Analog 0
dat=(500 * val) /1024;;
Serial.print("Temp:"); //Display the temperature on Serial monitor
Serial.print(dat);
Serial.println("C");
delay(500);
val = digitalRead(inputPin); // Lire la valeur d'entrée
if (val == HIGH) { // Vérifier si l'entrée est HIGH
digitalWrite(ledPin, HIGH); // Allumer la LED (activité PIR)
if (pirMotionState == LOW) {
// Si l'état du PIR est LOW, comme nous venons de détecter un mouvement
// nous changeons l'état pirMotionState à HIGH (mouvement détecté)
Serial.println("Mouvement détecté!");
// Nous affichons le message seulement quand la sortie change
pirMotionState = HIGH;
}
} else {
digitalWrite(ledPin, LOW); // Eteindre la LED (plus d'activité PIR)
if (pirMotionState == HIGH){
// Si l'état PIR est HIGH (mouvement détecté) et que la sortie du PIR
// passe à LOW, c'est que le mouvement à cessé!
Serial.println("Mouvement terminé!");
// Nous affichons le message que pour le changement d'état (détection mouvement)
pirMotionState = LOW;
}
}
}
Photo du montage : (il fonctionne, ça s'affiche correctement sur le moniteur série)
Liens des explications complète pour le premier programme :
http://electroniqueamateur.blogspot.fr/2013/08/envoyer-des-donnees-carriotscom-avec-un.html
https://www.carriots.com/tutorials/arduino_carriots/alert_system
Le 29 avril 2016 à 10:57:11 [F]Law3 a écrit :
Photo du montage : (il fonctionne, ça s'affiche correctement sur le moniteur série)
C'est quoi la question si tout fonctionne ?
Tu veux envoyer les données via internet comme dans l'exemple ?
Salut, au risque de se répéter, merci d'utiliser gist ou pastebin !
Je suis pas modo mais c'est très ennuyant de voir une page de code sur le forum.
Merci.
Sinon pour ton montage, cariotts fonctionne mais pas ton programme ? Je suis comme mon VDD, je ne vois pas quelle est ta question ^^