用於引導 Arduino 專案的實用程式類別。
幾分鐘後,您將能夠讀取和寫入儲存(以 JSON 格式)、讀取訊息並將訊息發送到 MQTT 隊列、連接到 WiFi 而無需硬編碼密碼等等...
Arduino Bootstrapper
希望成為創建良好專案且無需重複程式碼的起點。
樂鑫ESP8266/ESP32
是預設平台,但您可以輕鬆添加對其他平台和主機板的支援。
為 Arduino IDE 和 PlatformIO 編寫。
如果您喜歡Arduino Bootstrapper ,請給它一顆星,或分叉它並做出貢獻!
在 Github 上開啟一個問題,您的問題可能對其他使用者有用。
有兩種方法可以使用此實用程式來引導您的軟體。
智慧恆溫器、太陽能站、螢火蟲螢光素、智慧手錶上鍊器
克隆引導程式
git clone [email protected]:sblantipodi/arduino_bootstrapper.git
只需按照描述編輯這些文件,需要幾分鐘
.
├── ...
├── examples # Project src folder
│ ├── ChangeName.cpp # Main file with loop() and setup() function, rename and copy it into your src folder
│ ├── ChangeName.h # Main header file, rename and copy it into your include folder
│ └── ...
├── src # Folder for core files, edit those files and contribute!
│ ├── BootstrapManager.h # Core header file with utility classes for bootstrapping
│ ├── QueueManager.h # Core header file with utility classes for Queue and MQTT management
│ ├── WifiManager.h # Core header file with utility classes for Wifi and OTA upload management
│ ├── Helpers.h # Core header file with helper classes
│ └── ...
├── platformio.ini # Configure all the required info (ex: Wifi device name, DNS gateway, ecc.)
├── secrets.ini.template # Configure password and rename the file in secrets.ini
└── ...
筆記:
您應該實現那些透過*pointer傳遞給主引導函數的函數:
class BootstrapManager {
...
public:
void bootstrapSetup (
void (*manageDisconnectionFunction)(),
void (*manageHardwareButton)(),
void (*callback)( char *, byte*, unsigned int )
);
void bootstrapLoop (
void (*manageDisconnectionFunction)(),
void (*manageQueueSubscription)(),
void (*manageHardwareButton)()
);
...
};
manageDisconnections()
#可選放置您需要的邏輯,以防您的微控制器與網路斷開連接manageHardwareButton()
#可選在網路斷開期間放置用於硬體按鈕管理的特殊指令manageQueueSubscription()
# 訂閱所需的 mqtt 主題callback()
# 當訊息從佇列到達時呼叫的回呼函數您可以透過兩種方式將Arduino Bootstrapper
匯入到現有專案中:
// For PlatformIO
Add `lib_deps` to your `platformio.ini`
lib_deps = ArduinoBootstrapper
// For ArduinoIDE
Simply import the Bootstrapper library from the library manager
git submodule add https://github.com/sblantipodi/arduino_bootstrapper.git arduino_bootstrapper
對於這兩種匯入方法,您應該將額外的目錄新增至您的platformio.ini
中
lib_extra_dirs = arduino_bootstrapper
將~/arduino_bootstrapper/secrets.ini.template
複製並配置為secrets.ini.template
請將 BootrapManager.h 包含到您的主頭檔:
# include " BootstrapManager.h "
並初始化 BootstrapManager 類別:
BootstrapManager bootstrapManager;
在setup()
函數中新增 Wifi、MQTT 和 OTA 引導程式
bootstrapManager.bootstrapSetup(manageDisconnections, manageHardwareButton, callback);
在你的loop()
函數中加入引導管理器函數
bootstrapManager.bootstrapLoop(manageDisconnections, manageQueueSubscription, manageHardwareButton);
請遵循Bootstrap a project from scratch
說明,無需初始 git 克隆部分。
此項目使用符號鏈接,Windows 預設情況下不啟用符號鏈接,要啟用它,請從管理控制台執行此 cmd:
export MSYS=winsymlinks:nativestrict
該專案透過 GitHub Actions 支持 CI。在.github/workflows
資料夾中有兩個工作流程
如果您使用此語法:
git tag -a v1.0.0 -m "your commit msg";
git push origin --tags;
提交訊息中的文字將是您的版本的描述。
Arduino Bootstrapper 將搜尋secrets.ini
,如果您不配置它,則啟動存取點。
您可以用手機連接AP並訪問http://192.168.4.1訪問GUI
這將讓您輸入所有密碼,而無需對它們進行硬編碼。
該程式已根據 MIT 許可證獲得許可
謝謝 | 為了 |
---|---|
對於 CLion IDE 許可證。 |