Branchement du BME280 (Pression, humidité)
Branchement du TSic560F (température) Al'aide d'une carte d'essai realiser le schéma suivant:
On obtient le circuit suivant:
#include #include #include #include //https://arduino-esp8266.readthedocs.io/en/latest/esp8266wifi/readme.html #include //https://github.com/esp8266/Arduino/blob/master/libraries/ESP8266WiFi/examples/HTTPSRequest/HTTPSRequest.ino const char* ssid = "XXXXXXXXXXXXXX"; const char* password = "XXXXXXXXXX"; const char* serverName = "XXXXXXXXXXXX"; // YOUR DOMAIN NAME const int serverPort = 80; const int GPIO_In = 14;//D14 const int GPIO_Out = 2;//D2 Adafruit_BME280 bme; // I2C void setup() { WiFiClient client; float T,H,P,T1; int i=0; Serial.begin(115200); Serial.setDebugOutput(true); Serial.println(); T=GetTemperature(); T=round(T*10)/10; bme.begin(0x76); H=bme.readHumidity(); H=round(H); P=bme.readPressure()/100; P=round(P*10)/10; T1=bme.readTemperature(); WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); i++; if (i>50) { Serial.println("WiFi not connected"); ESP.deepSleep(60e6);//save battery } } Serial.println(""); Serial.println("WiFi connected"); Serial.println(); Serial.print("Connected, IP address: "); Serial.println(WiFi.localIP()); Serial.println("Connecting to server: " + serverName); if (client.connect(serverName.c_str(), serverPort)) { Serial.println(String("GET ") + "/capteur.php?sauve=1&temp="+T+"&hum="+H+"&press="+P+" HTTP/1.1\r\n" + "Host: " + serverName.c_str() + "\r\n\r\n"); client.print(String("GET ") + "/capteur.php?sauve=1&temp="+T+"&hum="+H+"&press="+P+" HTTP/1.1\r\n" + "Host: " + serverName.c_str() + "\r\n\r\n"); Serial.println("Request sent"); while (client.connected()) { String line = client.readStringUntil('\n'); //Serial.println(line); if (line == "\r") { Serial.println("Headers received"); break; } } String line = client.readStringUntil('\n'); if (line.startsWith("{\"state\":\"success\"")) { Serial.println("successful!"); } else { Serial.println("failed"); } Serial.println("Reply was:"); Serial.println("=========="); Serial.println(line); Serial.println("=========="); Serial.println("Closing connection"); } WiFi.disconnect(); Serial.println(T); Serial.println(); printValues(); ESP.deepSleep(60e6); } void loop() { } void printValues() { Serial.print("Temperature = "); Serial.print(bme.readTemperature()); Serial.println(" *C"); Serial.print("Pressure = "); Serial.print(bme.readPressure() / 100.0F); Serial.println(" hPa"); Serial.print("Humidity = "); Serial.print(bme.readHumidity()); Serial.println(" %"); Serial.println(); } float GetTemperature() { int i,j,strobe,value; int InState; pinMode(GPIO_In, INPUT); pinMode(GPIO_Out,OUTPUT); //Init value=0; digitalWrite(GPIO_Out, LOW); delay(1); digitalWrite(GPIO_Out, HIGH); delayMicroseconds(200); InState = digitalRead(GPIO_In); //MSB //STROBE while (InState !=0) { InState = digitalRead(GPIO_In); } strobe=1; while (InState !=1) { InState = digitalRead(GPIO_In); strobe++; } for (j=0;j<8;j++) { //Read a bit //Wait falling while (InState !=0) { InState = digitalRead(GPIO_In); } i=1; while (InState !=1) { InState = digitalRead(GPIO_In); i++; } value=(value<<1); if (i
Suivre ce tutorial