祭出 ESP8266 神器
0x00.前言
去翻从家带来的硬件小玩楞,突然发现DHT11
,只可惜拿DHN
的STM32
连上并不是很好用,于是自己又网购了一波,顺便终于淘了个8266
留给自己用。当初大三比赛用的是51
+DS18B20
再加pc
的组合,后来比赛结束变成了加rpi
的组合,结果到现在彻底换成了NodeMCU
+DHT11
的组合,8266nb!

这里说明一点,NodeMCU
中的Node
与我们所熟知的Node.js
并没有关系,没想到吧hhh
,骚年……
但是是基于Lua
语言的(写到这里想到了貌似也有基于Python
的开发板,py
大法好!2019-8-18 20:54:41
又买了一套扔WZ
屋里用




2019-9-21 23:15:41
由于中秋节自己带回去的那套扔家里了所以就又又买了一套给自己玩



0x01.NodeMCU
超简单的物联网开发平台
一款开源快速硬件原型平台,包括固件和开发板,用几行简单的Lua
脚本就能开发物联网应用
一、特点:
- 像
Arduino
一样操作硬件IO
提供硬件的高级接口,可以将应用开发者从繁复的硬件配置、寄存器操作中解放出来。用交互式Lua
脚本,像arduino
一样编写硬件代码! - 用
Nodejs
类似语法写网络应用
事件驱动型API
极大的方便了用户进行网络应用开发,使用类似Nodejs
的方式编写网络代码,并运行于5mm*5mm
大小的MCU
之上,加快您的物联网开发进度。 - 超低成本的
WI-FI
模块
用于快速原型的开发板,集成了售价低于10
人民币WIFI
芯片ESP8266
。我们为您提供性价比最高的物联网应用开发平台。
二、开发板
- 基于乐鑫
esp8266
的NodeMcu
开发板,具有GPIO
、PWM
、I2C
、1-Wire
、ADC
等功能,结合NodeMcu
固件为您的原型开发提供最快速的途径。 - 包含
usb
串口,即插即用 10 GPIO
, 每个都能配置为PWM
,I2C
,1-wire
FCC
认证的WI-FI
模块,内置PCB
天线
0x02.官方文档
看到Basics
里面的Getting started
了吗?三部曲走起
Getting Started aka NodeMCU Quick Start
The basic process to get started with NodeMCU consists of the following three steps.
- Build the firmware with the modules you need
- Flash the firmware to the chip
- Upload code to the device.
上云编译
云端定制固件,你值得拥有!

注意master
和dev
与gh
上的代码库是同步的,因此随着时间的推移会有部分语法的差别(基本上网上的例程直接跑都会报错需要小修小改尤其是带tmr
的),在这里暂时选择1.5.4.1-final (frozen, for 512KB flash)
以上是花了半下午的时间(远程连接到家里的电脑之后反复编译,下载试出来的(到最后谷歌邮箱接收的固件直接Co.
摸鱼)404
不让下载也是绝了2333

DHT
和HTTP
不是默认自带的,

编译开始与完成之时会分别收到邮件:

1 | Strike! |
This was built against the dev branch and includes the following modules: cron, crypto, dht, encoder, enduser_setup, file, gpio, http, mqtt, net, node, tmr, uart, websocket, wifi, tls.
float
与integer
具体选哪个好?在这里我选了前者,在print
的时候字符串格式化会有差异
NodeMCU PyFlasher烧录
其实这玩楞就是个esptool.py
的图形化封装

ESPlorer连接
pc
需要CH340
的驱动,这里是COM4
,波特率115200
首次连接可以按一下板子上的RST
复位键,并且下载完成应该会提示lua: cannot open init.lua
我这里之前传过了所以不会有这个提示。现在懒得截图,之后再补吧……

0x03.代码
注:本文所有代码均经过测试并已通过运行验证
连接WiFi
法一、初级:先定义函数,后在参数中引用
1 | print('[WiFi]Setting...') |
法二、高级:匿名函数直接写入参数
1 | print('[WiFi]Setting...') |
然后你就可以活学活用下了:
1 | print("[WiFi]Scanning...") |
温湿度传感器
1 | pin = 1 |
0x03.引用
未完待续……