Publié le

Imprimante 3D – Améliorations

Comme je l’ai dit dans l’article précédent, j’ai fait quelques améliorations à mon imprimante 3D.

1. Le tapis chauffant :

Pour avoir une meilleure accroche et éviter que les pièces ce décollent, j’ai ajouté un plateau chauffant de type MK2a.

Le seul point est son alimentation, il a besoin d’un peu plus de 11A en 12V pour fonctionner, donc il faut ajouter une alimentation style pc assez puissante pour le faire fonctionner.

kit-de-cama-caliente-mk2a_800x800

Voici je kit que j’ai pris. Il vient se placer sous le plateau en verre et chauffe assez rapidement.

Suite à l’installation du plateau chauffant, il faut aller modifier le firmware de l’imprimante pour pouvoir l’utiliser :

il suffit juste de modifier dans le fichier configuration.h la valeur

#define TEMP_SENSOR_BED 0

En

#define TEMP_SENSOR_BED 1

On charge le firmware et c’est bon.

2. Octoprint (serveur d’impression réseau) :

Ah j’ai ressorti mon RaspberryPi pour l’occasion !

Pourquoi ne pas s’en faire un petit serveur d’impression qui va aussi nous permettre d’éteindre et d’allumer l’imprimante 3D ?

Chose pratique, on peut télécharger une image pour le Rasp avec octoprint préinstallé (pour éviter de devoir tout configurer à la main) c’est OctoPi.

Ca permet de surveiller l’impression (avec une caméra, voir ou on en est …) très pratique et extrêmement simple à utiliser !

Je prépare mon fichier .gcode sous Cura, et je l’upload directement via l’interface Octoprint.

La je suis en train d’implémenter un ajout pour pouvoir allumer/éteindre l’alimentation de l’imprimante 3D directement via Octoprint :

Sur les alimentations ATX, si on connecte le fil vert avec le fil noir, l’alimentation se met en marche. Il y a aussi le fil violet qui est un +5V continu (indépendant de la marche ou l’arrêt par le fil vert de l’alimentation).

Je place donc un relais qui va contacter ma masse avec le fil vert pour alimenter l’imprimante 3D.

Un petit tour en ssh sur le Rasp pour préparer tout ça :

On commence par installer WiringPi :

sudo apt-get install git-core

sudo apt-get update
sudo apt-get upgrade

git clone git://git.drogon.net/wiringPi

cd wiringPi
./build

On fait un petit test en lançant

gpio readall

et on observe quelque chose comme ça :

+-----+-----+---------+------+---+---Pi 2---+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |
 |   2 |   8 |   SDA.1 |   IN | 1 |  3 || 4  |   |      | 5V      |     |     |
 |   3 |   9 |   SCL.1 |   IN | 1 |  5 || 6  |   |      | 0v      |     |     |
 |   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 0 | OUT  | TxD     | 15  | 14  |
 |     |     |      0v |      |   |  9 || 10 | 1 | ALT0 | RxD     | 16  | 15  |
 |  17 |   0 | GPIO. 0 |   IN | 0 | 11 || 12 | 0 | IN   | GPIO. 1 | 1   | 18  |
 |  27 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |
 |  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO. 4 | 4   | 23  |
 |     |     |    3.3v |      |   | 17 || 18 | 0 | IN   | GPIO. 5 | 5   | 24  |
 |  10 |  12 |    MOSI |   IN | 0 | 19 || 20 |   |      | 0v      |     |     |
 |   9 |  13 |    MISO |   IN | 0 | 21 || 22 | 0 | IN   | GPIO. 6 | 6   | 25  |
 |  11 |  14 |    SCLK |   IN | 0 | 23 || 24 | 1 | IN   | CE0     | 10  | 8   |
 |     |     |      0v |      |   | 25 || 26 | 1 | IN   | CE1     | 11  | 7   |
 |   0 |  30 |   SDA.0 |   IN | 1 | 27 || 28 | 1 | IN   | SCL.0   | 31  | 1   |
 |   5 |  21 | GPIO.21 |   IN | 1 | 29 || 30 |   |      | 0v      |     |     |
 |   6 |  22 | GPIO.22 |   IN | 1 | 31 || 32 | 0 | IN   | GPIO.26 | 26  | 12  |
 |  13 |  23 | GPIO.23 |   IN | 0 | 33 || 34 |   |      | 0v      |     |     |
 |  19 |  24 | GPIO.24 |   IN | 0 | 35 || 36 | 0 | IN   | GPIO.27 | 27  | 16  |
 |  26 |  25 | GPIO.25 |   IN | 0 | 37 || 38 | 0 | IN   | GPIO.28 | 28  | 20  |
 |     |     |      0v |      |   | 39 || 40 | 0 | IN   | GPIO.29 | 29  | 21  |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+---Pi 2---+---+------+---------+-----+-----+

