Advertisement
Guest User

Untitled

a guest
Jan 27th, 2017
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.62 KB | None | 0 0
  1. var wifi = require("Wifi");
  2. var http = require('http');
  3. var dht = require('DHT11').connect(NodeMCU.D4);
  4. var dhtVysledek = {"temp" : null, "rh" : null};
  5.  
  6. E.on('init', function() {
  7. var on = 1;
  8. var blinkInterval = 50;
  9.  
  10. function blink() {
  11. digitalWrite(2, !(on=!on));
  12. setTimeout(blink, blinkInterval);
  13. }
  14. setTimeout(blink, blinkInterval);
  15.  
  16. setInterval(function() {dht.read(function(vysledek) {dhtVysledek = vysledek} ); }, 10000);
  17.  
  18. function doAction(action, params, finishCallback) {
  19. var res = {};
  20.  
  21. if (action == "uptime") {
  22. res.status = 200;
  23. res.seconds = Math.round((new Date()).getTime() / 100) / 10;
  24.  
  25. finishCallback(res);
  26. }else if (action == "setBlinkInterval") {
  27. res.status = 200;
  28. blinkInterval = params.interval;
  29.  
  30. finishCallback(res);
  31. }else if (action == "zapniRele") {
  32. res.status = 200;
  33. if (params.cislo == 1) {
  34. digitalWrite(NodeMCU.D1, 1);
  35. // }else if (params.cislo == 2) {
  36. // digitalWrite(NodeMCU.D8, 1);
  37. // }else if (params.cislo == 3) {
  38. // digitalWrite(NodeMCU.D9, 1);
  39. // }else if (params.cislo == 4) {
  40. // digitalWrite(NodeMCU.D7, 1);
  41. }
  42.  
  43. finishCallback(res);
  44. }else if (action == "vypniRele") {
  45. res.status = 200;
  46. if (params.cislo == 1) {
  47. digitalWrite(NodeMCU.D1, 0);
  48. // }else if (params.cislo == 2) {
  49. // digitalWrite(NodeMCU.D8, 0);
  50. // }else if (params.cislo == 3) {
  51. // digitalWrite(NodeMCU.D9, 0);
  52. // }else if (params.cislo == 4) {
  53. // digitalWrite(NodeMCU.D7, 0);
  54. }
  55.  
  56. finishCallback(res);
  57. }else if (action == "jakaJeTeplota") {
  58. res.status = 200;
  59. res.teplota = dhtVysledek.temp;
  60.  
  61. finishCallback(res);
  62. }
  63. }
  64.  
  65.  
  66.  
  67. function startHttpServer() {
  68. http.createServer(function(request, response) {
  69. console.log("New http request");
  70. request.on('data',function(data) {
  71. console.log("Request data:" + data);
  72. jsonRequest = JSON.parse(data);
  73. response.writeHead(200, {'Content-Type': 'application/json'});
  74.  
  75. doAction(jsonRequest.method, jsonRequest.params[0], function(res) {
  76. response.write(JSON.stringify({
  77. "id" : jsonRequest.id,
  78. "result" : res
  79. }));
  80.  
  81. response.end();
  82. });
  83.  
  84. });
  85. }).listen(80);
  86. }
  87.  
  88. function mqttConnect() {
  89. var server = "192.168.1.20"; // the ip of your MQTT broker
  90. var options = { // all optional - the defaults are below
  91. client_id : "random", // the client ID sent to MQTT - it's a good idea to define your own static one based on `getSerial()`
  92. keep_alive: 60, // keep alive time in seconds
  93. port: 1883, // port number
  94. clean_session: true,
  95. username: "username", // default is undefined
  96. password: "password", // default is undefined
  97. protocol_name: "MQTT", // or MQIsdp, etc..
  98. protocol_level: 4, // protocol level
  99. };
  100. var mqtt = require("MQTT").create(server, options /*optional*/);
  101.  
  102. mqtt.on('connected', function() {
  103. pinMode(NodeMCU.D5, "input_pullup");
  104. setWatch(function(e) {
  105. console.log("Button pressed");
  106. mqtt.publish("srackomet", "zapnuto cerpadlo");
  107. }, NodeMCU.D5, { repeat: true }
  108. );
  109. });
  110.  
  111. mqtt.connect();
  112. }
  113.  
  114. wifi.connect("ZyXEL", {password:"tajneheslo"}, function(err){
  115. console.log("connected? err=", err, "info=", wifi.getIP());
  116. blinkInterval = 500;
  117. startHttpServer();
  118. mqttConnect();
  119. });
  120. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement