{"id":146,"date":"2016-08-06T05:32:13","date_gmt":"2016-08-06T04:32:13","guid":{"rendered":"http:\/\/daniel974.fr\/wordpress\/?p=146"},"modified":"2016-08-08T17:08:28","modified_gmt":"2016-08-08T16:08:28","slug":"esp8266-arduino-killer","status":"publish","type":"post","link":"http:\/\/daniel974.fr\/wordpress1\/2016\/08\/06\/esp8266-arduino-killer\/","title":{"rendered":"ESP8266 Arduino Killer"},"content":{"rendered":"<p>Tr\u00e8s attendue cette commande est enfin arriv\u00e9e avec les esp8266 et surtout sa mise en \u0153uvre Wemos:<a href=\"http:\/\/daniel974.fr\/wordpress\/wp-content\/uploads\/2016\/08\/mini_v2.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-medium wp-image-147\" src=\"http:\/\/daniel974.fr\/wordpress\/wp-content\/uploads\/2016\/08\/mini_v2-300x157.jpg\" alt=\"mini_v2\" width=\"300\" height=\"157\" srcset=\"http:\/\/daniel974.fr\/wordpress1\/wp-content\/uploads\/2016\/08\/mini_v2-300x157.jpg 300w, http:\/\/daniel974.fr\/wordpress1\/wp-content\/uploads\/2016\/08\/mini_v2.jpg 955w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>et depuis j&rsquo;utilise beaucoup moins mes arduinos&#8230;.<a href=\"http:\/\/daniel974.fr\/wordpress\/wp-content\/uploads\/2016\/08\/mini_v2.jpg\"><br \/>\n<\/a>La station m\u00e9t\u00e9o ressemble d\u00e9sormais \u00e0 \u00e7a :<a href=\"http:\/\/daniel974.fr\/wordpress\/wp-content\/uploads\/2016\/08\/1465738141742-img_20160612_133556.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-148\" src=\"http:\/\/daniel974.fr\/wordpress\/wp-content\/uploads\/2016\/08\/1465738141742-img_20160612_133556-300x169.jpg\" alt=\"1465738141742-img_20160612_133556\" width=\"305\" height=\"172\" srcset=\"http:\/\/daniel974.fr\/wordpress1\/wp-content\/uploads\/2016\/08\/1465738141742-img_20160612_133556-300x169.jpg 300w, http:\/\/daniel974.fr\/wordpress1\/wp-content\/uploads\/2016\/08\/1465738141742-img_20160612_133556-1024x576.jpg 1024w, http:\/\/daniel974.fr\/wordpress1\/wp-content\/uploads\/2016\/08\/1465738141742-img_20160612_133556.jpg 1920w\" sizes=\"(max-width: 305px) 100vw, 305px\" \/><\/a><\/p>\n<p>C&rsquo;est quand m\u00eame plus simple&#8230;.plus besoin d&rsquo;Android et ses liaisons BlueTooth et Wifi, l&rsquo;esp transmettant directement les donn\u00e9es sur mon site<\/p>\n<p>le code:<\/p>\n<pre class=\"decode-attributes:false lang:c decode:true\">#include &lt;ESP8266WiFi.h&gt;\r\n#include &lt;Wire.h&gt;                                                       \/\/ required by BME280 library\r\n#include &lt;BME280_t.h&gt;\r\n#include &lt;ESP8266HTTPClient.h&gt;\r\n\r\n#define ASCII_ESC 27\r\n#define MYALTITUDE  150.50\r\n\r\nchar bufout[10];\r\n\r\nBME280&lt;&gt; BMESensor;\r\n\r\nconst char* ssid = \"XXXXXXXX\";\r\nconst char* password = \"XXXXXXXXX\";\r\nlong previousMillis = 0;\r\nunsigned long currentMillis = 0;\r\nlong interval = 300000; \/\/ READING INTERVAL\r\n\r\nString data;\r\n\/\/EthernetClient Eclient;\r\nWiFiServer server(80);\r\n\r\nvoid setup() {\r\n  Serial.begin(115200);\r\n  Wire.begin(0, 2);                                                     \/\/ initialize I2C that connects to sensor\r\n  BMESensor.begin();\r\n  delay(10);\r\n\r\n  \/\/ Connect to WiFi network\r\n  Serial.println();\r\n  Serial.println();\r\n  Serial.print(\"Connecting to \");\r\n  Serial.println(ssid);\r\n\r\n  WiFi.begin(ssid, password);\r\n\r\n  while (WiFi.status() != WL_CONNECTED) {\r\n    delay(500);\r\n    Serial.print(\".\");\r\n  }\r\n  Serial.println(\"\");\r\n  Serial.println(\"WiFi connected\");\r\n\r\n  \/\/ Start the server\r\n  server.begin();\r\n  Serial.println(\"Server started\");\r\n\r\n  \/\/ Print the IP address\r\n  Serial.print(\"Use this URL to connect: \");\r\n  Serial.print(\"http:\/\/\");\r\n  Serial.print(WiFi.localIP());\r\n  Serial.println(\"\/\");\r\n\r\n}\r\n\r\nvoid loop() {\r\n  BMESensor.refresh();                                                  \/\/ read current sensor data\r\n  sprintf(bufout, \"%c[1;0H\", ASCII_ESC);\r\n  Serial.print(bufout);\r\n  \/\/Serial.write(27);       \/\/ ESC command\r\n  \/\/Serial.print(\"[2J\");    \/\/ clear screen command\r\n  \/\/Serial.write(27);\r\n  \/\/Serial.print(\"[H\");\r\n  Serial.print(\"Temperature: \");\r\n  Serial.print(BMESensor.temperature);                                  \/\/ display temperature in Celsius\r\n  Serial.println(\"C\");\r\n\r\n  Serial.print(\"Humidity:    \");\r\n  Serial.print(BMESensor.humidity);                                     \/\/ display humidity in %\r\n  Serial.println(\"%\");\r\n\r\n  Serial.print(\"Pressure:    \");\r\n  Serial.print(BMESensor.pressure  \/ 100.0F);                           \/\/ display pressure in hPa\r\n  Serial.println(\"hPa\");\r\n\r\n  float relativepressure = BMESensor.seaLevelForAltitude(MYALTITUDE);\r\n  Serial.print(\"RelPress:    \");\r\n  Serial.print(relativepressure  \/ 100.0F);                             \/\/ display relative pressure in hPa for given altitude\r\n  Serial.println(\"hPa\");\r\n\r\n  Serial.print(\"Altitude:    \");\r\n  Serial.print(BMESensor.pressureToAltitude(relativepressure));         \/\/ display altitude in m for given pressure\r\n  Serial.println(\"m\");\r\n\r\n  delay(5000);\r\n  \/\/***************************************************************\r\n  currentMillis = millis();\r\n  if (currentMillis - previousMillis &gt; interval) { \/\/ READ ONLY ONCE PER INTERVAL\r\n    previousMillis = currentMillis;\r\n    String t =  String(BMESensor.temperature, 2);\r\n    String h =  String(BMESensor.humidity, 2);\r\n    String p =  String( BMESensor.pressure);\r\n\r\n    data = \"?temp1=\" + t + \"&amp;hum1=\" + h + \"&amp;pres1=\" + p;\r\n    HTTPClient http;\r\n\r\n    Serial.print(\"[HTTP] begin...\\n\");\r\n\r\n    http.begin(\"http:\/\/www.xxxxxxxxxxxxxxxxxx.php\"+data); \/\/HTTP\r\n\r\n    Serial.print(\"[HTTP] GET...\\n\");\r\n    Serial.print(\"http:\/\/www.xxxxxxxxxxxxxxx.php\");Serial.print(data);Serial.print(\"\\n\");\r\n    \/\/ start connection and send HTTP header\r\n    int httpCode = http.GET();\r\n\r\n    \/\/ httpCode will be negative on error\r\n    if (httpCode &gt; 0) {\r\n      \/\/ HTTP header has been send and Server response header has been handled\r\n      Serial.printf(\"[HTTP] GET... code: %d\\n\", httpCode);\r\n\r\n      \/\/ file found at server\r\n      if (httpCode == HTTP_CODE_OK) {\r\n        String payload = http.getString();\r\n        Serial.println(payload);\r\n      }\r\n    } else {\r\n      Serial.printf(\"[HTTP] GET... failed, error: %s\\n\", http.errorToString(httpCode).c_str());\r\n    }\r\n\r\n    http.end();\r\n  }\r\n\r\n  \/\/ Check if a client has connected\r\n  WiFiClient client = server.available();\r\n  if (!client) {\r\n    return;\r\n  }\r\n\r\n  \/\/ Wait until the client sends some data\r\n  Serial.println(\"new client\");\r\n  while (!client.available()) {\r\n    delay(1);\r\n  }\r\n\r\n  \/\/ Return the response\r\n  client.println(\"HTTP\/1.1 200 OK\");\r\n  client.println(\"Content-Type: text\/html\");\r\n  client.println(\"\"); \/\/  do not forget this one\r\n  client.println(\"&lt;!DOCTYPE HTML&gt;\");\r\n  client.println(\"&lt;html&gt;\");\r\n  client.println(\"&lt;head&gt;&lt;META HTTP-EQUIV=\\\"refresh\\\" CONTENT=\\\"10\\\"&gt;&lt;\/head&gt;&lt;body&gt;\");\r\n  client.println(\"Mesures du &lt;SCRIPT LANGUAGE=\\\"JavaScript\\\"&gt; var maintenant=new Date();document.write(maintenant);&lt;\/SCRIPT&gt;: &lt;br&gt;\");\r\n\r\n  client.println(\"Temp&amp;eacute;rature:\");\r\n  client.println(BMESensor.temperature);\r\n  client.println(\"&amp;deg;C&lt;br&gt;\");\r\n\r\n  client.println(\"Humidit&amp;eacute;:   \");\r\n  client.println(BMESensor.humidity);                                     \/\/ display humidity in %\r\n  client.println(\"%&lt;br&gt;\");\r\n\r\n  client.println(\"Pression:   \");\r\n  client.println(BMESensor.pressure  \/ 100.0F);                           \/\/ display pressure in hPa\r\n  client.println(\"hPa\");\r\n\r\n  client.println(\"&lt;\/body&gt;&lt;\/html&gt;\");\r\n\r\n  delay(1);\r\n  Serial.println(\"Client disonnected\");\r\n  Serial.println(\"\");\r\n\r\n}\r\n\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>les donn\u00e9es sont stock\u00e9es dans une base mysql par le script .php:<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"decode-attributes:false lang:php decode:true\">&lt;?php\r\ninclude (\"connexion.php\");\r\n\r\n$temp1=$_GET[\"temp1\"];\r\n$hum1=$_GET[\"hum1\"];\r\n$pres1=$_GET[\"pres1\"];\r\n\r\n$query = \"INSERT INTO meteo2(date, temperature, humidite, pression)\r\nVALUES (CURRENT_TIMESTAMP,'$temp1','$hum1','$pres1')\";\r\n\r\n$result = mysqli_query($link, $query);\r\n\r\nmysqli_close($link);\r\n\r\nheader(\"Location: index.php\");\r\n?&gt;<\/pre>\n<p>les r\u00e9sultats ici: <a href=\"http:\/\/www.daniel974.fr\/meteo2\/\" target=\"_blank\">daniel974\/meteo2\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tr\u00e8s attendue cette commande est enfin arriv\u00e9e avec les esp8266 et surtout sa mise en \u0153uvre Wemos: et depuis j&rsquo;utilise beaucoup moins mes arduinos&#8230;. La station m\u00e9t\u00e9o ressemble d\u00e9sormais \u00e0 \u00e7a : C&rsquo;est quand m\u00eame plus simple&#8230;.plus besoin d&rsquo;Android et &hellip; <a href=\"http:\/\/daniel974.fr\/wordpress1\/2016\/08\/06\/esp8266-arduino-killer\/\">Continuer la lecture <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"http:\/\/daniel974.fr\/wordpress1\/wp-json\/wp\/v2\/posts\/146"}],"collection":[{"href":"http:\/\/daniel974.fr\/wordpress1\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/daniel974.fr\/wordpress1\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/daniel974.fr\/wordpress1\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/daniel974.fr\/wordpress1\/wp-json\/wp\/v2\/comments?post=146"}],"version-history":[{"count":11,"href":"http:\/\/daniel974.fr\/wordpress1\/wp-json\/wp\/v2\/posts\/146\/revisions"}],"predecessor-version":[{"id":161,"href":"http:\/\/daniel974.fr\/wordpress1\/wp-json\/wp\/v2\/posts\/146\/revisions\/161"}],"wp:attachment":[{"href":"http:\/\/daniel974.fr\/wordpress1\/wp-json\/wp\/v2\/media?parent=146"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/daniel974.fr\/wordpress1\/wp-json\/wp\/v2\/categories?post=146"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/daniel974.fr\/wordpress1\/wp-json\/wp\/v2\/tags?post=146"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}