Page 2 sur 3

Re: "Convertir" la fermeture d'un interrupteur en une impulsion

Posté : mer. 6 juil. 2016 16:55
par destroyedlolo
Et pourquoi ne pas simplement utiliser une sonde 1-wire bouton ?
Je n'ai jamais essayé, mais c'est pile poile ce qu'elle est sensée faire :)

Re: "Convertir" la fermeture d'un interrupteur en une impulsion

Posté : jeu. 7 juil. 2016 11:06
par christophe27
bonjour merci pour tous ces retour

Que voulez vous dire par une sonde 1-wire bouton ?
Le montage utilise déja un e sonde ds18b20 1-wire qui mesure la température du jus dans la bouteille,
elle est reliée a la carte esp-01 sur le GPIO2 !!! si c'est de la même chose que l'on parle!

l'objectif est de faire passer la carte esp-01 de l'état de"veille" a "actif" l'orsquelle entre dans le tunnel de pasteurisation (douche d'eau a 55°puis 65° puis 80°)

Voici pourquoi je pensé incorporer dans le bocal ou ce trouve la carte esp un inter thermique "mécanique" tous ceci afin d'économiser les batteries et de connaitre précisément l'heure de début (traçabilité oblige....)

Merci pour le schemat mais je bloc...encor quelque questions.
Pourquoi 2 résistances en série ?
1 résistance 10 Kohms http://www.gotronic.fr/art-resistance-c ... 6-2760.htm
quel valeur pour la 2eme?


D? est bien une diode 1n4148 http://www.gotronic.fr/art-1n4148-7.htm

le pin ch_pd est alimenté par une résistance 2kohms je la place entre les diodes et le pin ?

Excuser moi pour ces questions un peu... mais la panoplie de matériel est tellement vaste que je mi perd....

Re: "Convertir" la fermeture d'un interrupteur en une impulsion

Posté : jeu. 7 juil. 2016 16:12
par guillaume9344
Au temps pour moi , j 'ai oublié le symbole de masse , donc les résistances ne sont pas en série , j 'ai également remplacé une diode par une résistance de 100homs ,car celle si aurrait bloquée la mise à zero de cd_pd par le gpio.

la pin ch_pd serat alimenté soit par l'impultion en provenance du condensateur soit par le gpio , il n'y a pas besoin d'autre alim.
Sans titre.jpg
Sans titre.jpg (104.41 Kio) Vu 8032 fois

Re: "Convertir" la fermeture d'un interrupteur en une impulsion

Posté : jeu. 7 juil. 2016 16:37
par destroyedlolo
Salut,
christophe27 a écrit :Que voulez vous dire par une sonde 1-wire bouton ?
Il y a 2 types de sondes 1-wire :
  • les sondes filaires comme le 18b20 qui sont mise donc sur le bus
  • les sondes boutons qui ressemblent à des piles boutons : ce sont des datalogger donc elles sont autonomes, stockent les informations dans leur propre mémoire et sont déchargées lorsqu'on les connecte sur un host 1-wire.

Re: "Convertir" la fermeture d'un interrupteur en une impulsion

Posté : ven. 8 juil. 2016 10:07
par christophe27
Bonjour destroyedlolo

si j'ai bien compris les sondes bouton 1-wire sont des enregistreur autonome.
Je veut un contrôle des température en "temps réel."
Ce matériel ne me convient pas car j'aurais les enregistrements que lorsque la sonde sera sortie du tunnel.
Les données arriveront trop tardivement si il y a problème!!
Nous avons deja des "enregistreurs "(je ne connais pas leur fonctionnement!).

Merci pour l'info ça peut toujours être utile

Re: "Convertir" la fermeture d'un interrupteur en une impulsion

Posté : ven. 8 juil. 2016 10:17
par christophe27
une petite "grande" photo
WP_20160705_002.jpg
WP_20160705_002.jpg (1.34 Mio) Vu 8018 fois
sonde.jpg
sonde.jpg (1.38 Mio) Vu 8018 fois
Je commande les composants et reviens vers vous ....MERCI

Re: "Convertir" la fermeture d'un interrupteur en une impulsion

Posté : jeu. 14 juil. 2016 22:22
par christophe27
Bonsoir, le facteur est passé!
J'ai donc essayé le montage...
lorsque je chauffe le contacteur il y a bien une impulsion (mis une led pour vérifier)mais la carte esp ne "démarre" pas...
Il me semble que l'impulsion soit trop courte pour que le qpio0 deviens "true" et donc prennent la suite de l'impulsion...
Voici 2 photo
montage.jpg
montage.jpg (1.92 Mio) Vu 7993 fois
essai.jpg
essai.jpg (1.99 Mio) Vu 7993 fois
Merci

