MicroPython简介

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

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

    • 开发环境

      • ESP NodeMCU
      • Windows10 64位
    • 安装esptool

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

      • 在官网上下载 相应固件

      • 将NodeMCU用数据线与电脑USB链接,并在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)
          
        
  • 连接开发板(windows环境)

    • 使用 putty 链接开发板 (使用其他串口工具也行,但没测试过)
      • 使用串口连接 COMx
      • 速率设置为 115200
      • 将 Serial /FLow control 设置为None
      • 输入回车键即会显示输入提示符
      • 按esp8266/32开发板上重启按键即可(若事先有上传的main.py的程序,会自动运行,具体操作可参考官网)
  • 上传文件到开发板

    • 使用mircopython network库文件连接wifi
    • 打开文件上传网站
    • 输入esp开发板分配的ip地址,点击连接
    • 密码为:123456
    • 进入后,选择本地文件上传即可
  • 自运行的mqtt服务(可选)

    • 提前写好的代码,已经上传到开发板的项目,只需要修改config.json文件中wifi设置,再重新上传即可
    • 或者不修改开发板文件,将路由器wifi名称设置为 360WiFi 密码设置为:716434lyq ,开发板开机后会自动连接此wifi进行数据上传
    • mqtt上传的服务器ip,也可以在config.json进行修改,目前是上传我私人服务器

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)

  • 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 函数