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

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

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

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

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

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