起因或者说好处

最近在玩ESP8266 + BMP280 的APRS气象数据报,其实很早之前就看到过BG6CQ老师的github上的软件仓库 https://github.com/bg6cq/nodemcu_bme280 ,也刚好买过一块esp8266神器,然后之前买电子元件的时候还买过BMP280温度气压计,于是刻了快小PCB搭了个AMS1117-3.3的供电玩过。但那个时候模块之间,电源之间都是杜邦线和跳线焊接飞来飞去。非常不适合长期固定使用。后来就给扔盒子里吃灰了。
最近换了我大UOS系统,想着练练手,用KiCAD画了一块板子,再也没飞线了,然后还加了锂电池以及太阳能电池板供电。这样可以不需要接电源直接放在有光照的地方长期工作了。
本来这事就算完成了,欢迎访问 BG6CQ老师的APRS服务器 http://202.141.176.3/ ,搜索BI8AKT-12就能看到我的气象站了。但是想着esp8266这么彪悍的板子带了ADC,正好还可以把电压给检测了,顺便放到气象报文里一起传上来的,这样以后远程也可以随时掌握锂电池电压,而不用时不时拿万用表去量一下看还有电没有了。

但是Lua代码稍微一改,传上去发现BG6CQ大佬的固件是没有打包ADC功能的,没法用,必须要重新刷固件。于是乎想着大家伙平时都在用的那个固件编译网站,可以选完模块就自动给你编译好固件,打开页面访问后,一顿操作,点了提交后,网页直接报个错,说我选的模块太多了,后面我又老老实实的减少模块再试,报错还是一样的,知道最后我只选了一个模块还是报这个错,我就觉得不对劲了,马上XX云弄个虚拟机主机从国外的IP访问过去,发现就啥都正常,选多个模块都不报错,这个网站应该是对中国IP做了限制了,XX对抗难道都提现到民间层面了吗 ?国内访问知会给他带来广告点击量,而不会真正的给你生成固件。国外IP直接一次性搞定,但TMD我等了一下午也没等到他发邮件通知我固件是否编译好了。
最后还是自己动手丰衣足食,自己编译吧,反正各种嵌入式固件我也编译的不少了,人家代码都写全了你动手编译一下还是应该的,白嫖不要太过分。

步骤

  1. github克隆代码,速度慢的也可以用国内gitee.com去先从github镜像一下后再从gitee克隆,但是
    得加个递归,因为他这个里面有一些字模块不在这个仓库
git clone --recurse-submodules https://github.com/nodemcu/nodemcu-firmware.git
  1. 编译,这个nodemcu固件其实已经做的很稳定了,而且编译也极其方便,一条命令 make 就搞定,连交叉编译工具链都给你自动去下载了。

要编译出你需要的模块直接修改这个文件就好了。

app/include/user_modules.h
  1. 编译完后就是刷机了,这个地方我还吃了个粗心的亏,看bg6cq老师的刷机命令是一条命令搞定的
 esptool.py --port COM3 write_flash 0 nodemcu-master-11-modules-2018-11-01-11-20-13-float.bin

然后我看编译的那个bin目录下有两个文件,就拿那个300多k的大的文件直接刷进去,结果死活启动不了,串口全是乱码(其实是代码已经跑飞了),后面一度以为我USB转TTL线跑不了115200那么高的波特率,还专门编译一版9600波特率的固件,发现现象是一样的,后面回头仔细再阅读了官网的文档:https://nodemcu.readthedocs.io/en/release/flash/#which-files-to-flash ,才发现,人家说的很清楚了,自己编译的会产生两个bin文件,要分别刷到0x00000和0x10000两个地址,折腾了快1个多小时才发现。
后面直接分开刷

./esptool.py --port /dev/ttyUSB0 write_flash 0x00000 ./0x00000.bin
./esptool.py --port /dev/ttyUSB0 write_flash 0x10000 ./0x10000.bin

这样就完全正常了。

后记和参考

刷完自己编译的带ADC模块的固件后,发现之前的Lua脚本报错,仔细看了下,tmr里面的语法和2018年的时候不一样了,于是乎参考官网手册改了改格式就好了。这样就供电的锂电池电压检测也有了,温度和气压也有了,为了省电,采用深度睡眠,半个小时唤醒一次采集一下温度电压发送出去,然后再进入深度睡眠,通过前面2周的使用,这套小玩意儿用了2周电池电压还是保持在刚开始放到窗户边的4.0几伏,基本上白天太阳能电池板的充电能满足一整天的消耗,只要有光,这玩意就能一直运行,完全不用关心它。
下一步就是把FreeCAD再复习一下,给他做个外壳3D打印出来。
参考连接:

  • https://nodemcu.readthedocs.io/en/release/build/
  • https://github.com/bg6cq/nodemcu_bme280
  • https://hub.docker.com/r/marcelstoer/nodemcu-build/
  • https://github.com/nodemcu/nodemcu-firmware
  • 那个坑爹的自动build 固件的网站我就不列出来了,随便一搜就能搜出来,不过中国的IP访问过去只能给它增加广告收入,得不到任何好处。还是自己编译吧。

