Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.89 KB | None | 0 0
  1. /* Arduino IOT - Temperature (oC) and Humidity (%) on the web
  2. *Use the DHT-22 sensor to read temperature and humidity values
  3. *Send these values to www.thingSpeak.com with the ESP8266 serial Wifi module
  4. Dev: Michalis Vasilakis // Date:23/2/2016 // Update: 25/2/2015 // Ver. 1.3
  5. More info: http://www.ardumotive.com/iot-wifi-temp-and-humidity.html
  6. Tip: open the serial monitor for debugging */
  7.  
  8. //Libraires
  9. #include <stdlib.h>
  10. #include <DHT.h>
  11.  
  12. /*------------------------DHT SENSOR------------------------*/
  13. #define DHTPIN 2 // DHT data pin connected to Arduino pin 2
  14. #define DHTTYPE DHT11 // DHT 22 (or AM2302)
  15. DHT dht(DHTPIN, DHTTYPE); // Initialize the DHT sensor
  16. /*----------------------------------------------------------*/
  17.  
  18. /*-----------------ESP8266 Serial WiFi Module---------------*/
  19. #define SSID "Laj2Faj" // "SSID-WiFiname"
  20. #define PASS "qwerty321123" // "password"
  21. #define IP "184.106.153.149"// thingspeak.com ip
  22. String msg = "GET /update?key=3AYCBUMY00TNLKPP"; //change it with your key...
  23. /*-----------------------------------------------------------*/
  24.  
  25. //Variables
  26. float temp;
  27. int hum;
  28. String tempC;
  29. int error;
  30. void setup()
  31. {
  32. Serial.begin(115200); //or use default 115200.
  33.  
  34. Serial.println("AT");
  35. delay(5000);
  36. if(Serial.find("OK")){
  37. connectWiFi();
  38. }
  39. }
  40.  
  41. void loop(){
  42. //Read temperature and humidity values from DHT sensor:
  43. start: //label
  44. error=0;
  45. temp = dht.readTemperature();
  46. hum = dht.readHumidity();
  47. char buffer[10];
  48. // there is a useful c function called dtostrf() which will convert a float to a char array
  49. //so it can then be printed easily. The format is: dtostrf(floatvar, StringLengthIncDecimalPoint, numVarsAfterDecimal, charbuf);
  50. tempC = dtostrf(temp, 4, 1, buffer);
  51.  
  52. Serial.println("Temperautra DHT11: ");
  53. Serial.println(temp);
  54. Serial.println("Wilgotnosc DHT11");
  55. Serial.println(hum);
  56.  
  57. updateTemp();
  58. //Resend if transmission is not completed
  59. if (error==1){
  60. goto start; //go to label "start"
  61. }
  62.  
  63. delay(3600); //Update every 1 hour
  64. }
  65.  
  66. void updateTemp(){
  67. String cmd = "AT+CIPSTART=\"TCP\",\"";
  68. cmd += IP;
  69. cmd += "\",80";
  70. Serial.println(cmd);
  71. delay(2000);
  72. if(Serial.find("Error")){
  73. return;
  74. }
  75. cmd = msg ;
  76. cmd += "&field1="; //field 1 for temperature
  77. cmd += tempC;
  78. cmd += "&field2="; //field 2 for humidity
  79. cmd += String(hum);
  80. cmd += "\r\n";
  81. Serial.print("AT+CIPSEND=");
  82. Serial.println(cmd.length());
  83. if(Serial.find(">")){
  84. Serial.print(cmd);
  85. }
  86. else{
  87. Serial.println("AT+CIPCLOSE");
  88. //Resend...
  89. error=1;
  90. }
  91. }
  92.  
  93.  
  94. boolean connectWiFi(){
  95. Serial.println("AT+CWMODE=1");
  96. delay(2000);
  97. String cmd="AT+CWJAP=\"";
  98. cmd+=SSID;
  99. cmd+="\",\"";
  100. cmd+=PASS;
  101. cmd+="\"";
  102. Serial.println(cmd);
  103. delay(5000);
  104. if(Serial.find("OK")){
  105. return true;
  106. }else{
  107. return false;
  108. }
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement