Arduino 프로젝트 부트스트래핑을 위한 유틸리티 클래스입니다.
몇 분 안에 저장소(JSON 형식)를 읽고 쓸 수 있고, MQTT 대기열에 메시지를 읽고 보낼 수 있으며, 비밀번호를 하드코딩하지 않고도 Wi-Fi에 연결할 수 있습니다.
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
└── ...
메모:
*포인터를 통해 기본 부트스트랩 함수에 전달되는 함수를 구현해야 합니다.
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);
초기 git clone 부분 없이 Bootstrap a project from scratch
따르세요.
이 프로젝트는 심볼릭 링크를 사용합니다. 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 라이선스의 경우. |