用于引导 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 许可证。 |