版权声明:本文为博主徐松亮的原创作品,未经允许不得转载,多谢支持!QQ:5387603
推荐点击此链接:欢迎进入徐松亮博客一站式导航搜索(随时更新)
目录
一,ESP8266简介
-
1,官方网站
- 乐鑫(ESP8266的芯片生产商)
- https://www.espressif.com/
- 乐鑫的官方开发环境是基于Linux的,并提供VirtualBox的linux开发环境镜像与工具.
- 安信可(基于ESP8266芯片开发了系列模块,并有一定的开发资源与技术支持)
- https://www.ai-thinker.com/home
- 安信可的开发环境是基于Windows的,基于Eclipse+cygwin的开发环境,安信可都已经配置完好,降低使用难度.
- 乐鑫(ESP8266的芯片生产商)
-
2,芯片资源
- CPU Tensilica L106 32bitMCU 16bitRSIC
- 主频 80MHz~160MHz
- 存储
- 内部SRAM 刨除SDK 用户可用50KB
- 外部FLASH 16MB 建议不支持OTA>512KB,支持>1MB
- 功耗
- 激活模式
- 睡眠模式
- 深睡模式 20uA
- 外设
- GPIO 17个
- UART 2个 速度可达115200*40(4.5Mbps)
- I2C 1个 可主可从 100kHz
- I2S 1入1出 支持DMA
- SDIO 25MHz-SDIOv1.1 50MHz-SDIOv2.0
- PWM 4个
- ADC 1个 10bit
- SPI
- IR 1个 1收1发
二,基于安信可的Eclipse开发环境
-
1,适合人员
- 适合擅长基于C语言单片机开发的专业嵌入式开发工程师,对windows比较熟悉,对linux不太熟悉的人员。
- 因为这个环境是第三方公司建立,所以对应的官方SDK比较滞后,后续更新需要自行修改
- 因为直接应用C语言做底层开发,所以可以自由发挥出芯片的功能特性。
-
2,官方网站
- 本人的电脑:Windows10 64bit
- 安新可集成环境下载地址:http://pan.baidu.com/s/1skRvR1j
-
3,安装
- 参考官方文档:如何安装安信可一体化开发环境
-
4,使用
- 参考官方文档:如何使用安信可 ESP 系列一体化开发环境
-
5,下载
- 参考官方文档:如何为 ESP 系列模组烧录固件
三,基于micropython的开发环境
-
1,micropython简介
- Damien George是一名计算机工程师,他每天都要使用Python语言工作,同时也在做一些机器人项目。有一天,他突然冒出了一个想法:能否用Python语言来控制单片机,进行实现对机器人的操控呢?
要知道,Python是一款比较容易上手的脚本语言,而且有强大的社区支持,一些非计算机专业领域的人都选它作为入门语言。遗憾的是,它不能实现一些非常底层的操控,所以在硬件领域并不起眼。
Damien为了突破这种限制,他花费了六个月的时间来打造Micro Python。它基于ANSI C,语法跟Pyton 3基本一致,拥有自家的解析器、编译器、虚拟机和类库等。目前他支持基于32-bit的ARM处理器,比如说STM32F405。
借助Micro Python,用户完全可以通过Python脚本语言实现硬件底层的访问和控制,比如说控制LED灯泡、LCD显示器、读取电压、控制电机、访问SD卡等。
与此同时,Damien还给大家带来了一款专门为Micro Python而打造的开发板,它基于STM32F405单片机,通过USB接口进行数据传输。该开发板内置4个LED灯、一个加速传感器、时钟模块,可在3V-10V之间的电压正常工作。值得一提的是,它遵守MIT协议开源,被授权人拥有复制、修改、发行和再授权的权利。 - MicroPython在2014成功的在kickstarter上众筹,获得很高的评价,现在越来越多的开发者开始使用MicroPython。
目前MicroPython有多个不同硬件平台的移植版本,包括STM32F4/F7/L4系列、ESP8266、ESP32、NXP MK20DX256、microchip PIC33、Infineon XMC4700、nRF51822、CC3200、MSP432等。其中以STM32和ESP8266为主要版本。除了官方维护的版本外,还有众多爱好者移植的版本。
MicroPython采用了MIT授权方式,这是最宽松的授权方式,任何人都可以使用它,也可以用于商业应用。
实际上,除了MicroPython外,在嵌入式上还有其它一些python版本,只是影响力不大。如更早的时候有pymite项目,可以在avr上运行python;还有一些不开源的商业项目,如:SNAPpy,能够在C8051和AVR上运行。但是这些项目的功能不如micropython。
- Damien George是一名计算机工程师,他每天都要使用Python语言工作,同时也在做一些机器人项目。有一天,他突然冒出了一个想法:能否用Python语言来控制单片机,进行实现对机器人的操控呢?
-
2,适合人员
- 适合擅长软件开发,对硬件及C语言不是很擅长的python工程师。
- 适合没有特殊功能规划需求的项目,因为底层是不开放的,自由度没有C语言开发强。
-
3,官方网站
- micropython官网:https://micropython.org/
- micropython官网下载:https://micropython.org/download
- webrepl官网下载:https://github.com/micropython/webrepl
-
4,安装
- 芯片完全擦除(没有此步骤可能会导致开发板不断输出乱码),如下图软件配置,并点击ERASE按键
- 把下载的esp8266-XXXXXXXX-vX.X.X.bin文件,通过ESP FLASH DOWNLOAD TOOL工具下载到开发板。
- 验证:打开常用的串口工具,波特率115200,重上电开发板打印出调试信息,并进入到">>>"说明固件下载成功。
-
5,使用
- micropython官网文档:http://docs.micropython.org/en/latest/index.html
- 中文教程(仅供参考):https://pan.baidu.com/s/1l4w9xmpedyQQlZ36mMcIEw
- 指令方式实验
- 输入如下代码,可以验证开发板对应的小灯按照指令的执行亮灭.
- >>> from machine import Pin
>>> led=Pin(2,Pin.OUT)
>>> led.on()
>>> led.off()
- 文件传输方式
- 本文主要介绍用micropython的官方文件传输工具webrepl的使用步骤
- 首次下载固件后,先配置模块的网络,使其能与电脑使用共同的局域网.如下图:
- 设置webrepl的密码,在开发板上做如下操作(也是仅首次下载固件后操作,之后就不用了):
- 重启后,显示如下信息:
- 获取路由器给开发板分配的IP地址
- 在电脑打开webrepl客户端软件(打开文件webrepl.html),修改IP为开发板的IP,点击连接,并输入密码,如下图
- 新建一个文件main.py,输入最最简单的代码,并保存.如下图:
- 在通过上面已经连接的webrepl客户端软件网页,传送文件
- 重启设备,验证我们写的main.py是否被成功执行:
-
6,注意事项
- 传入ESP8266的文件注意编码格式,本人用ANSI编码好使,必要时用"记事本"转换即可.
- 注意板子的型号,尤其是FLASH容量,如果对应不好,会出现部分功能缺失,本人调试时遇到了用安信可的小黄版,下载micropython后,WebREPL不好使的状况.
四,基于Arduino的开发环境
-
1,Arduino简介
- Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(Arduino IDE)。由一个欧洲开发团队于2005年冬季开发...具体自己百度就好。
-
2,适合人员
- 一般用Arduino的大多是非专业工程师,而是电子产品开发爱好者。与micropython优缺点类似。
-
3,官方网站
-
4,安装
- 安装Arduino IDE
- 打开Arduino IDE,选择首选项(文件---首选项),在"附加开发板管理器网址"中添加如下信息:
- 安装开发板(工具---开发板...---开发板管理器),找到"esp8266 by ESP8266 Community...",下载安装
- 选择开发板,常规实验选择Genneric ESP8266 Module即可
- 选择串口,按照实际电脑连接的串口号选择
- 其他开发板信息如有特殊需求自行修改,如CPU Frequency或Flash Size等等.
-
5,应用实例
- 验证一个官方做的WebServer实例
- 打开示例文件:文件---示例---ESP8266WebServer---AdvancedWebServer,如下图
- 修改路由器的ssid和password为本地路由信息,如下图
- 编译与下载: 将ESP8266开发板进入下载模式(GPIO0拉低再复位,再具体问题不再本文描述范围内),先点击"验证"图标再点击"上传图标",如下图
- 如果程序下载成功,会在IDE的信息窗口显示如下信息.
- 打开IDE的串口监视器,设置波特率到115200,并复位开发板,如果板子连接路由成功,则会显示如下信息.
- 用浏览器打开上面显示的IP地址,就会看到ESP8266开发板输出的内容.实验结束.
五,基于乐鑫的开发环境(未完待续)
六,总结
- 专业的C语言嵌入式开发工程师用乐鑫开发环境或者安信可Eclipse开发环境
- 嵌入式开发爱好者通常使用micropython或则arduino开发环境.
- 尴尬的是,做为专业的C语言嵌入式开发工程师,有些复杂的网络应用自己从C语言来开发,不只是开发周期长,而且稳定性也不一定好,所以个人还是很看好micropython和arduino的逐步发展,最好紧跟脚步,也许不久C语言会向当初汇编语言一样,被主流淘汰.