yotanutmaliwan

การเชื่อมต่ออุปกรณ์เข้ากับ NETPIE สำหรับ GP2Y1010AU0F

Jun 28th, 2018
602
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.87 KB | None | 0 0
  1. /* Connect to SHARP PM2.5 Sensor*/
  2. #include <PMsensor.h>
  3. PMsensor PM;
  4. /* connect to wifi */
  5. #include <ESP8266WiFi.h>
  6. const char* ssid = "YOUR WiFi Network Name’"; // ssid wifi
  7. const char* password = "PASSWORD PUT IN HERE"; // it is recommended to use WPA/WPA2
  8. WiFiClient client;
  9. /* connect to netpie */
  10. #include <MicroGear.h>
  11. #define APPID "REPLACE ME WITH YOUR APP ID" // APPLICATION (APPID)
  12. #define KEY "REPLACE ME WITH YOUR DEVICE KEY" // device key
  13. #define SECRET "REPLACE ME WITH YOUR SECRET KEY" // *secret device key
  14. #define FEEDID "REPLACE ME WITH YOUR FEED NAME" // feed name
  15. #define ALIAS "PLEASE GIVE ME A MEANINGFUL NAME TO CALL ME"
  16. MicroGear microgear(client);
  17. /* Variable */
  18. int timer = 0;
  19. char str[32];
  20.  
  21. void onMsghandler(char *topic, uint8_t* msg, unsigned int msglen) {
  22. Serial.print("Incoming message --> ");
  23. msg[msglen] = '\0';
  24. Serial.println((char *)msg);
  25. }
  26.  
  27. void onConnected(char *attribute, uint8_t* msg, unsigned int msglen) {
  28. Serial.println("Connected to NETPIE...");
  29. microgear.setAlias(ALIAS);
  30. }
  31.  
  32. void setup() {
  33. Serial.begin(115200);
  34. // Initialize PM Sensor
  35. /////(infrared LED pin, sensor pin) /////
  36. PM.init(D5, A0);
  37. // Initialize microgear
  38. microgear.on(MESSAGE, onMsghandler);
  39. microgear.on(CONNECTED, onConnected); //optional
  40. microgear.on(ERROR, onConnected);
  41. microgear.on(INFO, onConnected);
  42. //Wait for WiFi Establishement
  43. Serial.println("Starting...");
  44. if (WiFi.begin(ssid, password)) {
  45. while (WiFi.status() != WL_CONNECTED) {
  46. delay(500);
  47. Serial.print(".");
  48. }
  49. }
  50. Serial.println("WiFi connected");
  51. Serial.println("IP address: ");
  52. Serial.println(WiFi.localIP());
  53. microgear.init(KEY, SECRET, ALIAS);
  54. microgear.connect(APPID);
  55. }
  56.  
  57. void loop() {
  58. if (microgear.connected()) {
  59. Serial.print("*");
  60. microgear.loop();
  61. if (timer >= 60000) {
  62.  
  63. float pm = 0;
  64. int err = PMsensorErrSuccess;
  65.  
  66. if ((err = PM.read(&pm, true, 0.1)) != PMsensorErrSuccess) {
  67. Serial.print("data Error = ");
  68. Serial.println(err);
  69. return;
  70. }
  71. Serial.print("PM2.5: ");
  72. Serial.print(pm);
  73. Serial.println(" ppm");
  74.  
  75. //STRING FOR FEED
  76. String data = "{\"Room_PM2_5\":"; //FEED NAME HERE
  77. data += pm ;
  78. data += "}";
  79.  
  80. sprintf(str, "%.2f",pm);
  81. Serial.println(str);
  82. microgear.publish("/roomquality", str); //Publish to the NETPIE for Freeboard and the other utilization
  83. Serial.println((char*) data.c_str());
  84. Serial.print("Sending --> ");
  85. microgear.writeFeed(FEEDID, data); //YOUR FEED ID, API KEY
  86.  
  87. timer = 0;
  88. }
  89. else timer += 200;
  90. } else {
  91. Serial.println("connection lost, reconnect...");
  92. if (timer >= 5000) {
  93. microgear.connect(APPID);
  94. timer = 0;
  95. }
  96. else timer += 200;
  97. }
  98. delay(200);
  99. }
Advertisement
Add Comment
Please, Sign In to add comment