无法保存代码Espruino NodeMCU

时间:2017-07-04 17:08:43

标签: esp8266 nodemcu

我曾与Espruino合作过一段时间,这真是一个很棒的项目。但是,我遇到了将代码保存到闪存上的问题,因此在向电路板(NodeMCU)供电时,它仍然可以运行,而不是PC COM端口。代码完全正常,直到从终端传递。但是,如果我切换电源,它就会停止工作。 另外,我尝试了save()和E.on('init',function(){}),但无济于事。它仍然不会创建Web服务器。如果有人可以在这里帮忙,那可能会很棒! 谢谢!

function main() {
  var http = require('http');
  var led = Pin(5);
  http.createServer(function (req, res) {
    var url = req.url;
    res.writeHead(200);
    if(url == "/on") {
      digitalWrite(led, 1);
      res.end("on");
    } else if(url == "/off") {
      digitalWrite(led, 0);
      res.end("off");
    } else {
      res.end('Lol');
    }
  }).listen(80);
}
E.on('init', function(){
  main();
});

这是我希望写给我正在处理的IOT项目的flash的代码

1 个答案:

答案 0 :(得分:0)

在摆弄文档并抓取乱码网络近一整天后,我自己找到了解决方案。问题 - >

function main() {
  var wifi = require('Wifi');
  wifi.startAP("testing");
  wifi.save();
  var http = require('http');
  var led = Pin(5);
  return http.createServer(function (req, res) {
    var url = req.url;
    res.writeHead(200);
    if(url == "/on") {
      digitalWrite(led, 1);
      res.end("on");
    } else if(url == "/off") {
      digitalWrite(led, 0);
      res.end("off");
    } else {
      res.end('Lol');
    }
  }).listen(80);
}
function test() {
  console.log('Starting server');
  setTimeout(function() {
    var server = main();
    console.log(server);
  }, 5000);
}
E.on('init', function(){
 test();
});
save();

问题在于,在执行http.createServer()命令之前,MCU无法获得足够的时间连接到wifi。因为,它无法获取MCU的IP地址,因此无法处理http.createServer()命令。因此,在执行之前处理延迟需要超时。