On voit ici que mon GPIO15 est configuré en OUT (ce qui m’intéresse pour contrôler mon relais !)

un petit coup pour qu’il soit toujours actif en OUT :

sudo nano /etc/rc.local

Et on ajoute juste avant « exit 0 » la ligne :

/usr/local/bin/gpio mode 15 out

Ctrl+X et on valide par Y pour enregistrer la configuration.

Maintenant on va aller ajouter ça à l’interface d’octoprint :

sudo nano ~/.octoprint/config.yaml

iDans la partie « action » on va aller rajouter :

- action: Printer on
command: gpio write 15 1
name: Printer On
- action: Printer off
command: gpio write 15 0
name: Printer Off

Soit :

 actions:
  - action: shutdown
    async: true
    command: sudo shutdown -h now
    confirm: You are about to shutdown the system.
    ignore: true
    name: Shutdown
  - action: reboot
    async: true
    command: sudo shutdown -r now
    confirm: You are about to reboot the system
    ignore: true
    name: Reboot
  - action: restart
    async: true
    command: sudo service octoprint restart
    confirm: You are about to restart OctoPrint
    ignore: true
    name: Restart OctoPrint
  - action: Printer on
    command: gpio write 15 1
    name: Printer On
  - action: Printer off
    command: gpio write 15 0
    name: Printer Off

Et du coup on a ces deux entrées dans le menu :

5697edde807b8_OctoPrint-GoogleChrome.jpg.43028aa36a7cb5ed227261b6a7514b52

Petit rajout : Octoprint possède de nombreux plugins dont « email notifier » qui envoi un mail quand l’impression est finie.

Pour l’utiliser il faut refaire un peu de ssh :

sudo pip install keyrings.alt
sudo pip install yagmail

On lance ensuite python avec :

~/oprint/bin/python

Puis :

>> import yagmail
>> yagmail.register('mygmailusername', 'mygmailpassword')

Ajout du wifi :

Bon j’ai un CPL qui m’a lâché, donc j’ai voulu connecter le Rasp en Wifi.

Une petit manipulation à faire :

sudo nano /etc/network/interfaces

Le fichier se présente de cette façon :

auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet manual

auto wlan0
allow-hotplug wlan0
#iface wlan0 inet manual
#wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf


auto wlan1
allow-hotplug wlan1
# iface wlan1 inet manual
# wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

on va aller rajouter ces deux lignes dans « auto wlan0 » juste après « allow-hotplug wlan0 » :

 wpa-ssid "nom du réseau"
 wpa-psk "Mot de passe"

on ferme, on reboot et voilà on est en wifi !

3. Le capteur inductif :

Bon là on complique un peu (beaucoup en fait).

J’ai pris cette sonde sur eBay et je me suis imprimé son support.

J’ai monté ma sonde et j’ai attaqué les réglages.

La sonde est une sonde 12V donc on doit réduire la sortie de la sonde pour ne pas endommager la carte ramps !

Raccordement sonde

Une fois fait on déconnecte le capteur de fin de course Zmin et on vient y brancher notre sonde.

Il est temps d’étalonner notre capteur !

Je me suis servit d’Octoprint pour commander l’imprimante pendant les manipulations, c’est très pratique !

  1. Première étape, on va aller placer l’extrudeuse au centre du plateau (icône home quand on est dans l’onglet control).
  2. Avec un marqueur on fait une petit croix juste en dessous de la buse d’impression.
  3. On coupe l’alimentation de l’imprimante (alors on coupe juste la partie sur le 12V, le cable USB doit rester branché sur le Rasp).
  4. On descend la tête manuellement (oui oui, en pesant tourner les moteurs à la main) pour ajuster notre zéro (on doit pouvoir passer une feuille sous la buse, même manipulation que quand on règle le niveau en manuel).
  5. Dans octoprint on va dans terminal et on envoie la commande : G92 X0 Y0 Z0
  6. On remet l’alimentation 12V de l’imprimante
  7. On va dans Control et on va aller déplacer la sonde de telle manière à ce qu’elle soit positionnée et centrée sur la croix (ainsi on va connaitre le décalage entre notre sonde et la buse).
  8. En jouant avec les moteur on fait varier la hauteur de l’axe Z pour trouver la position à laquelle le capteur s’enclenche (la led éclaire faiblement / fortement).
  9. Une fois cette étape faite, on lance dans l’onglet terminal la commande M114 (qui va nous donner la position de l’extruder par rapport à la position qu’on a définie comme le zéro à l’étape 5).
  10. Et on relève les valeurs obtenues en résultat (chez moi ça donne X 23 Y 28 Z 4.7) (on les notes sur un papier).
  11. Maintenant on va aller préparer le firmware pour que le niveau devienne automatique :
  • Dans configuration.h :

