คลาสยูทิลิตี้สำหรับการบูตโปรเจ็กต์ Arduino
ภายในไม่กี่นาที คุณจะสามารถอ่านและเขียนลงพื้นที่จัดเก็บข้อมูล (ในรูปแบบ JSON) อ่านและส่งข้อความไปยังคิว MQTT เชื่อมต่อ WiFi โดยไม่ต้องใช้รหัสผ่านฮาร์ดโค้ด และอื่นๆ...
Arduino Bootstrapper
ต้องการเป็นจุดเริ่มต้นสำหรับ การสร้างโครงการที่ดีโดยไม่ต้องมีโค้ดซ้ำซ้อน
Espressif 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()
# OPTIONAL ใส่ตรรกะที่คุณต้องการในกรณีที่ไมโครคอนโทรลเลอร์ของคุณถูกตัดการเชื่อมต่อจากเครือข่ายmanageHardwareButton()
# ตัวเลือก ใส่คำสั่งพิเศษสำหรับการจัดการปุ่มฮาร์ดแวร์ระหว่างการตัดการเชื่อมต่อเครือข่ายmanageQueueSubscription()
# สมัครสมาชิกหัวข้อ mqtt ที่ต้องการcallback()
# ฟังก์ชัน 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
สำหรับวิธีการนำเข้าทั้งสองวิธี คุณควรเพิ่ม dirs พิเศษให้กับ 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 bootstrapper
bootstrapManager.bootstrapSetup(manageDisconnections, manageHardwareButton, callback);
ในฟังก์ชัน loop()
ของคุณ ให้เพิ่มฟังก์ชัน bootstrap manager
bootstrapManager.bootstrapLoop(manageDisconnections, manageQueueSubscription, manageHardwareButton);
โปรดปฏิบัติตาม Bootstrap a project from scratch
โดยไม่มีส่วนโคลนคอมไพล์เริ่มต้น
โปรเจ็กต์นี้ใช้ symlink Windows ไม่ได้เปิดใช้งาน symlink ตามค่าเริ่มต้น หากต้องการเปิดใช้งาน ให้เรียกใช้ cmd นี้จากคอนโซลผู้ดูแลระบบ:
export MSYS=winsymlinks:nativestrict
โปรเจ็กต์นี้รองรับ CI ผ่าน GitHub Actions ในโฟลเดอร์ .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 |