目录
NodeMCU + MicroPython
0 提要
1 烧录固件
2 上手运行
3 了解 MicroPython,了解 ESP8266 - 库!库!库!
4 编写一个程序
5 总结!总结!总结!
参考链接
用 Arduino 的方式编程 NodeMCU
Getting Started with Noduino on Windows
ESP8266 core for Arduino
########## 2019/04/14 更新 ? (以前的本文内容请一直往下翻)#############
使用 NodeMCU 的话,配和 MicroPython 固件使用更佳!!!
硬件和主机:
工具/环境:
$ sudo apt install minicom
按以下步骤执行即可。
(因为使用的是 NodeMCU,所以不需要手动按键使芯片进入 boot-loader 模式)
$ ls /dev/ttyUSB*
/dev/ttyUSB0
$ lsusb
..........
$ dmesg | grep cp210x
[8888.8888] usbcore: registered new interface driver cp210x
[8888.8888] usbserial: USB Serial support registered for cp210x
[8888.8888] cp210x 2-1.2:1.0: cp210x converter detected
[8888.8888] usb 2-1.2: cp210x converter now attached to ttyUSB0
$ sudo chmod 666 /dev/ttyUSB0
$ esptool.py --port /dev/ttyUSB0 erase_flash
esptool.py v2.6
Serial port /dev/ttyUSB0
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
MAC: 18:fe:34:e1:3e:8d
Uploading stub...
Running stub...
Stub running...
Erasing flash (this may take a while)...
Chip erase completed successfully in 9.7s
Hard resetting via RTS pin...
$ esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash \
--flash_size=detect 0 ////esp8266-20190125-v1.10.bin
esptool.py v2.6
Serial port /dev/ttyUSB0
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
MAC: FF:FF:FF:FF:FF:FF
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Flash params set to 0x0040
Compressed 615388 bytes to 399928...
Wrote 615388 bytes (399928 compressed) at 0x00000000 in 9.0 seconds (effective 547.7 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
Hello World:
$ sudo minicom -D /dev/ttyUSB0
### 笔者补充笔记:
### 如果之前没有设置过,那么需要使用
### press: [Ctrl] + [A]; then press [O]; to Serail port setup
### note: [Ctrl], [A], [O] 都是指键盘上的按键显示(样式)。
>>> help()
Welcome to MicroPython!
For online docs please visit http://docs.micropython.org/en/latest/esp8.
For diagnostic information to include in bug reports execute 'import po.
Basic WiFi configuration:
import network
sta_if = network.WLAN(network.STA_IF); sta_if.active(True)
sta_if.scan() # Scan for available access ps
sta_if.connect("", "") # Connect to an AP
sta_if.isconnected() # Check for successful connecn
# Change name/password of ESP8266's AP:
ap_if = network.WLAN(network.AP_IF)
ap_if.config(essid="", authmode=network.AUTH_WPA_WPA2_PSK, pas)
Control commands:
CTRL-A -- on a blank line, enter raw REPL mode
CTRL-B -- on a blank line, enter normal REPL mode
CTRL-C -- interrupt a running program
CTRL-D -- on a blank line, do a soft reset of the board
CTRL-E -- on a blank line, enter paste mode
For further help on a specific object, type help(obj)
>>> print("Hello World")
Hello World
修改 AP 参数 - SSID
>>> import network
>>> ap = network.WLAN(network.AP_IF)
>>> ap.config(essid="I_Changed_SSID_of_NodeMCU")
使用手机或电脑 wifi 可以搜索到 I_Changed_SSID_of_NodeMCU 这个 SSID
启用 WebREPL
请翻阅 ? WebREPL (web browser interactive prompt)
MicroPython
翻阅
1. http://docs.micropython.org/en/latest/library/index.html
和
2. http://docs.micropython.org/en/latest/library/index.html#micropython-specific-libraries
ESP8266
1. http://docs.micropython.org/en/latest/library/esp.html#
2. http://docs.micropython.org/en/latest/esp8266/quickref.html
-- 有时间的话更新部分基本用法
只要编写好一个 main.py 文件之后,使用 WebREPL 上传到板子上即可。
-- 不一定更新
- 首先使用 LINUX 主机会很省心。但是在 Windows 上将 /dev/ttyUSB0 换成其上的 COM?(如 COM3)理论上也是一样的。
- 确保有 LINUX 主机上有 Python3(默认安装),以及安装了 python3-pip ($ pip3 -V).
- 然后安装 esptool 用来为烧录 NodeMCU 烧录固件(可以理解为就像为电脑安装系统一样)
- 下载最新的 MicroPython for ESP8266(NodeMCU) 固件,执行上文 1 烧录固件 中的命令
(本文上面提供的固件链接为 v1.10,既是不是最新的因关系不大)
- 在串口终端中试用 MircoPython
(串口终端是指:将串口用作终端的意思,是我自己为了方便造的词语,不一定是通用表达用语)
- 编程之前,先了解 MicroPython 库和 MicroPython 为 ESP8266 开发的一些特殊库(如 wifi)
- 编写程序,保存为 main.py 文件,使用 WebREPL 上传 main.py 文件。
MicroPython 在 NodeMCU 上运行的时候,如果找到 main.py 文件,就会默认执行它。
http://docs.micropython.org/en/latest/esp8266/tutorial/intro.html#intro
http://docs.micropython.org/en/latest/esp8266/quickref.html
https://github.com/micropython/webrepl
=========== 分割线,以下为原文 ===================
- 上文的更新可以视为 “用 Python 的方式编程 NodeMCU”。
- 当然,还有一种“用 JavaScript(Node.js) 的方式编程 NodeMCU”,但是这个不会在本文找到。
(本段为最开始本文发布的内容,首次发布在 2016 年,仅做记录保留)
进过多番查找,终于找到一个可以用的教程。wiki上的,这边我就转个连接大家自己看。上面还有适用于产品开发的开发环境搭建,还是很全面很详细的。选择适合自己的
上链接
http://wiki.jackslab.org/Getting_Started_with_Noduino_on_Windows
------- 分割线 -------------------
########### 2017/12/02 的更新 #####################
不得不说,使用ESP8266 还是有点儿难度的,
(当然,有难度都是相对而言的,看使用的方式是什么)
为什么?
因为这上面跑了了小系统,有“固件”。个人对这个东西现在还不甚了解。
但是没有关系,现在文档越来越多,内容比起当初我第一次了解这款wifi模块,也越来越详细和深入了。
针对本文的标题,今日做一下更新,
上手 NodeMCU, 个人推荐使用 ESP8266 core for Arduino.
理由如下:
1. 如果你使用过arduino, 真的会被它惊叹
2. 这个库包括wifi功能,还可以把该模块直接当 MCU 使用,不要再使用一块MCU 控制。
----------------------------------
在 github 上可以找到 ESP8266 core for Arduino , 其中有wiki ([my note:reserve place](put the linker)) 可以 上手。
(^^^^^[my note: reserve place](put the reference github linker))
如果使用的是 NodeMCU, 或者类似的模块。真的比较好上手
(直接用,Arduino IDE (配置好了之后)还有ESP8266 的例程,打开例程就上传就OK了)
(^^^^^[my note, reserve place](put the reference linker))
-----------------------------------------
如果是 ESP8266 -> 深圳那家叫什么来着的 生产的 ESP-01 的模块(前几年,8个引脚的模块),
先放着吃灰,赶紧买一块像NodeMCU 这样的模块,
(乐鑫和那个厂商是两个不同的公司,以前我都搞不清楚。
那个厂商也是很不错的,只不过懒得搜名字了,这里不是说他们家产品不好哈。)
----------------------------------------
总结:
硬件:NodeMCU
开发环境: Aruidno IDE (ESP8266 core for Arduino)
开发参考:(github)ESP8266 core for Arduino -> Doc(wiki)