Re: "Convertir" la fermeture d'un interrupteur en une impulsion

Posté : ven. 15 juil. 2016 01:17
par spourre
christophe27 a écrit :une petite "grande" photoWP_20160705_002.jpgsonde.jpg

Je commande les composants et reviens vers vous ....MERCI
Bonsoir,

C'est vrai qu'une photo c'est plus parlant.
Ma suggestion du jour (respect du concept kiss):

Utiliser un bête interrupteur à lames souples (reed ) pour couper l'alimentation.
Ce contact sera placé au plus près du fond du bocal qui assure la protection et l'étanchéité.
Par défaut, le contact est ouvert et le module non alimenté ne consomme rien.
Poser un aimant permanent sur le bocal, juste avant de mettre la bouteille/capteur au four (on est loin du point de Curie).
Enlever l'aimant à la sortie du four.

http://www.conrad.fr/ce/fr/product/5036 ... 3?ref=list


Si l'avance de la chaîne provoque des secousses qui risquent de faire tomber l'aimant, on peut inverser le fonctionnement c'est à dire utiliser une ILS qui s'ouvre en présence du champ magnétique. Ça existe comme il existe aussi des inverseurs ILS. Dans ce cas, on enlève l'aimant pour activer le capteur et on le repose pour le stockage.

Sylvain

Re: "Convertir" la fermeture d'un interrupteur en une impulsion

Posté : ven. 15 juil. 2016 08:41
par guillaume9344
Bonjour, la solution de spourre et bien aussi .
pour le montage , le condensateur est à l 'envers , le coté + est du coté de l 'intérupteur , de plus je n 'arrive pas a voir si c'est un 10µf ou 1µf. vous pouvez essayez le montage avec un simple intérupteur pour déterminer les temps de commutation du la pin de l'esp.
Dans le programme de l 'esp , il faut également au plus tot metre le gpio au niveau haut puis ensuite cconfigurer la pin en sortie , car si la pin est mise en premier en sortie au niveau bas , le condensateur se décharge casiment instentanement.
@+

Re: "Convertir" la fermeture d'un interrupteur en une impulsion

Posté : ven. 15 juil. 2016 16:27
par christophe27
Merci pour vos reponses
J'avais pensée a ce type d'interrupteur que propose spourre...mais si l'opérateur oublie ou "traine"ou...etc ont aura pas un top départ précis.
IL y aura un compteur sur le tapis pour mesurer la position des bouteilles
Je veut faire des contrôle:
-exemple 30% d'avancement = 60°C dans la bouteille
afin de moduler la temperture des douche.... et puis c'est aussi pour le "FUN" de bidoullier et découvrir l'éléctronique

GUIlLLAUME
je confirme le condensateur est bien un 10µf
Je l'ai retourner verfié le code ...mais c'est pareille.
Avec un bouton poussoir, a "l'oeil" il faut 1 seconde!
Voici le programme de l'ESP
(c'est mix de:
https://github.com/Hackable-magazine/Ha ... dallas.ino
et
https://github.com/Hackable-magazine/Ha ... sp/esp.ino)

Code : Tout sélectionner

#include <ESP8266WiFi.h>
#include <OneWire.h>
#include <DallasTemperature.h>

const char* ssid = "domoAP";
const char* password = "mot2passe";

#define ONE_WIRE_BUS 2  // DS18B20 pin
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature DS18B20(&oneWire);


// Créé le serveur Web en spécifiant le port TCP/IP
// 80 est le port par défaut pour HTTP
WiFiServer server(80);

// démarrage
void setup() {
  uint8_t mac[WL_MAC_ADDR_LENGTH];
  float temp;
  
  // communication série 115200
  Serial.begin(115200);
  // petit pause
  delay(10);
  
  // GPIO0 à haut //////comfiguration du GPIO0 qui doit alimenter le pin ch_pd
  digitalWrite(0, 1); 
  // GPIO0 en sortie
  pinMode(0, OUTPUT);
  
  // Deux sauts de ligne pour faire le ménage car
  // le module au démarrage envoi des caractères sur le port série
  Serial.println();
  Serial.println();
  
  do {
    DS18B20.requestTemperatures(); 
    temp = DS18B20.getTempCByIndex(0);
  } while (temp == 85.0 || temp == (-127.0));
  Serial.print("Temperature: ");
  Serial.println(temp);
    
  if(WiFi.macAddress(mac) != 0) {
    for(int i=0; i<WL_MAC_ADDR_LENGTH; i++) {
//      Serial.print(mac[i],HEX);
      if(mac[i]<16) Serial.print ("0");
      Serial.print(mac[i],HEX);
      Serial.print((i < WL_MAC_ADDR_LENGTH-1) ? ":" : "\n");
    }
  }

  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);

  Serial.print("Connexion a : ");
  Serial.println(ssid);  
  // Connexion au point d'accès
  WiFi.begin(ssid, password);
  
  // On boucle en attendant une connexion
  // Si l'état est WL_CONNECTED la connexion est acceptée
  // et on a obtenu une adresse IP
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
  
  // Démarrage du serveur Web
  server.begin();
  Serial.println("Server started");

  // On affiche notre adresse IP
  Serial.println(WiFi.localIP());
}

