快速入门指南中介绍了NodeMCU上的ESP8266芯片,这是一种超低功耗芯片,只利用太阳能就可以运行。
项目介绍
“菲莱”着陆器登陆彗星让我们深受启发,于是我们从前段时间开始开展低功耗的研发项目,其中假设我们只能利用太阳能对电池充电,在一定时间内进入睡眠状态,从而在某个事件中唤醒。
信息更新:目前已证实的一点是,这个项目通过只利用太阳能而持续了三天/夜,这听起来也许不算什么,但是别忘了,我们在用200mA的锂聚合物电池运行一个非常耗电的wifi模组,同时利用一个小型的0.5W 太阳能板发电。比较而言,如果不利用一些诀窍的话,锂聚合物电池经过一个小时后电量就会耗尽了。 我们应用的诀窍如下:
SparkFun ESP8266是一个很好的开发板,不过首先我们想让这个芯片也能用于NodeMCU,这样就可以不需要Arduino(TM) IDE,而直接使用LUA脚本语言为芯片编码。此外,我们还使用LUA脚本语言控制芯片的休眠模式(关闭不使用的组件),将其唤醒运行任务(像不像在现实生活中)。通过这种方式,我们可以只利用太阳能,而不用电源使ESP8266和 ESP8226运行起来。顺便说一下,我们只是用一个太阳能板和锂聚合物电池,没用什么昂贵的太阳能充电器!
将开发板和锂聚合物电池连接起来
步骤1
切掉载板后部DTR(数据终端就绪)的痕迹,从而实现串口调试,同时烧录新的固件。
步骤2
在Raspberry Pi上安装ESP8266工具链
除了为存储ESP8266而需要安装编译器和工具之外,还需要将3.3VFTDI与ESP8266适当地连接起来。
1. ESP工具——基于python用于存储ESP8266的工具
wget --no-check-certificate https://github.com/themadinventor/esptool/archive/master.zip
unzip master.zip
cd esptool-master
sudo python setup.py install
2. LUA工具——利用LUA脚本语言编码的库和示例
wget --no-check-certificate https://github.com/4refr0nt/luatool/archive/master.zip
unzip master.zip
3. NODEmcu—— 基于EPS8266支持LUA编码的固件
wget --no-check-certificate https://github.com/nodemcu/nodemcu-firmware/archive/master.zip
unzip master.zip
将最新版NODEmcu固件烧录至ESP8266:
pi@raspberrypi ~/esp/nodemcu-firmware-master/pre_build/latest $
python /home/pi/esp/esptool-master/esptool.py --port /dev/ttyUSB0 write_flash 0x00000 nodemcu_latest.bin
Connecting...
Erasing flash...
Writing at 0x00062000... (100 %)
Leaving...
完成——存储固件后,在开始下一步之前重启一次。
现在开始下载自动运行的LUA脚本,使ESP8266连接至接入点:
pi@raspberrypi ~/esp/luatool-master/luatool $
python /home/pi/esp/luatool-master/luatool/luatool.py --port /dev/ttyUSB0 --src init.lua --dest init.lua --verbose
Set timeout None
Set interCharTimeout None
Upload starting
Stage 1. Deleting old file from flash memory
->file.open("init.lua", "w") -> ok
->file.close() -> ok
Stage 2. Creating file in flash memory and write first line->file.remove("init.lua") -> ok
Stage 3. Start writing data to flash memory...->file.open("init.lua", "w+") -> ok
->file.writeline([==[print('init.lua ver 1.2')]==]) -> ok