Advertisement
Guest User

Untitled

a guest
Jan 30th, 2017
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.68 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. res.vlhkost = dhtVysledek.rh;
  61.  
  62. finishCallback(res);
  63. }
  64. }
  65.  
  66.  
  67.  
  68. function startHttpServer() {
  69. http.createServer(function(request, response) {
  70. console.log("New http request");
  71. request.on('data',function(data) {
  72. console.log("Request data:" + data);
  73. jsonRequest = JSON.parse(data);
  74. response.writeHead(200, {'Content-Type': 'application/json'});
  75.  
  76. doAction(jsonRequest.method, jsonRequest.params[0], function(res) {
  77. response.write(JSON.stringify({
  78. "id" : jsonRequest.id,
  79. "result" : res
  80. }));
  81.  
  82. response.end();
  83. });
  84.  
  85. });
  86. }).listen(80);
  87. }
  88.  
  89. function mqttConnect() {
  90. var server = "192.168.1.20"; // the ip of your MQTT broker
  91. var options = { // all optional - the defaults are below
  92. client_id : "random", // the client ID sent to MQTT - it's a good idea to define your own static one based on `getSerial()`
  93. keep_alive: 60, // keep alive time in seconds
  94. port: 1883, // port number
  95. clean_session: true,
  96. username: "username", // default is undefined
  97. password: "password", // default is undefined
  98. protocol_name: "MQTT", // or MQIsdp, etc..
  99. protocol_level: 4, // protocol level
  100. };
  101. var mqtt = require("MQTT").create(server, options /*optional*/);
  102.  
  103. mqtt.on('connected', function() {
  104. console.log('MQTT pripojeno');
  105. pinMode(NodeMCU.D5, "input_pullup");
  106. setWatch(function(e) {
  107. console.log("Button pressed");
  108. mqtt.publish("srackomet", "zapnuto cerpadlo");
  109. }, NodeMCU.D5, { repeat: false }
  110. );
  111. });
  112.  
  113. mqtt.connect();
  114. }
  115.  
  116. wifi.connect("ZyXEL", {password:"tajneheslo"}, function(err){
  117. console.log("connected? err=", err, "info=", wifi.getIP());
  118. blinkInterval = 500;
  119. startHttpServer();
  120. mqttConnect();
  121. });
  122. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement