Kelas utilitas untuk bootstrap proyek Arduino.
Dalam beberapa menit Anda akan dapat membaca dan menulis ke penyimpanan (dalam format JSON), membaca dan mengirim pesan ke antrian MQTT, terhubung ke WiFi tanpa kata sandi hardcoding dan banyak lagi...
Arduino Bootstrapper
ingin menjadi titik awal untuk membuat proyek bagus tanpa duplikasi kode .
Espressif ESP8266/ESP32
adalah platform default tetapi Anda dapat dengan mudah menambahkan dukungan untuk platform dan board lain.
Ditulis untuk Arduino IDE dan PlatformIO.
Jika Anda menyukai Arduino Bootstrapper , beri bintang, atau potong dan kontribusikan!
Buka masalah di sini di Github, pertanyaan Anda mungkin berguna bagi pengguna lain.
Ada dua cara untuk mem-bootstrap perangkat lunak Anda menggunakan utilitas ini.
Termostat Cerdas, Stasiun Tenaga Surya, Cacing Cahaya Luciferin, Penggulung Jam Tangan Pintar
Kloning bootstrapper
git clone [email protected]:sblantipodi/arduino_bootstrapper.git
Cukup edit file tersebut sesuai deskripsi, diperlukan beberapa menit
.
├── ...
├── 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
└── ...
CATATAN:
Anda harus mengimplementasikan fungsi-fungsi yang diteruskan oleh *pointer ke fungsi bootstrap utama:
class BootstrapManager {
...
public:
void bootstrapSetup (
void (*manageDisconnectionFunction)(),
void (*manageHardwareButton)(),
void (*callback)( char *, byte*, unsigned int )
);
void bootstrapLoop (
void (*manageDisconnectionFunction)(),
void (*manageQueueSubscription)(),
void (*manageHardwareButton)()
);
...
};
manageDisconnections()
# OPSIONAL masukkan logika yang Anda perlukan jika mikrokontroler Anda terputus dari jaringanmanageHardwareButton()
# OPSIONAL berikan instruksi khusus untuk manajemen tombol perangkat keras selama pemutusan jaringanmanageQueueSubscription()
# berlangganan topik mqtt yang diinginkancallback()
# fungsi callback dipanggil ketika ada pesan yang masuk dari antrian Anda dapat mengimpor Arduino Bootstrapper
ke proyek Anda yang sudah ada dengan dua cara:
// 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
Untuk kedua metode pengimporan, Anda harus menambahkan direktori tambahan ke platformio.ini
Anda
lib_extra_dirs = arduino_bootstrapper
Salin dan konfigurasikan ~/arduino_bootstrapper/secrets.ini.template
ke dalam secrets.ini.template
Harap sertakan BootrapManager.h ke dalam file header utama Anda:
# include " BootstrapManager.h "
dan inisialisasi kelas BootstrapManager:
BootstrapManager bootstrapManager;
Dalam fungsi setup()
Anda, tambahkan bootstrapper Wifi, MQTT dan OTA
bootstrapManager.bootstrapSetup(manageDisconnections, manageHardwareButton, callback);
Dalam fungsi loop()
Anda, tambahkan fungsi manajer bootstrap
bootstrapManager.bootstrapLoop(manageDisconnections, manageQueueSubscription, manageHardwareButton);
Silakan ikuti instruksi Bootstrap a project from scratch
tanpa bagian awal git clone.
Proyek ini menggunakan symlink, Windows tidak mengaktifkan symlink secara default, untuk mengaktifkannya, jalankan cmd ini dari konsol admin:
export MSYS=winsymlinks:nativestrict
Proyek ini mendukung CI melalui GitHub Actions. Di folder .github/workflows
ada dua alur kerja
Jika Anda menggunakan sintaks ini:
git tag -a v1.0.0 -m "your commit msg";
git push origin --tags;
teks dalam pesan komit akan menjadi deskripsi rilis Anda.
Arduino Bootstrapper akan mencari secrets.ini
, jika Anda tidak mengkonfigurasinya, titik akses akan dimulai.
Anda dapat terhubung ke AP dengan ponsel Anda dan pergi ke http://192.168.4.1 untuk mengakses gui
yang memungkinkan Anda memasukkan semua kata sandi tanpa perlu melakukan hardcoding.
Program ini dilisensikan di bawah Lisensi MIT
Terima kasih | Untuk |
---|---|
Untuk lisensi CLion IDE. |