美文网首页nodemcunodemcu我爱编程
1、nodeMCU学习笔记--快速入门

1、nodeMCU学习笔记--快速入门

作者: 谢mingmin | 来源:发表于2016-10-21 22:24 被阅读24240次

    闲言碎语

    2016年10月17日,那是一个周一。在淘宝发现nodeMCU,被其价格蒙骗,入手了一块。样子如下,V1.0版本宣称可以without any trouble的使用。

    图片来自

    然而,我买到的这块flash起来确实相当trouble。在使用了他们自家的nodemcu-flasher(下载的时候注意选择对应的系统位数)来下载固件时,却始终下载不了,进度条一直不会动。

    注意文件路径别弄错。

    可能你在其他文章看到需要下载多个文件的,地址参考下图。具体请到乐鑫官网找相关文档。

    下载地址

    如下下载固件后发现不能工作,请接上串口看看输出是否正常。如果有乱码的话,考虑下载espxxx.bin和blank.bin两个文件,这个可以去乐鑫的GitHub上面找。

    如果在阅读本篇文章的你,也遇到不能下载的问题,可以试试看下面的方法:

    拔掉USB线,按住板子上面flash按键,插入USB线,点击软件上的flash按钮。另外,将下载波特率设置为115200 

    GOOD LUCK TO YOU

    构建自己的固件

    拿到这一块小玩意后,我们可以来这里构建自己的固件,输入自己的邮箱,用来接收编译后的bin文件。注意要输入两次邮箱地址,第二次输入不可以复制。

    选择自己感兴趣的模块

    这里提供了各种各样的模块,包括传感器,LED驱动,通信协议等等,选择自己感兴趣的模块。默认已经选择了一些模块。提交后,过一会就会收到邮件。邮件里面有两个bin文件的下载地址,一个是float,一个是integer。float的比较大,下载那个任君选择,区别是带不带float。然后就可以使用nodemcu-flasher来下载自己的固件了。

    我选择了这些模块:

    adc,bit,cjson,coap,crypto,enduser_setup,file,gpio,http,mqtt,net,node,pwm,rtcfifo,rtcmem,rtctime,sntp,spi,tmr,uart,websocket,wifi

    adc,bit,cjson,coap,crypto,enduser_setup,file,gpio,http,mqtt,net,node,pcm,pwm,rtcfifo,rtcmem,rtctime,sntp,tmr,uar,twebsocket,wifi,ws2812

    后面的文章会围绕这些模块来说。

    编写第一个程序

    我想你大概猜到第一个程序是什么了吧!在此之前,推荐这个ESPlorer

    如果你打开后,send左边的文本框是灰色的,可以按一下Chip ID。你会看到上面的文本框会有内容输出。上电后,会调用一个 init.lua的文件夹。这里我们让nodeMCU循环发送 Hello NodeMCU。

    tmr.alarm(0, 1000, tmr.ALARM_AUTO, function()

    print("Hello NodeMCU!\n")

    end

    )

    没设置成markdown,没有代码块,将就一下吧。代码编写玩后,保存为init.lua。点击Save to ESP,把文件存储到flash里面。右边的输出文本框也会不断的打印Hello NodeMCU。然后,拔插USB,重新打开这个工具,也会看到不断的输出Hello NodeMCU。

    如果要移除init.lua,可以在右边输入下面的内容

    =file.remove("init.lua")

    OK,我们的上手操作也就到这里就结束了。如果你新买模块的话,可以使用这种方法测试模块是不是正常的~

    后面的文章发表有一段时间了。可能和现在的文档提供的API有差别。如果在阅读过程中发现理解上有难度的,欢迎评论,我可以针对性的更新。

    另外,如果你觉得我文章对你有帮助不妨点个赞或者打赏,让我更有动力写下去

    相关文章

      网友评论

      • 吴钧泽:你好
        刷系统 一直刷不上 log里面有错误信息
        Note:Detect serial port changed.
        Note:Auto MAP serial port.Port-->COM4

        Note:Serial port connected.
        Note:Begin find ESP8266.
        Note:ESP8266 ACK success.
        Note:ESP8266 ACK success.
        Error:Set ESP8266 Address timeout.
        谢mingmin:@吴钧泽 一样的工具?
      • 吴钧泽:你好 我买的新板子 下载驱动 少烧系统 一直卡在这个界面是什么原因呢? 帮忙看看谢谢
        ![image](http://ws2.sinaimg.cn/large/006p9NiLly1fnhofjhzeij30fw09bmxm.jpg)
        谢mingmin:@吴钧泽 重试几次试试看,也许是接触问题什么的。或者试试看其他下载工具。有py的
      • 後輪追前輪:为什么我的显示BUSY?
        後輪追前輪:@谢mingmin 没事了原来下载固件没设置好
        谢mingmin:@後輪追前輪_ab8f 哪里显示busy。麻烦描述清楚一点😅
      • f6ffa74453dd:你好我想问一下,为什么在save to flash的时候只有右边显示的是:answer from esp timeout reached,一直在说我回答超时,命令失败,我是那一跟数据线直接连着电脑的
        谢mingmin: @chaseRen 先按右边的一堆按钮,读取cheap ID什么的,软件问题
      • ReCclay:init.lua:2: attempt to call field 'create' (a nil value)
        stack traceback:
        init.lua:2: in main chunk
        [C]: in function 'dofile'
        stdin:1: in main chunk

        请问楼主,我用我的固件
        固件含如下模块: cjson, file, gpio, net, node, pwm, tmr, uart, wifi.
        然后把代码写进去的时候,会出现上面的错误请问是怎么回事呢?
        能不能帮忙看看,感激不尽,谢谢谢。
        ReCclay:@谢mingmin 看了,但是感觉一样的意思啊。吐血,折腾好久了,实在找不到原因了,来求助。
        谢mingmin: @ReCclay 你看一下最新的文档,看看API有木有变化
        ReCclay:写的代码是您tmr模块的

        count = 0
        timer = tmr.create()
        runTime = tmr.time()
        tmr.register(timer, 1000, tmr.ALARM_AUTO, function()
        local temp = 0
        count = count + 1
        temp = tmr.time()
        print("count&runTime=", count, temp - runTime)
        runTime = temp
        if(count == 10) then
        tmr.interval(timer, 3000)
        end
        if(count == 20) then
        tmr.stop(timer)
        print(tmr.state(timer))
        print(tmr.unregister(timer))
        print(tmr.state(timer))
        end
        end)
        tmr.start(timer)
      • a24a39e2e4e7:为什么我用命令移除了模块,每次重启还是会提示lua: cannot open init.lua,是没有删干净吗
        谢mingmin: @a24a39e2e4e7 你可以把这个init.lua理解为C语言里面的main函数~
        a24a39e2e4e7:@谢mingmin 也就是说它已经把这个模块的名字登记进去了?
        谢mingmin: @a24a39e2e4e7 不是,启动后会尝试运行这个文件,找不到就会有这提醒
      • e70c0daab64f:求问,输入=file.remove("init.lua")命令后并没能移除文件,模块还会重启并运行init文件。重新刷固件init文件还在。。。这是什么原因呢?
        e70c0daab64f:@谢mingmin 感谢感谢,问题解决了!
        谢mingmin: @毅之力_d4d2 软件最右边有个 reload可以查看存储的文件,或者format直接格式化。刷固件不一定会擦除文件。
      • Zszen:ps: cjson已经完全被sjson替代
        Zszen:@谢mingmin 还没看到
        谢mingmin: @Zszen 在cjson那篇文章里面有说过了
      • Zszen:对了你的刷机工具那里, 最好图片顺序和刷机方式写的详细一点, 操作是先进config里面点击第一行齿轮, 选择cloud下载下来的bin, 地址改为0x000000, 然后再回到第一页点flash, 我第一次按照你的来, 直接flash一个空
        谢mingmin:@吴钧泽 有在线编译的,文章有提到
        吴钧泽:同样入坑了。。。。 bin文件哪里下载的? 我在GitHub上下载编译好的 里面没有.bin的文件。。。
        谢mingmin: @Zszen 好,回头更新一下
      • Zszen:求救, nodemcu刷固件刷废, 链接esplorer会提示找不到固件

        PORT OPEN 9600

        Communication with MCU..Got answer! Communication with MCU established.
        AutoDetect firmware...

        Can't autodetect firmware, because proper answer not received (may be unknown firmware).
        Please, reset module or continue.
        � �8�@��K������b����P�cY��\TY�I��n��������wu{w��ou}����
        PORT CLOSED
        谢mingmin: @Zszen 😅不是吧
        Zszen:@谢mingmin 刷了好多遍了,无爱了:joy:
        谢mingmin: @Zszen 重刷试试看😅,刷入地址别写错
      • Zszen:博主有无研究过tmr误差是多少, 如果做个表是不是会有误差, nodemcu应该可以网络校验
        谢mingmin: @Zszen 没研究,文档里面说了,要精准的用rtc,要网络授时可以用SMTP
      • Zszen:坑死啦, =file.remove("init.lua")并不能移除还再运行的tmr, 还好我会=node.restart()
        谢mingmin: @Zszen 我只是说remove可以移除init文件。。。
      • mixzine:http://mixzine.tk
        搞了个nodemcu云端编辑lua代码的网站 谁试试 站点经过香港TCP转发 速度可能会很慢
        谢mingmin: @mon_1fb0 直接上不去
      • 77e04bb26cbc:怎么让他停下啊,一直在发Hello NodeMCU!:joy:
        77e04bb26cbc:@谢mingmin 好的,我是新手,多多关注
        谢mingmin: @77e04bb26cbc 看定时器那一篇文章😅
      • ZZES_ZCDC:请问一下,nodemcu烧入程序的时候的接线和烧入固件时一样吗
        谢mingmin:@吴钧泽 不用,上电的时候需要io状态来进入不同模式
        吴钧泽:@谢mingmin 烧系统时候 必须要把gpio接口接地线吗?
        谢mingmin: @治电小白菜 接线一样,只是boot的io口状态不一样

      本文标题:1、nodeMCU学习笔记--快速入门

      本文链接:https://www.haomeiwen.com/subject/zgpcuttx.html