上手 NodeMCU(ESP8266开发板)的两种方式(MicroPython&Arduino)

20 篇文章 1 订阅

目录

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 固件使用更佳!!!

 

NodeMCU + MicroPython

 

0 提要

硬件和主机:

  • NodeMCU
  • LINUX 主机(Ubuntu)

工具/环境:

  • Python3 + pip3 ($ sudo apt install python3-pip);
  • esptool ($ pip3 install --user esptool);
  • MicroPython for ESP8266 固件 ? 点我下载
  • WebREPL 工具 -- 最大用途莫过于用来上传下载 micropython 程序文件;
    • ? 点我下载
    • 也可以使用官方在线版本直接运行(只是为浏览器加载了 html/js/css 等文件而已,运行时仍然是本地的)。
  • minicom -- LINUX 上的串口终端。
    $ sudo apt install minicom

     

1 烧录固件

按以下步骤执行即可。

(因为使用的是 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 /<your>/<path>/<to>/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...

 

2 上手运行

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("<AP_name>", "<password>") # 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="<AP_NAME>", 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)

 

3 了解 MicroPython,了解 ESP8266 - 库!库!库!

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

 

-- 有时间的话更新部分基本用法

 

4 编写一个程序

 

只要编写好一个 main.py 文件之后,使用 WebREPL 上传到板子上即可。

-- 不一定更新

 

5 总结!总结!总结!

- 首先使用 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

 


===========  分割线,以下为原文  ===================


用 Arduino 的方式编程 NodeMCU

 - 上文的更新可以视为 “用 Python 的方式编程 NodeMCU”。

 - 当然,还有一种“用 JavaScript(Node.js) 的方式编程 NodeMCU”,但是这个不会在本文找到。

 

Getting Started with Noduino on Windows

(本段为最开始本文发布的内容,首次发布在 2016 年,仅做记录保留)

进过多番查找,终于找到一个可以用的教程。wiki上的,这边我就转个连接大家自己看。上面还有适用于产品开发的开发环境搭建,还是很全面很详细的。选择适合自己的

上链接

http://wiki.jackslab.org/Getting_Started_with_Noduino_on_Windows

 


------- 分割线 -------------------


###########  2017/12/02 的更新 #####################

ESP8266 core for Arduino

不得不说,使用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)

 

 

  • 2
    点赞
  • 0
    评论
  • 14
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值