授人以魚不如授人以漁,目的不是爲了教會你具體項目開發,而是學會學習的能力。但願你們分享給你周邊須要的朋友或者同窗,說不定大神成長之路有博哥的奠定石。。。git
QQ技術互動交流羣:ESP8266&32 物聯網開發 羣號622368884,不喜勿噴web
1、基礎篇網絡
2、網絡篇函數
- ESP8266開發之旅 網絡篇① 認識一下Arduino Core For ESP8266
- ESP8266開發之旅 網絡篇② ESP8266 工做模式與ESP8266WiFi庫
- ESP8266開發之旅 網絡篇③ Soft-AP——ESP8266WiFiAP庫的使用
- ESP8266開發之旅 網絡篇④ Station——ESP8266WiFiSTA庫的使用
- ESP8266開發之旅 網絡篇⑤ Scan WiFi——ESP8266WiFiScan庫的使用
- ESP8266開發之旅 網絡篇⑥ ESP8266WiFiGeneric——基礎庫
- ESP8266開發之旅 網絡篇⑦ TCP Server & TCP Client
- ESP8266開發之旅 網絡篇⑧ SmartConfig——一鍵配網
- ESP8266開發之旅 網絡篇⑨ HttpClient——ESP8266HTTPClient庫的使用
- ESP8266開發之旅 網絡篇⑩ UDP服務
- ESP8266開發之旅 網絡篇⑪ WebServer——ESP8266WebServer庫的使用
- ESP8266開發之旅 網絡篇⑫ 域名服務——ESP8266mDNS庫
- ESP8266開發之旅 網絡篇⑬ SPIFFS——ESP8266 Flash文件系統
- ESP8266開發之旅 網絡篇⑭ web配網
- ESP8266開發之旅 網絡篇⑮ 真正的域名服務——DNSServer
- ESP8266開發之旅 網絡篇⑯ 無線更新——OTA固件更新
3、應用篇oop
4、高級篇學習
Ticker是Arduino Core For ESP8266 內置的一個定時器庫,這個庫用於規定時間後調用函數。優化
Ticker的功能很是簡單,就是規定時間後調用函數。因此讀者能夠發現本章節很是簡短,能夠快速瞭解使用。
老規矩,先上一個博主總結的百度腦圖:
ui
整體上,根據功能能夠把方法分爲兩大類:.net
函數說明:代碼規範
/** * 中止Ticker */ void detach();
函數說明:
/** * Ticker是否激活狀態 * @return bool true表示ticker啓用 */ bool active();
函數說明:
/** * xx秒後只執行一次 * @param seconds 秒數 * @param callback 回調函數 */ void once(float seconds, callback_function_t callback); /** * xx秒後只執行一次 * @param seconds 秒數 * @param callback 回調函數 * @param arg 回調函數的參數 */ void once(float seconds, void (*callback)(TArg), TArg arg)
callback_function_t定義以下:
typedef std::function<void(void)> callback_function_t;
/** * xx毫秒後只執行一次 * @param seconds 秒數 * @param callback 回調函數 */ void once_ms(float seconds, callback_function_t callback) /** * xx毫秒後只執行一次 * @param seconds 秒數 * @param callback 回調函數 * @param arg 回調函數的參數 */ void once_ms(uint32_t milliseconds, void (*callback)(TArg), TArg arg);
函數說明:
/** * 每隔xx秒週期性執行 * @param seconds 秒數 * @param callback 回調函數 */ void attach(float seconds, callback_function_t callback); /** * 每隔xx秒週期性執行 * @param seconds 秒數 * @param callback 回調函數 * @param arg 回調函數的參數 */ void attach(float seconds, void (*callback)(TArg), TArg arg)
函數說明:
/** * 每隔xx毫秒週期性執行 * @param seconds 秒數 * @param callback 回調函數 */ void attach_ms(float seconds, callback_function_t callback); /** * 每隔xx毫秒週期性執行 * @param seconds 秒數 * @param callback 回調函數 * @param arg 回調函數的參數 */ void attach_ms(uint32_t milliseconds, void (*callback)(TArg), TArg arg)
注意點:
實例說明:
板載LED 0.3s 慢閃,而後 0.1s快閃,最後常亮;
源碼:
/** * 代碼功能:板載LED開始0.3秒閃,而後快閃,最後常亮 */ #include <Ticker.h> Ticker flipper; int count = 0; void flip() { int state = digitalRead(LED_BUILTIN); // get the current state of GPIO1 pin digitalWrite(LED_BUILTIN, !state); // set pin to the opposite state ++count; // 當翻轉次數達到20次的時候,切換led的閃爍頻率,每隔0.1s翻轉一次 if (count == 20) { flipper.attach(0.1, flip); } // 當次數達到120次的時候關閉ticker else if (count == 120) { flipper.detach(); } } void setup() { //LED_BUILTIN 對應板載LED的IO口 pinMode(LED_BUILTIN, OUTPUT); digitalWrite(LED_BUILTIN, LOW); //每隔0.3s 翻轉一下led狀態 flipper.attach(0.3, flip); } void loop() { }
注意點:
各位讀者能夠查閱源碼中的位置,就會發現有不少經常使用的板子(博主這裏使用到的NodeMcu)。
實例說明:
板載LED 來回快速閃爍
源碼:
#include <Ticker.h> Ticker tickerSetHigh; Ticker tickerSetLow; void setPin(int state) { digitalWrite(LED_BUILTIN, state); } void setup() { pinMode(LED_BUILTIN, OUTPUT); digitalWrite(1, LOW); // 每隔25ms調用一次 setPin(0) tickerSetLow.attach_ms(25, setPin, 0); // 每隔26ms調用一次 setPin(1) tickerSetHigh.attach_ms(26, setPin, 1); } void loop() { }
本篇章很是簡單,就是一個Ticker定時器的使用,請讀者快速翻閱;