Je tente de sauvegarder la température relevée par une sonde DS18B20 vers Mysql. J'ai réussi à me connecter au serveur (hébergé sur un Pi Zero dédié à ça uniquement) et à ajouter une valeur fixe via une simple requête INSERT, mais lorsque je cherche à sauvegarder la température, pour une raison que je ne m'explique pas, il m'affiche 0 (au lieu de 19.00)
Connected to YOUR_SSID
IP address: 192.168.1.6
DB - Connecting...
Connected to server version 5.5.52-0+deb8u1
Température actuelle: 19.50
Requête SQL: INSERT INTO sensors.livingroom (temp, datetime) values ('0',NOW())
Data stored!
Bon ben j'ai finalement trouvé. En fait, j'étais complètement à côté de la plaque. suffisait que je m'inspire (très largement) de l'un des exemples fournis avec la lib de mysql_connector pour savoir comment faire.
c'est très bien, .... mais la richesse de ce forum se trouve plus dans les solutions trouvées que dans les questions posées, il serait bien que tu :
poste la solution que tu as trouvée
édite ton premier post pour mettre [Résolu] en début de titre et par la même occasion mettre un titre plus explicite du genre "injection température sonde DS18B20 vers Mysql"
@infobarquee J'y ai pensé, mais il y a déjà tellement de ressource sur le net qui utilise une page php pour insérer des données que je voulais vraiment faire autrement. Je n'ai rien contre php, c'était juste un choix personel.
Donc le "problème" était tout bête. En regardant les exemples fournis avec la library mysql_connector, j'ai vu le "complex_insert" qui explique comment ajouter une température (float) dans la table. Du coup c'était qu'une question de copier/coller, en particulier la ligne
dtostrf(50.125, 1, 1, temperature);
et un petit tour sur la doc pour voir ce que fait dtostrf()
Sincèrement, tout n'était qu'une question de regarder les exemples et de regarder sur internet à quoi correspond les argument de la fonction dtostrf() au lieu de rester buter sur le fait que ma température ne pouvais être qu'un INT et de bidouiller pendant des heures ma requête.
@infobarquee J'y ai pensé, mais il y a déjà tellement de ressource sur le net qui utilise une page php pour insérer des données que je voulais vraiment faire autrement. Je n'ai rien contre php, c'était juste un choix personel.
certes, mais si tu passe le server en php7 et mysql>5.6 tu risques de rencontrer des soucis
mysql se transforme en mysqli
une requete de ce type ne fonctionne plus sur ce type de server
infobarquee:
c'est une des raisons pour laquelle je préfère traiter sur le server la requête, sans compter qu'ajouter une lib prend de la place sur l'arduino
je rajouterais une autre raison :
si la base mysql est chez un hebergeur (free pour mon ex) il est impossible de faire une connexion a distance donc les script d'injection et d'interrogation doivent être sur les serveurs de l'hebergeur
@ rjnc38 la question ne s'est jamais posé étant donné que je compte pas y avoir accès de l'extérieur. Ce "module" n'étant qu'une partie d'un dashboard censé être posé dans la maison.
Mais il est certain que je changerais de méthode lorsque je verrais les limitations de mes choix. Wait & See comme on dit