通过EMP来设置MicroPython开机WIFI连接和WebREPL

出品: 1ZLAB 1zlab.com

EMP

EMP (Easy MicroPython) is a upy module to make things Easy on MicroPython.

当前版本为0.1.11, 包含以下几个模块:

  • emp_boot.py 一句代码用于设置MicroPython的boot启动模式
  • emp_wifi.py 一句代码搞定WIFI连接
  • emp_utils.py 工具模块,包含了emp_boot.py 和emp_wifi.py模块的一些依赖
  • emp_dev.py 原microide.py,封装了一些文件操作的接口,供microide所调用的,现在已放置当前项目维护

当前版本主要包含的功能是为用户提供便捷的WIFI连接,通过emp_wifi.py

通过EMP来设置MicroPython开机WIFI连接和WebREPL

第一步,让你的MicroPython设备连接到网络

(如果已经连接请忽略,直接执行第二步)

连接wifi的代码如下:

>>> import network
>>> wifi = network.WLAN(network.STA_IF)  
>>> wifi.active(True) 
>>> wifi.connect('<essid>', '<password>') #essid为WIFI名
>>> I (62825) wifi: n:1 1, o:1 0, ap:255 255, sta:1 1, prof:1
I (63395) wifi: state: init -> auth (b0)
I (63405) wifi: state: auth -> assoc (0)
I (63465) wifi: state: assoc -> run (10)
I (63515) wifi: connected with 你的WIFI名字, channel 1
I (63515) wifi: pm start, type: 1

I (63515) network: CONNECTED
I (64385) event: sta ip: 192.168.0.115, mask: 255.255.255.0, gw: 192.168.0.1
I (64385) network: GOT_IP
# 至此,可能你需要回车一下,才能出现下一 提示符 >>>
>>>

第二步,安装emp-1zlab

>>> import upip
I (240305) modsocket: Initializing
>>> upip.install('emp-1zlab')
Installing to: /lib/
Warning: pypi.org SSL certificate is not validated
Installing emp-1zlab 0.1.11 from https://files.pythonhosted.org/packages/59/95/b9e425d00c195c9beb2e77c0b02020676115c42762a32d61047650e3884b/emp-1zlab-0.1.11.tar.gz
>>> 

第三步,设置启动模式

>>> from emp_boot import set_boot_mode
>>> set_boot_mode()
[0]   Boot with nothing
      attention: this option will clear up boot.py, careful!
[1]   Boot with wifi startup
      this mode will auto start wifi connect program.
[2]   Easy to develop
      this mode is for developers.In this mode you can develop much easier via EMP-IDE(emp.1zlab.com)
Please input your choice [0-2]: 


简单说明以下,第0项为启动脚本为空,这个会清除boot.py中的所有内容

第1项为开机时启动WIFI连接

第2项为开机启动WIFI连接的同时启动WebRepl,配合我们的IDE一起使用

第四步,按照提示进行开机引导

在此我们以第二项 Easy to develop为例:当你按下2回车后,你的设备将会重启:

# 以上省略若干行日志,以下会罗列出 你当前的可用WIFI
created config/wifi_cfg.json # 初次运行会创建配置文件
I (3675) network: event 1
[0]    How_Router_Home                          -79     dBm
[1]    CMCC-iEPD                                -83     dBm
No record available # 如果你有已经登陆过的wifi,那么将会尝试自动连接
scaning networks...
I (6205) network: event 1
[0]    How_Router_Home                          -80     dBm
[1]    CMCC-iEPD                                -84     dBm
Which one do you want to access? [0-1]

在此选择你想要连接的WIFI,我的WIFI是第0个:

scaning networks...
I (6205) network: event 1
[0]    How_Router_Home                          -80     dBm
[1]    CMCC-iEPD                                -84     dBm
Which one do you want to access? [0-1]0
Password for How_Router_Home: # 输入你的WIFI密码,回车

初次运行设置WebRepl

# 省略若干行日志
I (369455) network: CONNECTED
I (370225) event: sta ip: 192.168.0.115, mask: 255.255.255.0, gw: 192.168.0.1
I (370225) network: GOT_IP
You are connected to How_Router_Home
IP: 192.168.0.115     # 你的内网 IP
Netmask: 255.255.255.0 # 掩码
Gateway: 192.168.0.1 # 网关
Added record: How_Router_Home
WebREPL daemon auto-start status: enabled

Would you like to (E)nable or (D)isable it running on boot?
(Empty line to quit)
> E                # E 为开启
To enable WebREPL, you must set password for it
New password (4-9 chars): 1zlab # 输入你的密码
Confirm password: 1zlab # 再次输入
No further action required


至此已成功的设置完成 你的MicroPython启动模式至 Easy develop模式,请访问我们的 网站emp.1zlab.com进行webrepl的高效开发吧!

可能你有如下的疑问:

  • 自动连接wifi的话,我如何控制在多个网络下的连接?比如我有家两个路由器,分别为A,B,我都进行过连接,我该如何保证我想要连接到A而不是B呢?

    >>> Wifi.set_default('<essid>')
    
  • 如何删除一条记录呢? 忘记WIFI?

    >>> Wifi.del_record('<essid>')
    
  • 查看ip的接口?

    >>> Wifi.ifconfig()
    You are connected to How_Router_Home
    IP: 192.168.0.115
    Netmask: 255.255.255.0
    Gateway: 192.168.0.1
    
    
  • 断开当前的WIFI

    >>> Wifi.disconnect()
    I (601244) wifi: state: run -> init (0)
    I (601244) wifi: pm stop, total sleep time: 565609183 us / 597113853 us
    
    I (601244) wifi: n:1 0, o:1 1, ap:255 255, sta:1 1, prof:1
    I (601264) wifi: flush txq
    I (601264) wifi: stop sw txq
    I (601264) wifi: lmac stop hw txq
    I (601264) wifi: STA_DISCONNECTED, reason:8
    E (601264) wifi: esp_wifi_connect 935 wifi not start
    I (601264) wifi: error attempting to reconnect: 0x3002
    I (601274) network: event 3
    WIFI connection has been disconnected
    
    
  • 重新连接到其他WIFI?

    # TODO em,有点小bug,待修复 ...
    
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容