跳至主要內容

Ardunio开发

fastbee2024年9月27日大约 6 分钟

提示

文章介绍了使用Arduino工具开发ESP8266开发版的固件代码,并烧录固件到开发版,开发板跟FastBee平台连接。

一、Arduino介绍

Arduino是一款开源电子原型平台,包括硬件(各种型号的Arduino板)和软件(Arduino IDE)。以下是对Arduino的具体介绍:

  1. 发展历程:Arduino诞生于意大利的艺术设计学院Ivrea Interaction Design Institute,由Massimo Banzi等人发起。从2005年发布第一块Arduino板至今,Arduino已经发展成为领域内最为流行的开源硬件平台之一。
  2. 硬件组成:Arduino板主要由微控制器(MCU)、输入/输出引脚(I/O Pins)、电源接口、USB接口以及稳压电路等部分组成。
  3. 编程语言:Arduino使用基于C/C++编程语言的简化版本,并提供了丰富的库函数,使得编写代码更加简单易懂。
  4. 开发环境:Arduino IDE是基于Processing IDE开发的,对于初学者来说极易掌握,同时有着足够的灵活性。
  5. 优势特点:Arduino具有跨平台、简单清晰、开放性以及发展迅速等优势。它支持Windows、Macintosh OS X、Linux三大主流操作系统,且编程环境易于初学者使用。
  6. 应用领域:Arduino可以应用于机器人项目、无人机、机械手臂、智能家居系统等多种领域。通过连接各种传感器和执行器,Arduino可以实现与环境的交互,从而完成各种有趣的项目。

总的来说,Arduino是一款功能强大、易于上手的开源电子原型平台,适合艺术家、设计师、爱好者以及对开发互动装置或互动式开发环境感兴趣的人使用。

二、ESP8266介绍

ESP8266是一款由乐鑫科技(Espressif Systems)开发的低成本、高性能的Wi-Fi芯片解决方案,广泛应用于物联网和嵌入式开发领域。以下是对ESP8266的具体介绍:

  1. 发展历程:ESP8266自推出以来,凭借其强大的功能和极高的性价比,迅速在物联网开发者中获得了广泛认可。它支持多种工作模式,如STA(站点模式)、AP(接入点模式)以及STA+AP混合模式,为设备提供了灵活的网络连接方式。
  2. 硬件组成:ESP8266模块内部集成了天线开关balun、电源管理转换器等关键组件,因此仅需极少的外部电路即可实现完整的Wi-Fi功能。同时,它还支持多种接口标准,如SDIO 2.0、SPI、UART等,便于与各种微控制器进行连接和通信。
  3. 编程语言:ESP8266可以通过AT指令和Lua脚本进行编程。AT指令是一种基于文本的命令语言,用于控制模块的各种功能;而Lua脚本则是一种轻量级的编程语言,适合在资源受限的环境中运行。
  4. 开发环境:ESP8266的开发环境相对简单,只需使用串口调试工具即可与模块进行通信,并进行代码烧录和调试。此外,还有许多第三方开发工具和库可供选择,如Arduino IDE、AiThinker IDE等,它们提供了丰富的API和示例代码,方便开发者快速上手。
  5. 优势特点:ESP8266具有高度集成、低功耗、易编程和低成本等特点。它集成了TCP/IP协议栈,可以直接连接到Wi-Fi网络,无需额外的外部芯片;同时,其功耗非常低,适合电池供电的应用场景。此外,ESP8266的价格相对较低,可以大规模应用于物联网产品中。
  6. 应用领域:ESP8266在物联网领域的应用非常广泛,包括但不限于智能家居、智能车辆、工业自动化、智能农业等。通过与各种传感器和执行器的结合,ESP8266可以实现远程监控、数据采集、设备控制等功能,为人们的生活和工作带来极大的便利。

总的来说,ESP8266是一款功能强大、易于使用的Wi-Fi模块,适用于各种物联网和嵌入式开发场景。

三、开发环境搭建

1. 准备工具

使用流程图
使用流程图

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,版本尽量保持一致

使用流程图
使用流程图

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

实现功能如下:

  1. 烧录代码
使用流程图
使用流程图

烧录完成后,重启设备,FastBee设备列表自动创建对应设备,设备详情可以查看监测数据和控制设备。

使用流程图
使用流程图

五、参考文档