On commente la ligne (avec // en début de ligne) :

#define ENDSTOPPULLUP_ZMIN

On dé-commente la ligne (on vire les //) :

#define ENABLE_AUTO_BED_LEVELING

On règle ensuite le rectangle de palpage (que je vais surement modifier, mais je ne dis pas pourquoi) :

 // set the rectangle in which to probe
    #define LEFT_PROBE_BED_POSITION 15
    #define RIGHT_PROBE_BED_POSITION 160
    #define BACK_PROBE_BED_POSITION 160
    #define FRONT_PROBE_BED_POSITION 20

Le nombre de alpages, j’en veux 4 donc je met deux (mais je vais tester avec 9, donc 3, normalement à cette étape rien à faire c’est déjà à deux, mais on vérifie) :

   #define AUTO_BED_LEVELING_GRID_POINTS 2

Et ensuite on va aller définir les réglages du capteur :

#define X_PROBE_OFFSET_FROM_EXTRUDER -23
#define Y_PROBE_OFFSET_FROM_EXTRUDER -28
#define Z_PROBE_OFFSET_FROM_EXTRUDER -4.7

Et là vous retrouvez les valeurs du point 10, avec juste un signe négatif devant (le signe négatif EST INDISPENSABLE !).

On modifie encore deux trois valeurs (ça donne de la rapidité au niveau automatique).

 #define Z_RAISE_BEFORE_HOMING 10       // (in mm) Raise Z before homing (G28) for Probe Clearance.
                                        // Be sure you have this distance over your Z_MAX_POS in case

  #define Z_RAISE_BEFORE_PROBING 1    //How much the extruder will be raised before traveling to the first probing point.
  #define Z_RAISE_BETWEEN_PROBINGS 1  //How much the extruder will be raised when traveling from between next probing points
  • Dans configuration_adv.h :

On dé-commente la ligne

#define ENDSTOPS_ONLY_FOR_HOMING // If defined the endstops will only be used for homing
  • Dans ultralcd.cpp

On commente la ligne (on vire l’entrée dans le menu du lcd qui lance le niveau du plateau, vu qu’il sera fait automatiquement à chaque impression) :

MENU_ITEM(function, MSG_LEVEL_PLATE, function_config_level_bed);
  • Dans Cura :

On va aller modifier GCODE de départ :

; -- START GCODE --
;Sliced at: {day} {date} {time}
;Basic settings: Layer height: {layer_height} Walls: {wall_thickness} Fill: {fill_density}
;Print time: {print_time}
;Filament used: {filament_amount}m {filament_weight}g
;Filament cost: {filament_cost}
;Uncomment to add your own temperature line
;M109 S{print_temperature}
;Uncomment to add your own bed temperature line
;M190 S{print_bed_temperature}
G21                     ;metric values
G90                     ;absolute positioning
M107                    ;start with the fan off
G28 X0 Y0               ;move X/Y to min endstops
G28 Z0                  ;move Z to min endstops
G1 Z15.0 F1200          ;move the platform down 15mm
G92 E0                  ;zero the extruded length
G1 F200 E20             ;extrude 20mm of feed stock
G92 E0                  ;zero the extruded length again
G1 F{travel_speed}
;Uncomment to put a printing message on LCD screen
;M117 Printing...
; -- end of START GCODE --

On modifie les lignes 14 et 15 :

; -- START GCODE --
;Sliced at: {day} {date} {time}
;Basic settings: Layer height: {layer_height} Walls: {wall_thickness} Fill: {fill_density}
;Print time: {print_time}
;Filament used: {filament_amount}m {filament_weight}g
;Filament cost: {filament_cost}
;Uncomment to add your own temperature line
;M109 S{print_temperature}
;Uncomment to add your own bed temperature line
;M190 S{print_bed_temperature}
G21                     ;metric values
G90                     ;absolute positioning
M107                    ;start with the fan off
G28                     ;move X/Y to min endstops
G29                     ;AUTOLEVEL
G1 Z15.0 F1200          ;move the platform down 15mm
G92 E0                  ;zero the extruded length
G1 F200 E20             ;extrude 20mm of feed stock
G92 E0                  ;zero the extruded length again
G1 F{travel_speed}
;Uncomment to put a printing message on LCD screen
;M117 Printing...
; -- end of START GCODE --

 

 

Publié le

Imprimante 3D – Mon expérience de montage (Partie 1)

Ca fait 3 ou 4 ans que je m’intéresse aux imprimantes 3D, mais je n’avais jamais craqué à cause du budget élevé, mais aussi par peur de ne pas y arriver.

Pendant les soldes, j’ai reçu un mail de Darty avec un imprimante 3D soldée à 600€ (au lieu de 1200€). Petit tour sur internet pour regarder ce que ça valait, bonne imprimante pour débuter, mais le prix des filaments est exorbitant (filaments propriétaires à 55€ les 600g, j’abandonne de suite).

Mais là j’avais vraiment envie de me lancer, donc j’ai cherché des modèles à monter sois même (pour affranchir des filaments propriétaires) et je suis tombé sur la Bq Hepestos Prusa i3. Elle me parait sympa, un petit tour sur les commentaires sur internet, sur le prix des filaments (20€ le rouleau d’1kg), tour sur les forums pour le montage (montage de l’imprimante, plateau chauffant…) et je décide de craquer ! Je prends donc le kit à 510€ (livré avec 1Kg de filament couleur au choix) et j’ajoute le kit plateau chauffant à 15€ (autant le prendre de suite). Petit tour sur le panier et là une belle surprise :

IMG_1006

472€ au lieu des 525€ annoncés (il y avait une remise de 10% pour deux articles achetés).

Je la commande donc directement !

1. La réception et l’ouverture des colis (Vendredi 12 Février) :

Je reçois donc mon colis à 13h et il ne me tarde qu’une chose : ouvrir le colis et attaquer le montage.

J’avais vu sur des forums que certains avaient mit entre 20 et 25h pour la monter du coup il me tardait de m’y mettre (surtout avec un week end très chargé en cours).

IMG_1023IMG_1024IMG_1025

  1. La première étape : mettre les écrous dans les morceaux de PLA avec un fer à 100°C environ pour qu’ils restent en place.

L’étape la plus ennuyeuse du montage, et qui m’a prit dans les 1h tellement c’est *****

2.  Seconde étape : On attaque le montage de l’axe X

Alors là rien de dur, j’y ai mit 20 minutes environ, le plus chiant est de passer les tiges dans les roulements sans faire sauter de billes (on y va tout doucement, avec calme et patience).

IMG_1026

Et c’est tout joli !

3. Troisième étape : Montage de l’axe Z

On commence à rentrer dans le vif du sujet, là j’y ai passé une bonne heure, car on y assemble l’axe X à la fin.

IMG_1027

Ca commence enfin à prendre forme, mais là mon cours devait arriver donc pause le temps des cours.

4. Quatrième étape : Montage de l’axe Y

J’ai repris le montage le soir vers 20h30, pour la partie la plus épaisse du guide, le montage de l’axe Y ou vient se greffer à la fin l’assemblage axe Z et X. Deux bonnes heures pour monter tout ça (en plus avec la fatigue je commençais à avoir du mal).

 

5. Cinquième étape : montage de l’extrudeuse

J’avais vu que cette étape était très rapide, donc en 20 minutes je l’ai montée avant d’aller me coucher.

IMG_1032

2. La partie électronique (samedi 13 février) :

Alors grosse journée de cours, j’ai un peu trainé au lit et je me suis mis à la sixième étape qu’après manger (vers 12h45).

C’est la partie que j’attendais et appréhendais le plus. Là le manuel pèche un peu (surtout pour la connexion des moteurs, instinctivement je me suis repéré au fil noir et ça a roulé).

Mais le premier problème devait bien arriver ! Au premier branchement de l’imprimante, je remarque que la carte se met en court circuit ! Je titille un peu les fin de courses et je me rends compte que le capteur Z lorsqu’il n’était pas enclenché. J’échange le câblage de ce fin de course avec un X et là c’est le X qui passe problème. Là le stress est un peu monté, mais un gentil twittos m’a dit de vérifier mes câblages et une nappe de connexion avait les fils jaunes et noirs inversés !

IMG_1038

Un petit coup de tournevis et hop le problème est réglé !

J’en suis donc à la partie réglage : je met de niveau mon axe Z, facile avec une bonne règle, je met mon plateau à peut près droit (pour avoir moins à le bouger au nivellement du plateau) et je tente de mettre en place mon filament dans l’extrudeuse.

Et là second problème ! Mon filament ne veut pas rentrer !

IMG_1041IMG_1040

J’avais fait un biseau trop court, en le faisant sur 5 cm mon fil à fini par rentrer (ouf).

Il ne reste plus qu’à lancer la première impression ! Youpi !

 

 

Ah qu’elle est belle ma grenouille !

3. L’installation du plateau chauffant (Lundi 15 février) :

J’avais commandé un plateau chauffant, donc le lundi je me suis attelé à le monter.

Les tutos sur internet sont bien fait, donc je ne vais pas rentrer dans les détails (des détails il y en aura un peu plus tard !).

IMG_1067

4. Installation du capteur inductif (Jeudi 18 février – Vendredi 19 février) :

Bon refaire le niveau du plateau c’est chiant, du coup j’avais commandé un capteur inductif pour pouvoir faire un auto-level (il se fait au lancement de chaque impression, c’est un sacré gain de temps).

Pour son installation, je ferai un autre article plus tard (avec aussi la partie Raspberry Pi et serveur d’impression sur le réseau)

J’ai aussi fixé l’imprimante sur un bout de plan de travail pour éviter qu’elle vibre (ça bouge beaucoup ces bestioles !).

IMG_1108

Et voilà ja fin de l’article !

La suite dans la semaine !

image

Publié le

Collier wifi pour chien (ESP8266)

Mathieu m’a demandé si je pouvais lui faire un système pour être prévenu lorsque Stuart (son chien) n’est plus à portée du wifi. Du coup je me suis lancé dans la confection d’un prototype ainsi que d’une interface de contrôle.

1. Le prototype :

Je suis habitué à travailler avec l’ESP8266 donc naturellement je vais l’utiliser ici.

Le prototype est assez simple (mais relativement efficace !) :

IMG_0923

Je passe sur les branchements, voici le fichier :

#include <ESP8266WiFi.h>
#define led 2

const char* ssid     = "Livebox-4246-ext";
const char* password = "";

const char* host = "192.168.1.50";

void setup() {
  Serial.begin(115200);
  delay(10);
  pinMode(led,OUTPUT);
  digitalWrite(led,LOW);
  
  // We start by connecting to a WiFi network

  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  
  WiFi.begin(ssid, password);
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi connected");  
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}

int value = 0;

void loop() {
  if (WiFi.status() == WL_CONNECTED){
    digitalWrite(led,HIGH);
  }
  else {
    digitalWrite(led,LOW);
  }
  

  Serial.print("connecting to ");
  Serial.println(host);
  
  // Use WiFiClient class to create TCP connections
  WiFiClient client;
  const int httpPort = 80;
  if (!client.connect(host, httpPort)) {
    Serial.println("connection failed");
    return;
  }
  
  // We now create a URI for the request
  String url = "/stuart/stuart.php";
  
  Serial.print("Requesting URL: ");
  Serial.println(url);
  
  // This will send the request to the server
  client.print(String("GET ") + url + " HTTP/1.1\r\n" +
               "Host: " + host + "\r\n" + 
               "Connection: close\r\n\r\n");
  delay(10);
  
  // Read all the lines of the reply from server and print them to Serial
  while(client.available()){
    String line = client.readStringUntil('\r');
    Serial.print(line);
  }
  
  Serial.println();
  Serial.println("closing connection");

  delay(60000);
}

 

 

IMG_0929

Voici la version sans les leds.

La vidéo suivante vous montre le passage de l’état non connecté (led rouge) à connecté (led verte) :

 

2. La partie récupération des données et traitement :

Pour le moment j’ai tout hébergé sur mon NAS synology.

J’ai donc créé dans un premier temps deux tables :

  • Une « detection » qui va enregistrer le timestamp de la dérnière connexion de l’ESP8266
  • Une « suivit » pour activer/désactiver le tracking.

2.1 L’alimentation de la table détection :

J’ai créé un script php qui ajoute juste à ma table le temps php :

<?php
   include("connexionDB.php");

   $date = time();
   mysql_query("INSERT INTO detection (datedetection) VALUES ('$date')");
 echo $date;
?>

2.2 Le contrôle de la surveillance :

Bon Mathieu ne vas pas surveiller Stuart H24, donc il fallait trouver un système pour ne pas créer d’alerte quand on éteint le boitier.

J’ai donc ajouté la table suivit pour savoir si oui ou non on surveille le chien :

<?php 
$page = $_SERVER['PHP_SELF'];
$sec = "5";
include("connexionDB.php");
$req2 = mysql_query("SELECT * FROM suivit ORDER BY rowid DESC LIMIT 1");
   $data2 = mysql_fetch_array($req2);
   
   $etat_suivit = $data2['etat_suivit'];
?>

<style>
    html, body {
   margin: 0;
   padding: 20;
        width:100%;
   height: 100%;
}
    
    div#contenu 
    {
     
   border:none;
        width:100%;
   min-height:100%;
   
    }
    
</style>


<html>
    <head>
   <!-- <meta http-equiv="refresh" content="<?php echo $sec?>;URL='<?php echo $page?>'"> -->
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, user-scalable=no">
          <link rel="stylesheet" type="text/css" href="css/style.css" />
        <title>Gestion tracker</title>
    </head>
    <body>
        <!-- Menu d'entête : -->
        
        <?php if($etat_suivit == 1) {
         $date = time();
   $req = mysql_query("SELECT * FROM detection ORDER BY rowid DESC LIMIT 1");
   $data = mysql_fetch_array($req);
   $last = $data['datedetection'];
   $ecart = $date-$last;
         ?>
         Temps depuis la dernière détection : <?php echo $ecart; ?> sec <Br>
         <?php
        }
        ?>
        <!-- Menu Gauche : -->
        Etat du tracker : 
        
         <div style="width: 50%; height: 10%; float: left ;" class="switch demo">
         <form method='POST' action="post.php">

   
   <input type="checkbox" name="myCheckbox" value="on"
   <?php
   $req2 = mysql_query("SELECT * FROM suivit ORDER BY rowid DESC LIMIT 1");
   $data2 = mysql_fetch_array($req2);
   
   $etat_suivit = $data2['etat_suivit'];
   if ($etat_suivit == 1) {
      ?>
      CHECKED
      <?php
   }
   ?>
   > 
   
   <label><i></i></label>
   
   </div>
   <div style="width: 50%; height: 10%; float: left ;">
   <input type="submit" name="Envoyer" value="Envoyer" />
   </div>
   </form>
   
        
    </body>
</html>

Et le fichier post.php :

<?php 
include("connexionDB.php");


if(isset($_POST['myCheckbox']) && $_POST['myCheckbox']=="on")
{
    $myCheckbox='1';
}
else
{      
    $myCheckbox='0';
}

mysql_query("INSERT INTO suivit(etat_suivit) VALUES ('$myCheckbox')");
         
?>

<SCRIPT LANGUAGE="JavaScript"> 
document.location.href="gestion.php" 
</SCRIPT> 

 

C’est pas du grand art, mais c’est juste dans un premier temps faire des tests, voilà ce que ça donne :

IMG_0932 [162328]IMG_0933 [162329]

 

2.3 Le système d’alerte :

Alors petit fichier php toujours, que mon NAS va exécuter toutes les minutes :

<?php
   

   include("connexionDB.php");
   $date = time();
   $req = mysql_query("SELECT * FROM detection ORDER BY rowid DESC LIMIT 1");
   $data = mysql_fetch_array($req);
   $last = $data['datedetection'];
   $ecart = $date-$last;
   echo $ecart;

   $req2 = mysql_query("SELECT * FROM suivit ORDER BY rowid DESC LIMIT 1");
   $data2 = mysql_fetch_array($req2);
   
   $etat_suivit = $data2['etat_suivit'];
   echo $etat_suivit ;
?>

<?php
if ($ecart > 65 && $etat_suivit > 0) {
$to = "j.pgarcia@me.com";
$subject = "Alerte Stuart";
$body = "Stuart est hors de porté wifi depuis ".$ecart." secondes !";
$headers = 'From: ESP8266 Stuart';

mail($to, $subject, $body, $headers);


}


?>

Et voilà pour le moment !