Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var wifi = require("Wifi");
- var http = require('http');
- var dht = require('DHT11');
- var dhtVysledek = null;
- E.on('init', function() {
- var on = 1;
- var blinkInterval = 50;
- function blink() {
- digitalWrite(2, !(on=!on));
- setTimeout(blink, blinkInterval);
- }
- setTimeout(blink, blinkInterval);
- setInterval(function() {dht.read(function(vysledek) {dhtVysledek = vysledek} ); }, 10000);
- function doAction(action, params, finishCallback) {
- var res = {};
- if (action == "uptime") {
- res.status = 200;
- res.seconds = Math.round((new Date()).getTime() / 100) / 10;
- finishCallback(res);
- }else if (action == "setBlinkInterval") {
- res.status = 200;
- blinkInterval = params.interval;
- finishCallback(res);
- }else if (action == "zapniRele") {
- res.status = 200;
- if (params.cislo == 1) {
- digitalWrite(NodeMCU.D1, 1);
- // }else if (params.cislo == 2) {
- // digitalWrite(NodeMCU.D8, 1);
- // }else if (params.cislo == 3) {
- // digitalWrite(NodeMCU.D9, 1);
- // }else if (params.cislo == 4) {
- // digitalWrite(NodeMCU.D7, 1);
- }
- finishCallback(res);
- }else if (action == "vypniRele") {
- res.status = 200;
- if (params.cislo == 1) {
- digitalWrite(NodeMCU.D1, 0);
- // }else if (params.cislo == 2) {
- // digitalWrite(NodeMCU.D8, 0);
- // }else if (params.cislo == 3) {
- // digitalWrite(NodeMCU.D9, 0);
- // }else if (params.cislo == 4) {
- // digitalWrite(NodeMCU.D7, 0);
- }
- finishCallback(res);
- }else if (action == "jakaJeTeplota") {
- res.status = 200;
- res.teplota = dhtVysledek.temp;
- finishCallback(res);
- });
- function startHttpServer() {
- http.createServer(function(request, response) {
- console.log("New http request");
- request.on('data',function(data) {
- console.log("Request data:" + data);
- jsonRequest = JSON.parse(data);
- response.writeHead(200, {'Content-Type': 'application/json'});
- doAction(jsonRequest.method, jsonRequest.params[0], function(res) {
- response.write(JSON.stringify({
- "id" : jsonRequest.id,
- "result" : res
- }));
- response.end();
- });
- });
- }).listen(80);
- }
- function mqttConnect() {
- var server = "192.168.1.20"; // the ip of your MQTT broker
- var options = { // all optional - the defaults are below
- client_id : "random", // the client ID sent to MQTT - it's a good idea to define your own static one based on `getSerial()`
- keep_alive: 60, // keep alive time in seconds
- port: 1883, // port number
- clean_session: true,
- username: "username", // default is undefined
- password: "password", // default is undefined
- protocol_name: "MQTT", // or MQIsdp, etc..
- protocol_level: 4, // protocol level
- };
- var mqtt = require("MQTT").create(server, options /*optional*/);
- mqtt.on('connected', function() {
- pinMode(NodeMCU.D5, "input_pullup");
- setWatch(function(e) {
- console.log("Button pressed");
- mqtt.publish("srackomet", "zapnuto cerpadlo");
- }, NodeMCU.D5, { repeat: true }
- );
- });
- mqtt.connect();
- }
- wifi.connect("ZyXEL", {password:"tajneheslo"}, function(err){
- console.log("connected? err=", err, "info=", wifi.getIP());
- blinkInterval = 500;
- startHttpServer();
- mqttConnect();
- });
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement