
提示
文章介紹了使用Arduino工具開(kāi)發(fā)ESP8266開(kāi)發(fā)版的固件代碼,并燒錄固件到開(kāi)發(fā)版,開(kāi)發(fā)板跟FastBee平臺(tái)連接。
一、Arduino介紹
Arduino是一款開(kāi)源電子原型平臺(tái),包括硬件(各種型號(hào)的Arduino板)和軟件(Arduino IDE)。以下是對(duì)Arduino的具體介紹:
- 發(fā)展歷程:Arduino誕生于意大利的藝術(shù)設(shè)計(jì)學(xué)院Ivrea Interaction Design Institute,由Massimo Banzi等人發(fā)起。從2005年發(fā)布第一塊Arduino板至今,Arduino已經(jīng)發(fā)展成為領(lǐng)域內(nèi)最為流行的開(kāi)源硬件平臺(tái)之一。
- 硬件組成:Arduino板主要由微控制器(MCU)、輸入/輸出引腳(I/O Pins)、電源接口、USB接口以及穩(wěn)壓電路等部分組成。
- 編程語(yǔ)言:Arduino使用基于C/C++編程語(yǔ)言的簡(jiǎn)化版本,并提供了豐富的庫(kù)函數(shù),使得編寫(xiě)代碼更加簡(jiǎn)單易懂。
- 開(kāi)發(fā)環(huán)境:Arduino IDE是基于Processing IDE開(kāi)發(fā)的,對(duì)于初學(xué)者來(lái)說(shuō)極易掌握,同時(shí)有著足夠的靈活性。
- 優(yōu)勢(shì)特點(diǎn):Arduino具有跨平臺(tái)、簡(jiǎn)單清晰、開(kāi)放性以及發(fā)展迅速等優(yōu)勢(shì)。它支持Windows、Macintosh OS X、Linux三大主流操作系統(tǒng),且編程環(huán)境易于初學(xué)者使用。
- 應(yīng)用領(lǐng)域:Arduino可以應(yīng)用于機(jī)器人項(xiàng)目、無(wú)人機(jī)、機(jī)械手臂、智能家居系統(tǒng)等多種領(lǐng)域。通過(guò)連接各種傳感器和執(zhí)行器,Arduino可以實(shí)現(xiàn)與環(huán)境的交互,從而完成各種有趣的項(xiàng)目。
總的來(lái)說(shuō),Arduino是一款功能強(qiáng)大、易于上手的開(kāi)源電子原型平臺(tái),適合藝術(shù)家、設(shè)計(jì)師、愛(ài)好者以及對(duì)開(kāi)發(fā)互動(dòng)裝置或互動(dòng)式開(kāi)發(fā)環(huán)境感興趣的人使用。
二、ESP8266介紹
ESP8266是一款由樂(lè)鑫科技(Espressif Systems)開(kāi)發(fā)的低成本、高性能的Wi-Fi芯片解決方案,廣泛應(yīng)用于物聯(lián)網(wǎng)和嵌入式開(kāi)發(fā)領(lǐng)域。以下是對(duì)ESP8266的具體介紹:
- 發(fā)展歷程:ESP8266自推出以來(lái),憑借其強(qiáng)大的功能和極高的性價(jià)比,迅速在物聯(lián)網(wǎng)開(kāi)發(fā)者中獲得了廣泛認(rèn)可。它支持多種工作模式,如STA(站點(diǎn)模式)、AP(接入點(diǎn)模式)以及STA+AP混合模式,為設(shè)備提供了靈活的網(wǎng)絡(luò)連接方式。
- 硬件組成:ESP8266模塊內(nèi)部集成了天線開(kāi)關(guān)balun、電源管理轉(zhuǎn)換器等關(guān)鍵組件,因此僅需極少的外部電路即可實(shí)現(xiàn)完整的Wi-Fi功能。同時(shí),它還支持多種接口標(biāo)準(zhǔn),如SDIO 2.0、SPI、UART等,便于與各種微控制器進(jìn)行連接和通信。
- 編程語(yǔ)言:ESP8266可以通過(guò)AT指令和Lua腳本進(jìn)行編程。AT指令是一種基于文本的命令語(yǔ)言,用于控制模塊的各種功能;而Lua腳本則是一種輕量級(jí)的編程語(yǔ)言,適合在資源受限的環(huán)境中運(yùn)行。
- 開(kāi)發(fā)環(huán)境:ESP8266的開(kāi)發(fā)環(huán)境相對(duì)簡(jiǎn)單,只需使用串口調(diào)試工具即可與模塊進(jìn)行通信,并進(jìn)行代碼燒錄和調(diào)試。此外,還有許多第三方開(kāi)發(fā)工具和庫(kù)可供選擇,如Arduino IDE、AiThinker IDE等,它們提供了豐富的API和示例代碼,方便開(kāi)發(fā)者快速上手。
- 優(yōu)勢(shì)特點(diǎn):ESP8266具有高度集成、低功耗、易編程和低成本等特點(diǎn)。它集成了TCP/IP協(xié)議棧,可以直接連接到Wi-Fi網(wǎng)絡(luò),無(wú)需額外的外部芯片;同時(shí),其功耗非常低,適合電池供電的應(yīng)用場(chǎng)景。此外,ESP8266的價(jià)格相對(duì)較低,可以大規(guī)模應(yīng)用于物聯(lián)網(wǎng)產(chǎn)品中。
- 應(yīng)用領(lǐng)域:ESP8266在物聯(lián)網(wǎng)領(lǐng)域的應(yīng)用非常廣泛,包括但不限于智能家居、智能車輛、工業(yè)自動(dòng)化、智能農(nóng)業(yè)等。通過(guò)與各種傳感器和執(zhí)行器的結(jié)合,ESP8266可以實(shí)現(xiàn)遠(yuǎn)程監(jiān)控、數(shù)據(jù)采集、設(shè)備控制等功能,為人們的生活和工作帶來(lái)極大的便利。
總的來(lái)說(shuō),ESP8266是一款功能強(qiáng)大、易于使用的Wi-Fi模塊,適用于各種物聯(lián)網(wǎng)和嵌入式開(kāi)發(fā)場(chǎng)景。
三、開(kāi)發(fā)環(huán)境搭建
1. 準(zhǔn)備工具
- ESP8266系列開(kāi)發(fā)版
- USB轉(zhuǎn)TTL模塊(部分開(kāi)發(fā)版已集成)
- 電腦安裝Arduino開(kāi)發(fā)工具

