ESP8266 Python使用方法

MicroPython简介

  • 官网介绍(http://www.micropython.org/)

      MicroPython是Python 3编程语言的精简高效实现 ,包括Python标准库的一小部分,并且经过优化,可在微控制器和受限环境中运行。
    
      MicroPython pyboard是一个紧凑的电子电路板,在裸机上运行MicroPython,为您提供一个低级Python操作系统,可用于控制各种电子项目。
    
      MicroPython包含许多高级功能,如交互式提示,任意精度整数,闭包,列表理解,生成器,异常处理等。然而它非常紧凑,可以在256k的代码空间和16k的RAM内运行。
    
      MicroPython旨在尽可能与普通Python兼容,以便您轻松地将代码从桌面传输到微控制器或嵌入式系统。
    
  • 在ESP8266上运行MicroPython

    • 开发环境

      • ESP NodeMCU
      • Windows10 64位
    • 安装esptool

        # 需要安装python环境
        pip install esptool
      
    • 安装MicroPython固件

      • 在官网上下载最新固件(http://micropython.org/download#esp8266)

      • 将NodeMCU用数据线与电脑链接,并在cmd命令窗口使用mode查看com口

      • 使用命令写入固件

          # 清空原有固件,如果报错没有该命令则需要使用esptool.py ...
          esptool --port COMx erase_flash
          
          # 写入固件
          esptool --port COM3 --baud 460800 write_flash --flash_size=detect -fm dio 0 esp8266-20170108-v1.8.7.bin
          (部分型号的 NodeMCU,需增加命令参数 -fm dio)
        
    • 使用putty链接开发板

      • 使用串口连接 COMx
      • 速率设置为 115200
      • 将 Serial /FLow control 设置为None
      • 输入回车键即会显示输入提示符

Micro Python 常用库

  • machine 库

      import machine
      # 设置 p2 为 gpio 2号口,并设置为输出
      p2 = machine.Pin(2,machine.Pin.OUT)
      # 熄灭
      p2.value(1)
      #点亮
      p2.value(0)
    
  • os 库(import os)

    • 对文件系统进行操作

    • 常用文件系统操作命令

        os.statvfs('/')     # 查看文件系统状态
        os.listdir()        # 列出当前目录下文件
        os.mkdir('xxxx')    # 创建目录
        os.rmdir('xxxx')    # 删除目录
        os.stat('test.py')  # 列出文件状态
        os.rename('test.py','test.py.bak')  # 修改文件名
        os.remove('test.py.bak')            # 删除文件
        
        # 打印文件内容
        f=open('boot.py','r')
        f.read()
        f.close()
      
  • network 库(import network)

    • 对网卡进行操作

    • 常用命令

        sta_if = network.WLAN(network.STA_IF)   # 设置工作站网卡 sta_if
        sta_if.active(True)                     # 开启网卡
        sta_if.connect('xxx','yyy')             # 连接 wifi 网络,名称为 xxx,密码为 yyy
        sta_if.active()                         # 查询网卡是否激活
        sta_if.isconnected()                    # 查询网络是否连接
        sta_if.ifconfig()                       # 查询网络连接信息
        sta_if.active(False)                    # 关闭网卡
        
        # 设置热点,热点名为Micropython... , 密码为:micropythoN
        ap_if = network.WLAN(network.AP_IF)             # 设置热点网卡 ap_if
        ap_if.config(essid="abc", password="12345678")  # 设置热点与密码
        ap_if.config("essid")                           # 查看设置的热点
        sta_if.active(False)                            # 关闭热点
      
  • webrepl_setup 库 (import webrepl_setup)

    • 操作web界面
    • 输入 e
    • 输入密码
    • 确认密码
    • 输入 y
    • 浏览器访问 webrepl 网页( http://micropython.org/webrepl/ )
    • 修改 web段IP 地址
  • time 库

    • 操作时间的函数

    • 常用命令

        time.sleep(1)  # 延时1秒
      
  • dht 库

    • dht 操作温湿度传感器

        import dht
        import machine
        # 将4号引脚设置为dht11传感器
        d1 = dht.DHT11(machine.Pin(4))
        # 测量一次
        d1.measure()
        # 返回测量的温湿度
        d1.temperature()
        d1.humidity()
      
  • MQTTClient 库

  • 基本使用方法

    • 编译环境会自动出现缩进,连续按4次回车,即开始运行程序,CTRL + C 终止程序
    • 按 Ctrl + e 进入粘贴模式,CTRL + D 退出即可
    • 也可以保存为.py文件,使用 webrepl 上传文件,import 文件名 即可运行该程序
    • 每次esp8266上电后会自动运行 main.py 函数