// boucle principale
void loop() {
  float temp;
  char strbuffer[10];
  
  // Est-ce qu'un client Web est connecté ?
  WiFiClient client = server.available();
  if (!client) {
    // non, on abandonne ici et on repart dans un tour de loop
    return;
  }
  
  // Un client est connecté
  Serial.println("new client");
  // On attend qu'il envoi des données
  while(!client.available()){
    delay(1);
  }
  
  // On récupère la ligne qu'il envoi jusqu'au premier retour chariot (CR)
  String req = client.readStringUntil('\r');
  // On affiche la ligne obtenue pour information
  Serial.println(req);
  // La ligne est récupérée, on purge 
  client.flush();
  
  // Test de la requête
  int val;
  
  
  // est-ce que le chemin dans la requête est "/gettemp" ?
  if (req.indexOf("/gettemp") != -1) {
    do {
      DS18B20.requestTemperatures(); 
      temp = DS18B20.getTempCByIndex(0);
    } while (temp == 85.0 || temp == (-127.0));
    
    Serial.print("Temperature: ");
    Serial.println(temp);}
  
  // est-ce que le chemin dans la requête est "/gpio/0" ?
  else if (req.indexOf("/gpio/0") != -1){
    // oui, ceci correspond à "0" (OFF)
    val = 0;
    }
  // non, est-ce que le chemin est "/gpio/1" ?
  else if (req.indexOf("/gpio/1") != -1){
    // oui, ceci correspond à "1" (ON)
    val = 1;
  } 
  else {
  // C'est un autre chemin qui est demandé et il ne correspond à rien
  
    // On signal que cette demande est invalide
    Serial.println("invalid request");
    // et on déconnecte le client du serveur Web
    client.stop();
    // et on repart dans un tour de boucle
    return;
  }

  // Nous avons obtenu l'état demandé pour la sortie GPIO0
  // Nous pouvons écrire l'état de la sortie
  digitalWrite(0, val);
  // Peut-être le client a-t-il envoyé d'autres données,
  // mais nous purgeons la mémoire avant d'envoyer notre réponse
  //client.flush();

  // Composition de la réponse à envoyer au client
  // On commence avec le texte d'une réponse HTTP 200 standard et un début de page HTML
  //   String m = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nLa sortie est a l'etat ";
  // puis on complète avec "haut" ou "bas" en fonction de la la valeur de val
  //m += (val)?"haut":"bas";
  // et on termine la page HTML
  //m += "</html>\n";

  // On envoi la réponse au client
  //client.print(m);
  // petite pause
  //delay(1);
  // et on le déconnecte du serveur Web
  //Serial.println("Client disonnected");

  // client.stop() n'est pas utilisé ici,
  // le client est automatiquement déconnecté à la fin de la fonction loop(),
  // lorsque l'objet "client" est détruit, car la déclaration est locale.}{
    // On signal que cette demande est invalide
   // Serial.println("invalid request");
    // et on déconnecte le client du serveur Web
    //client.stop();
    // et on repart dans un tour de boucle
   // return;
  //}

  // Peut-être le client a-t-il envoyé d'autres données,
  // mais nous purgeons la mémoire avant d'envoyer notre réponse
  client.flush();
  if (req.indexOf("/gettemp") != -1) {
  //  do {
  // Composition de la réponse à envoyer au client
  String s = "HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\n\r\n";
  dtostrf(temp, 4, 3, strbuffer);
  /*
  for(int i=0;i<sizeof(strbuffer);i++){
    s += strbuffer[i];
  }
  */
  s += strbuffer;
  s += "\n";
  client.print(s);
  }
  // petite pause
  delay(1);
  // et on le déconnecte du serveur Web
  Serial.println("Client disonnected");
  
}
MERCI