ESP8266開(kāi)發(fā)版或者對(duì)應(yīng)產(chǎn)品很多,可以淘寶查找購(gòu)買。USB轉(zhuǎn)TTL線常用的例如ch340模塊,主要用于設(shè)備和電腦連接去燒錄代碼,接線時(shí)TX接RX,RX接TX,GND接GND,GPIO0引腳跟GDN引腳連接,拉低電平,進(jìn)入燒錄模式。Arduino開(kāi)發(fā)工具可以官網(wǎng)下載最新版本。
2. Arduino開(kāi)發(fā)環(huán)境
提示
安裝失敗可能是網(wǎng)絡(luò)原因,需要翻墻,可以網(wǎng)絡(luò)上找免費(fèi)加速器使用
2.1 安裝開(kāi)發(fā)版
首先需要配置Arduino Core For Esp8266,它為arduino環(huán)境下的esp8266芯片提供了支持,使用arduino庫(kù)和函數(shù)編寫(xiě)代碼,直接在esp8266上運(yùn)行,它是一個(gè)arduino平臺(tái)上開(kāi)發(fā)esp8266的插件。打開(kāi)Arduino開(kāi)發(fā)工具中的 文件 -> 首選項(xiàng) -> 其他開(kāi)發(fā)板管理器地址添加 http://arduino.esp8266.com/stable/package_esp8266com_index.json
。

然后安裝ESP8266開(kāi)發(fā)版,打開(kāi) 工具 -> 開(kāi)發(fā)版 -> 開(kāi)發(fā)版管理器 -> 搜索esp8266 community 并安裝。

2.2 安裝插件 打開(kāi)工具 -> 管理庫(kù) -> 搜索并安裝 PubSubClient、 ArduinoJson、和OneButton,版本盡量保持一致
- ArduinoJson7.2.0
- OneButton2.6.1
- PubSubClient2.8.0

2.3 Arduino結(jié)構(gòu)
setup方法中配置初始化參數(shù),例如IO口模式、串口波特率、mqtt連接信息等,loop方法中代碼會(huì)重復(fù)執(zhí)行,放置業(yè)務(wù)代碼,例如監(jiān)聽(tīng)消息等。
void setup(){
// 編寫(xiě)初始化代碼,只會(huì)執(zhí)行一次
}
void loop(){
// 編寫(xiě)重復(fù)執(zhí)行代碼
}
四、FastBee固件代碼
1. 固件代碼介紹
使用該SDK主要修改Config.cpp里面的配置信息,在User.cpp里面根據(jù)產(chǎn)品物模型,實(shí)現(xiàn)自定義功能。
├───FastBeeArduino.h #程序入口
├───Apconfig.cpp #設(shè)備配網(wǎng)
├───Apconfig.h
├───Auth.cpp #設(shè)備認(rèn)證
├───Auth.h
├───Base64.cpp #base64編碼和解碼
├───Base64.h
├───Config.cpp #全局配置信息(根據(jù)服務(wù)器信息和設(shè)備功能調(diào)整)
├───Config.h
├───Mqtt.cpp #設(shè)備交互
├───Mqtt.h
├───User.cpp #用戶自定義功能(根據(jù)設(shè)備功能調(diào)整)
├───User.h
├───Update.cpp #OTA升級(jí)
├───Update.h
實(shí)現(xiàn)功能如下:
- WIFI連接、MQTT連接、設(shè)備加密認(rèn)證、設(shè)備配網(wǎng)、發(fā)布設(shè)備信息、訂閱設(shè)備升級(jí)、Http和Mqtt獲取設(shè)備當(dāng)前時(shí)間、
- 物模型(屬性、功能、事件)的發(fā)布和訂閱
- 實(shí)時(shí)監(jiān)測(cè)、模擬上報(bào)監(jiān)測(cè)數(shù)據(jù)
- 用戶自定義功能:繼電器的開(kāi)關(guān)
- OTA升級(jí)
- 燒錄代碼
- 硬件部分:USB轉(zhuǎn)TTL模塊連接設(shè)備和電腦后,把GPIO0跟GND連接,拉低電平,設(shè)備進(jìn)入燒錄模式,部分開(kāi)發(fā)版已集成USB串口模塊,單機(jī)按鈕直接進(jìn)入燒錄模式。
- 軟件部分:選擇對(duì)應(yīng)的端口和開(kāi)發(fā)版,單機(jī)上傳按鈕,開(kāi)始編譯和燒錄固件

燒錄完成后,重啟設(shè)備,F(xiàn)astBee設(shè)備列表自動(dòng)創(chuàng)建對(duì)應(yīng)設(shè)備,設(shè)備詳情可以查看監(jiān)測(cè)數(shù)據(jù)和控制設(shè)備。
