Guest User

Untitled

a guest
Jan 16th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.14 KB | None | 0 0
  1. #include <SoftwareSerial.h>
  2. #include <stdlib.h>
  3. #include <String.h>
  4. #include <dht.h>
  5.  
  6. dht DHT;
  7.  
  8. #define DHT11_PIN 5
  9.  
  10. // thingspeak API key
  11. String apiKey = "9107BL5PDTLSXXXX"; //thingspeak
  12. String field[]= {"&field1=","&field2="} ;
  13. String f2 = "&field2=";
  14. String reset = "AT+RST";
  15.  
  16. // connect 2 to TX of Serial USB
  17. // connect 3 to RX of serial USB
  18. SoftwareSerial ser(2,3); // RX, TX
  19.  
  20. // this runs once
  21. void setup() {
  22. // enable debug serial
  23. Serial.begin(9600);
  24. // enable software serial
  25. ser.begin(9600);
  26. //AT+IPR=9600; set baud rate
  27.  
  28. // reset ESP8266
  29. ser.println(reset);
  30. }
  31.  
  32. // the loop
  33. void loop() {
  34.  
  35. //read value from the DHT11 temp and hum sensor
  36. int chk = DHT.read11(DHT11_PIN); //check status of DHT11
  37. while (chk == DHTLIB_OK){
  38. float temp = DHT.temperature; //read temperature
  39. float hum = DHT.humidity; // read humidity
  40. Serial.println(temp);
  41. Serial.println(hum);
  42. // convert temperature to string
  43. char buf_temp[16];
  44. String strTemp = dtostrf(temp, 4, 1, buf_temp);
  45.  
  46. //convert humidity to string
  47. char buf_hum[16];
  48. String strHum = dtostrf(hum, 4, 1, buf_hum);
  49.  
  50. String weatherParam[] = {strTemp, strHum};
  51.  
  52. // TCP connection
  53. String cmd = "AT+CIPSTART=\"TCP\",\"";
  54. cmd += "184.106.153.149"; // api.thingspeak.com
  55. cmd += "\",80";
  56. ser.println(cmd);
  57. Serial.println(cmd);
  58. //check for connection error
  59. if(ser.find("Error")||ser.find("closed")){
  60. Serial.println("AT+CIPSTART error");
  61. return;
  62. }
  63.  
  64. // prepare GET string
  65. String getStr = "GET /update?api_key=";
  66. getStr += apiKey;
  67. getStr +=field[0];
  68. getStr += String(weatherParam[0]);
  69. getStr +=field[1];
  70. getStr +=String(weatherParam[1]);
  71. getStr += "\r\n";
  72.  
  73. // send data length
  74. cmd = "AT+CIPSEND=";
  75. cmd += String(getStr.length());
  76. Serial.println(cmd);
  77. ser.println(cmd);
  78. if(ser.find(">")){
  79. ser.print(getStr);
  80. Serial.println(getStr);
  81. }
  82. else{
  83. ser.println("AT+CIPCLOSE");
  84. // alert user
  85. Serial.println("AT+CIPCLOSE");
  86. }
  87. // thingspeak needs at least 15 sec delay between updates
  88. delay(30000);
  89.  
  90. }
  91.  
  92. }
Add Comment
Please, Sign In to add comment