[原创] 【一起玩esp8266】ESP8266初上手

leekuip   2016-8-23 22:09 楼主
先大致说下对ESP8266的认识。ESP8266是一枚国产芯片,是内置了WiFi功能的单片机,ESP8266模块则是在芯片基础上扩展出的最小系统,包含了I/O的引出和板载PCB天线。 MicroPython是兼容Python语法及文件的微型Python系统,该系统由作者移植到诸如pyboard、wipy等硬件平台上,ESP8266也是MicroPython支持的硬件平台之一。MicroPython的初衷和Arduino类似,都是为了能够让没有电子电路基础的软件开发人员可以快速的实现对常用电路的控制。 向ESP8266烧写固件就是类似于向电脑上安装操作系统,完了之后一上电,整个系统便开始启动,如果需要让与ESP8266相连的外部电路执行某些指令,可以通过串口终端在控制台输入指令,也可以将想要实现的程序做成Python文件,放到Python系统中,类似于在Windows中运行EXE可执行文件。MicroPython是默认来执行命名为main.py的文件的。 MicroPython的官方网站是micropython.org ,大家可以在这里找到micropython的固件、文档等资料。这里值得一提的是MicroPython支持多个硬件平台,在官网Doc部分的左侧可以选择对应的硬件平台,这个是ESP8266部分的链接:网址 (这里吐槽下,之前一直没有看到这部分的文档,以至于一直没明白WLAN连接的指令是怎么样的) 下面就是拿到各种板子之后的第一个实验了——点灯。 本次活动的ESP8266板子上只有8266模块自带的一个蓝色LED灯,该LED灯连接的是Pin2,所以就拿Pin2来做实验了。GPIO的相关指令描述如下: Pins and GPIOUse the machine.Pin class: from machine import Pin p0 = Pin(0, Pin.OUT) # create output pin on GPIO0 p0.high() # set pin to high p0.low() # set pin to low p0.value(1) # set pin to high p2 = Pin(2, Pin.IN) # create input pin on GPIO2 print(p2.value()) # get value, 0 or 1 p4 = Pin(4, Pin.IN, Pin.PULL_UP) # enable internal pull-up resistor p5 = Pin(5, Pin.OUT, value=1) # set pin high on creation 在控制台中要先引入machine.Pin类,然后才能对引脚做对应的操作,执行的指令如下: from machine import Pin #引入类 p2 = Pin(2, Pin.OUT) #定义Pin2 p2.high() #Pin2置高,LED灯灭 p2.low() #Pin2置低,LED灯亮 下面是WLAN的连接,同样在官网找到的指令描述如下: NetworkingThe network module: import network wlan = network.WLAN(network.STA_IF) # create station interface wlan.active(True) # activate the interface wlan.scan() # scan for access points wlan.isconnected() # check if the station is connected to an AP wlan.connect('essid', 'password') # connect to an AP wlan.config('mac') # get the interface's MAC adddress wlan.ifconfig() # get the interface's IP/netmask/gw/DNS addresses ap = network.WLAN(network.AP_IF) # create access-point interface ap.active(True) # activate the interface ap.config(essid='ESP-AP') # set the ESSID of the access point 一样需要先做引用,至于network这个是叫做库还是叫做什么还没有具体看。然后按照指令描述中的步骤及返回的相关提示进行WLAN的设置后即可连接到指定的路由器。摸索的时候忘记截图了,大家就自己尝试吧。 连接好WLAN之后就可以尝试一项比较酷的实验了,作者在官网给出了网络访问板载MicroPython的工具: WebREPL (web browser interactive prompt)WebREPL (REPL over WebSockets, accessible via a web browser) is anexperimental feature available in ESP8266 port. Download web clientfrom https://github.com/micropython/webrepl (hosted version availableat http://micropython.org/webrepl), and start the daemon on a deviceusing: import webreplwebrepl.start() 连接好后如下图所示,界面与串口终端的控制台一样,可以在浏览器中控制LED的亮灭,是不是 挺好玩儿的呢。貌似还可以导入导出文件的,暂时还没研究,后面捣鼓清楚了再说。 QQ截图20160823220325.png 暂时就先写这么多吧,后面有进展了再继续发帖。 上述中仅为个人理解,可能有存在偏差的地方,请大侠们对错误的地方加以指正。 最后附一个官方指令描述的截图。 本帖最后由 leekuip 于 2016-8-23 22:21 编辑
  • 指令描述

回复评论 (7)

前面的esp8266和micropython的认识棒棒哒
点赞  2016-8-24 08:43
不错,支持一下!
点赞  2016-8-24 08:58
除了webrepl,uPyLoader也不错,很方便。
点赞  2016-8-24 10:01
引用: dcexpert 发表于 2016-8-24 10:01
除了webrepl,uPyLoader也不错,很方便。

uPyLoader还没来得及用呢,后面再按着你写的教程体验下。
点赞  2016-8-24 11:15
引用: nmg 发表于 2016-8-24 08:43
前面的esp8266和micropython的认识棒棒哒

见笑见笑
点赞  2016-8-24 11:16
引用: leekuip 发表于 2016-8-24 11:15
uPyLoader还没来得及用呢,后面再按着你写的教程体验下。

传小文件,用uPyLoader最方便。

楼主那个图片太长了,分成几个小一点的就方便了。
点赞  2016-8-24 11:19
引用: dcexpert 发表于 2016-8-24 11:19
传小文件,用uPyLoader最方便。

楼主那个图片太长了,分成几个小一点的就方便了。

额,那个图片只是做参考,指令我都贴在word里放在附件中了。
点赞  2016-8-24 12:17
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复