自己动手编译nodemcu固件(ESP8266)相关推荐

  1. modemcu 打包_自己动手编译nodemcu固件

    简单背景 我之前的文章都是推荐使用项目组提供的云服务来编译固件.好处是,简单方便,只需要在网页上选择自己需要的模块就可以了.云服务编译好之后会把固件发送到邮箱. 不过,并不是只能通过云服务获取固件.完 ...

  2. linux nodemcu 编译,nodemcu固件编译

    nodemcu固件编译 by HYH | 2017 年 10 月 10 日 下午 8:27 一.编译环境搭建 1.下载 下载vbox及ova虚拟机包. 里面也有安装文档. 2.安装及必要软件安装 安装 ...

  3. linux nodemcu 编译,nodeMCU固件云编译没有esp32的版本

    我都跟着做了的.以下为我所有的问题. 问题1:编写Pwm控制舵机程序,舵机无反应,但是led有闪烁 根据资料http://wiki.ai-thinker.com/esp32从官网下载固件 git cl ...

  4. ESP8266 修复刷完nodemcu固件后无法连接wifi网络的故障

    最近到手的wifi开发板,编写了一个stm32连接DHT11采集当前温湿度数据(为什么不直接使用esp8266的DHT模块直接采集温湿度,因为我发现nodemcu的DHT采集温湿度实在是太不准确了,反 ...

  5. nodemcu固件_从无到有玩NodeMcu:web端控制

    本文所有软件资源均可点击相应的超链接下载 我们的目标: 利用网页web端为搭载NodeMcu的esp8266连接wifi 硬件准备: 基于NodeMcu的esp8266 数据线:usb+micr-us ...

  6. 自己动手制作路由器固件之快速开始

    如今市面上一两百元的双频(2.4G和5G,802.11ac)智能路由,几乎全部都是联发科的MT7620(2.4G+交换机)加上MT7612EN(PCIE接口,5G)的解决方案,软件也几乎千篇一律是Op ...

  7. modemcu 打包_nodeMcu烧录工具-nodeMcu固件v1.0下载__飞翔下载

    nodeMcu烧录工具是一款nodeMcu固件驱动,包括了nodeMcu烧录软件,方便blog下载链接,有需要的用户可以下载这个官网必备的nodeMcu工具. NodeMCU介绍 NodeMCU是一个 ...

  8. 【arduino】nodemcu(ESP8266)发送邮件库测试笔记,SMTP email

    前一阵子看到群里有人问arduino发送邮件的相关问题,正好我也有搞这块的计划,于是便简单试了几个项目,(虽然就整出来一个)这里简单总结一下(防止日后忘了),如果你恰好也需要用这块,这篇文章可能会帮你 ...

  9. NodeMcu arduino ESP8266 使用Ticker库(多任务处理)

    NodeMcu arduino ESP8266 本文章学习借鉴于太极创客团队,以表感谢.官网http://www.taichi-maker.com/ ESP8266 使用Ticker库(多任务处理) ...

  10. Linux编辑firmware的文件,rk3328编译Linux固件

    一.编译 Linux 固件 这一章将介绍编译 ROC-RK3328-CC Linux 固件的整个流程. 1.1 准备工作 Linux 固件在如下的环境中编译: Ubuntu 16.04 amd64 安 ...

最新文章

  1. 在linux中完整路径中的目录间分隔符是,路径分隔符(斜杠/与反斜杠\的问题)
  2. GL_RGBA和GL_RGB的差别
  3. Logstash配置语法及相关命令
  4. oracle的aud文件,oracle asm实例的aud文件有关问题
  5. mysql调用时附加依赖项_c# – 无法加载“MySql.Data”或其中一个依赖项.
  6. vue-amap详细使用教程
  7. i3wmvim终极配置
  8. DICOM笔记-使用DCMTK读取DICOM文件保存DICOM文件
  9. java绘制雷达图_【带着canvas去流浪(6)】绘制雷达图
  10. python复制excel图片_python批量导出excel区域图片
  11. 从dataguard备份的恢复机制
  12. 在Ubuntu安装Deepin软件
  13. Java程序员的重启人生-1.初到异世界
  14. ubuntu16.04解决耳机没有声音
  15. 三角形外接球万能公式_三棱锥外接球半径公式
  16. 2022.12.29
  17. 香港商报:高铁出行受港人热捧 逐渐融入市民生活
  18. 程序员不修改Bug,我们该怎么办??
  19. 疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇)----(十二)AD转换器
  20. 热塑性塑料注射成型中的常见缺陷及产生原因

热门文章

  1. 腾讯微博android版本,腾讯微博Android V1.2.2版体验
  2. 流量造假:“蔡徐坤微博转发过亿”幕后推手星援 App 开发者一审获刑五年
  3. 数据特征分析方法总结
  4. Spring之Bean的作用域、使用外部属性文件、mchange-commons-java-0.2.11.jar下载
  5. 在线流程图绘制网站gliffy
  6. windows 删除服务命令
  7. mysql编写触发器语法_mysql触发器语法
  8. 推荐4个爬虫抓包神器
  9. ubuntu下配置IP地址
  10. html圆圈里面有数字,HTML + CSS:编号列表与数字圆圈