Ardunio开发
提示
文章介绍了使用Arduino工具开发ESP8266开发版的固件代码,并烧录固件到开发版,开发板跟FastBee平台连接。
一、Arduino介绍
Arduino是一款开源电子原型平台,包括硬件(各种型号的Arduino板)和软件(Arduino IDE)。以下是对Arduino的具体介绍:
- 发展历程:Arduino诞生于意大利的艺术设计学院Ivrea Interaction Design Institute,由Massimo Banzi等人发起。从2005年发布第一块Arduino板至今,Arduino已经发展成为领域内最为流行的开源硬件平台之一。
- 硬件组成:Arduino板主要由微控制器(MCU)、输入/输出引脚(I/O Pins)、电源接口、USB接口以及稳压电路等部分组成。
- 编程语言:Arduino使用基于C/C++编程语言的简化版本,并提供了丰富的库函数,使得编写代码更加简单易懂。
- 开发环境:Arduino IDE是基于Processing IDE开发的,对于初学者来说极易掌握,同时有着足够的灵活性。
- 优势特点:Arduino具有跨平台、简单清晰、开放性以及发展迅速等优势。它支持Windows、Macintosh OS X、Linux三大主流操作系统,且编程环境易于初学者使用。
- 应用领域:Arduino可以应用于机器人项目、无人机、机械手臂、智能家居系统等多种领域。通过连接各种传感器和执行器,Arduino可以实现与环境的交互,从而完成各种有趣的项目。
总的来说,Arduino是一款功能强大、易于上手的开源电子原型平台,适合艺术家、设计师、爱好者以及对开发互动装置或互动式开发环境感兴趣的人使用。
二、ESP8266介绍
ESP8266是一款由乐鑫科技(Espressif Systems)开发的低成本、高性能的Wi-Fi芯片解决方案,广泛应用于物联网和嵌入式开发领域。以下是对ESP8266的具体介绍:
- 发展历程:ESP8266自推出以来,凭借其强大的功能和极高的性价比,迅速在物联网开发者中获得了广泛认可。它支持多种工作模式,如STA(站点模式)、AP(接入点模式)以及STA+AP混合模式,为设备提供了灵活的网络连接方式。
- 硬件组成:ESP8266模块内部集成了天线开关balun、电源管理转换器等关键组件,因此仅需极少的外部电路即可实现完整的Wi-Fi功能。同时,它还支持多种接口标准,如SDIO 2.0、SPI、UART等,便于与各种微控制器进行连接和通信。
- 编程语言:ESP8266可以通过AT指令和Lua脚本进行编程。AT指令是一种基于文本的命令语言,用于控制模块的各种功能;而Lua脚本则是一种轻量级的编程语言,适合在资源受限的环境中运行。
- 开发环境:ESP8266的开发环境相对简单,只需使用串口调试工具即可与模块进行通信,并进行代码烧录和调试。此外,还有许多第三方开发工具和库可供选择,如Arduino IDE、AiThinker IDE等,它们提供了丰富的API和示例代码,方便开发者快速上手。
- 优势特点:ESP8266具有高度集成、低功耗、易编程和低成本等特点。它集成了TCP/IP协议栈,可以直接连接到Wi-Fi网络,无需额外的外部芯片;同时,其功耗非常低,适合电池供电的应用场景。此外,ESP8266的价格相对较低,可以大规模应用于物联网产品中。
- 应用领域:ESP8266在物联网领域的应用非常广泛,包括但不限于智能家居、智能车辆、工业自动化、智能农业等。通过与各种传感器和执行器的结合,ESP8266可以实现远程监控、数据采集、设备控制等功能,为人们的生活和工作带来极大的便利。
总的来说,ESP8266是一款功能强大、易于使用的Wi-Fi模块,适用于各种物联网和嵌入式开发场景。
三、开发环境搭建
1. 准备工具
- ESP8266系列开发版
- USB转TTL模块(部分开发版已集成)
- 电脑安装Arduino开发工具
ESP8266开发版或者对应产品很多,可以淘宝查找购买。USB转TTL线常用的例如ch340模块,主要用于设备和电脑连接去烧录代码,接线时TX接RX,RX接TX,GND接GND,GPIO0引脚跟GDN引脚连接,拉低电平,进入烧录模式。Arduino开发工具可以官网下载最新版本。
2. Arduino开发环境
提示
安装失败可能是网络原因,需要翻墙,可以网络上找免费加速器使用
2.1 安装开发版
首先需要配置Arduino Core For Esp8266,它为arduino环境下的esp8266芯片提供了支持,使用arduino库和函数编写代码,直接在esp8266上运行,它是一个arduino平台上开发esp8266的插件。打开Arduino开发工具中的 文件 -> 首选项 -> 其他开发板管理器地址添加 http://arduino.esp8266.com/stable/package_esp8266com_index.json
。
然后安装ESP8266开发版,打开 工具 -> 开发版 -> 开发版管理器 -> 搜索esp8266 community 并安装。
2.2 安装插件 打开工具 -> 管理库 -> 搜索并安装 PubSubClient、 ArduinoJson、和OneButton,版本尽量保持一致
- ArduinoJson7.2.0
- OneButton2.6.1
- PubSubClient2.8.0
2.3 Arduino结构
setup方法中配置初始化参数,例如IO口模式、串口波特率、mqtt连接信息等,loop方法中代码会重复执行,放置业务代码,例如监听消息等。
void setup(){
// 编写初始化代码,只会执行一次
}
void loop(){
// 编写重复执行代码
}
四、FastBee固件代码
1. 固件代码介绍
使用该SDK主要修改Config.cpp里面的配置信息,在User.cpp里面根据产品物模型,实现自定义功能。
├───FastBeeArduino.h #程序入口
├───Apconfig.cpp #设备配网
├───Apconfig.h
├───Auth.cpp #设备认证
├───Auth.h
├───Base64.cpp #base64编码和解码
├───Base64.h
├───Config.cpp #全局配置信息(更具服务器信息和设备功能调整)
├───Config.h
├───Mqtt.cpp #设备交互
├───Mqtt.h
├───User.cpp #用户自定义功能(根据设备功能调整)
├───User.h
├───Update.cpp #OTA升级
├───Update.h
实现功能如下:
- WIFI连接、MQTT连接、设备加密认证、设备配网、发布设备信息、订阅设备升级、Http和Mqtt获取设备当前时间、
- 物模型(属性、功能、事件)的发布和订阅
- 实时监测、模拟上报监测数据
- 用户自定义功能:继电器的开关
- OTA升级
- 烧录代码
- 硬件部分:USB转TTL模块连接设备和电脑后,把GPIO0跟GND连接,拉低电平,设备进入烧录模式,部分开发版已集成USB串口模块,单机按钮直接进入烧录模式。
- 软件部分:选择对应的端口和开发版,单机上传按钮,开始编译和烧录固件
烧录完成后,重启设备,FastBee设备列表自动创建对应设备,设备详情可以查看监测数据和控制设备。