Community Forum
    • Blog
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login
    1. Home
    2. mjeanne
    3. Topics
    M
    Offline
    • Profile
    • Following 0
    • Followers 0
    • Topics 2
    • Posts 54
    • Groups 0

    Topics

    • M

      Soucis de bascule TEMPO

      Watching Ignoring Scheduled Pinned Locked Moved Téléinfo
      2
      2 Posts
      1k Views
      M
      J'apporte un petit retour sur mon "expérience". Enedis est intervenu au coin de la rue pour corriger le soucis après 22 jours ! Et fiers d'eux, ils me proposent de ne pas faire de régularisation car le tarif était à mon avantage (tous les jours rouges ont basculé en blanc à 11h54).. Mouais, sauf que le compteur ayant fournit des informations erronées à ma maison domotisée, la conso à été supérieure à ce qu'elle aurait été sans cette panne. En jours rouge, mon chauffe-eau ne se déclenche pas, les radiateurs non plus (j'utilise la cheminée) mais la maison se croyant en blanc, j'ai consommé chaque jour un peu de 'blanc' au lieu de rien en 'rouge'. Je pensais profiter de cette panne, au final, elle va me couter.
    • M

      Ajout de l'export XML et brut

      Watching Ignoring Scheduled Pinned Locked Moved WifInfo
      3
      3 Posts
      2k Views
      M
      ce n'était pas une grosse modif, j'ai copié la fonction d'export json. j'ajoute une autre modif, puisque j'ai résolu mon soucis avec mon capteur DHT11 (je déclarais une variable pour la broche utilisée, mais en fait, je ne m'étais pas rendu compte que j'appelais la fonction avec un numéro "en dur"). Pour ajouter température et humidité, j'utilise les librairies d'Adafruit ("Adafruit DHT unified" et "DHT sensor library"): dans le fichier wifinfo.ino, du coté des déclarations de variables: #include <DHT.h> DHT dht(14, DHT11, 15); dans "UpdateSysinfo", la lecture de la sonde (avec 2 essais en cas de non réponse) int retry = 0; float h = dht.readHumidity(); while (isnan(h) && (retry <2)) { delay(500); h = dht.readHumidity(); retry++; } sprintf( buff, "%f", h); sysinfo.humidity = h; float t = dht.readTemperature(); retry = 0; while (isnan(t) && (retry <2)) { delay(500); t = dht.readTemperature(); retry++; } sprintf( buff, "%f C", t); sysinfo.temperature = t; Pour stocker les données, modif de la structure dans wifinfo.h: // sysinfo informations typedef struct { String sys_uptime; String temperature; String humidity; } _sysinfo; Dans webserver.cpp, modif de la sortie des infos "getSysJSONData" response += "{\"na\":\"Uptime\",\"va\":\""; response += sysinfo.sys_uptime; response += "\"},\r\n"; response += "{\"na\":\"Temperature\",\"va\":\""; response += sysinfo.temperature ; response += " °C\"},\r\n"; response += "{\"na\":\"Humidity\",\"va\":\""; response += sysinfo.humidity ; response += " %\"},\r\n"; j'exporte aussi ces données dans les exports json, xml et raw, dans leurs fonctions respective: void sendJSON(void) { ValueList * me = tinfo.getList(); String response = ""; // Got at least one ? if (me) { // Json start response += FPSTR(FP_JSON_START); response += F("\"_UPTIME\":"); response += seconds; response += F(",\"_TEMPERATURE\":"); response += sysinfo.temperature; response += F(",\"_HUMIDITY\":"); response += sysinfo.humidity; (...) } void sendXML(void) { ValueList * me = tinfo.getList(); String response = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<data>\r\n"; // Got at least one ? if (me) { // Json start response += F("<_UPTIME>"); response += seconds; response += F("</_UPTIME>\r\n"); response += F("<T>"); response += sysinfo.temperature; response += F("</T>\r\n"); response += F("<H>"); response += sysinfo.humidity; response += F("</H>\r\n"); (...) } void sendRAW(void) { ValueList * me = tinfo.getList(); String response = ""; // Got at least one ? if (me) { // Json start response += F("UPTIME "); response += seconds; response += F(" #\r\n"); response += F("T "); response += sysinfo.temperature; response += F(" #\r\n"); response += F("H "); response += sysinfo.humidity; response += F(" #\r\n"); (...) } Selon la broche utilisée pour votre DHT11, changez la ligne DHT dht(14, DHT11, 15); J'utilise la GPIO14 (D5), car sur mon nodeMCU, on a cote à cote 3V-GND-D5, ce qui correspond à l'ordre des broches de mon capteur. [image: dht11_temperature_and_humidity_sensor.jpg] Attention si vous utilisez ce capteur: [image: Temperature%20and%20Humidity%20Sensor%20DHT11.JPG] L'ordre des broches est différent. Si vous utilisez un DHT22, ça marche aussi, il suffit de remplacer DHT11 par DHT22. Le 3ème paramètre (15) n'est normalement plus utilisé sur les versions récente de la librairie. Il permet d'ajuster la vitesse de lecture à la vitesse du CPU. C'est maintenant automatique.