|
這個智能燈方案很不錯,只用了一個無線WIFI esp8266芯片,驅(qū)動ws2812b型RGB LED,效果很贊,在群里看到的,特分享下,若是侵犯了版權(quán),聯(lián)系我刪除就行了~
1.源碼編譯方式
1. cd app/
2. ./gen_misc.sh
2.庫編譯方式
1. 先用源碼編譯方式,生成libgagent.a 庫路徑為:"app/gagent/.output/eagle/debug/lib"
2. cp app/gagent/.output/eagle/debug/lib/libgagent.a ../lib/
3. mv makefile makefile_src
4. mv makefile_lib makefile
5. ./gen_misc.sh
3.燒錄固件
esp_init_data_default.bin 0x3fc000
blank.bin 0x3fe000
boot_v1.6.bin 0x00000
user1.4096.new.6.bin 0x01000
選項(xiàng):CrystalFreq=26M SPI_SPEED=40MHz SPI_MODE=QIO FLASH_SIZE=32Mbit-C1, 其他默認(rèn),串口115200
進(jìn)入uart燒錄模式后,點(diǎn)擊start下載即可!
4.OTA測試
OTA固件版本號位置:gizwits_product.h
#define SDK_VERSION "02" //OTA固件版本號 必須為兩位數(shù)
MAC:
查看云端產(chǎn)品管理->運(yùn)行狀態(tài)->在線設(shè)備詳情->設(shè)備MAC
注意:
1.編譯固件時的Makefile與燒錄工具的設(shè)置:
"FLASH SIZE" : 32Mbit-C1
"SPI MODE" : QIO
2.推送的“OTA固件版本號”必須大于正工作的軟件版本。
3.固件類型:WiFi 推送方式:v4.1
- /**
- ************************************************************
- * @file user_main.c
- * @brief SOC版 入口文件
- * @author Gizwits
- * @date 2016-09-05
- * @version V03010201
- * @copyright Gizwits
- *
- * @note 機(jī)智云.只為智能硬件而生
- * Gizwits Smart Cloud for Smart Products
- * 鏈接|增值ֵ|開放|中立|安全|自有|自由|生態(tài)
- * www.gizwits.com
- *
- ***********************************************************/
- #include "ets_sys.h"
- #include "osapi.h"
- #include "user_interface.h"
- #include "gagent_soc.h"
- #include "user_devicefind.h"
- #include "user_webserver.h"
- #include "gizwits_protocol.h"
- #include "driver/hal_key.h"
- #include "driver/Adafruit_NeoPixel.h"
- #if ESP_PLATFORM
- #include "user_esp_platform.h"
- #endif
- #ifdef SERVER_SSL_ENABLE
- #include "ssl/cert.h"
- #include "ssl/private_key.h"
- #else
- #ifdef CLIENT_SSL_ENABLE
- unsigned char *default_certificate;
- unsigned int default_certificate_len = 0;
- unsigned char *default_private_key;
- unsigned int default_private_key_len = 0;
- #endif
- #endif
- /**@name Gizwits模塊相關(guān)系統(tǒng)任務(wù)參數(shù)
- * @{
- */
- #define userQueueLen 200 ///< 消息隊(duì)列總長度
- LOCAL os_event_t userTaskQueue[userQueueLen]; ///< 消息隊(duì)列
- /**@} */
- /**@name 用戶定時器相關(guān)參數(shù)
- * @{
- */
- #define USER_TIME_MS 1000 ///< 定時時間,單位:毫秒
- LOCAL os_timer_t userTimer; ///< 用戶定時器結(jié)構(gòu)體
- /**@} */
- /**@name 按鍵相關(guān)定義
- * @{
- */
- #define GPIO_KEY_NUM 1 ///< 定義按鍵成員總數(shù)
- #define KEY_1_IO_MUX PERIPHS_IO_MUX_MTMS_U ///< ESP8266 GPIO 功能
- #define KEY_1_IO_NUM 14 ///< ESP8266 GPIO 編號
- #define KEY_1_IO_FUNC FUNC_GPIO14 ///< ESP8266 GPIO 名稱
- LOCAL key_typedef_t * singleKey[GPIO_KEY_NUM]; ///< 定義單個按鍵成員數(shù)組指針
- LOCAL keys_typedef_t keys; ///< 定義總的按鍵模塊結(jié)構(gòu)體指針
- /**@} */
- /** 用戶區(qū)當(dāng)前設(shè)備狀態(tài)結(jié)構(gòu)體*/
- dataPoint_t currentDataPoint;
- /**
- * key2按鍵短按處理
- * @param none
- * @return none
- */
- LOCAL void ICACHE_FLASH_ATTR key2ShortPress(void)
- {
- os_printf("#### key2 short press, soft ap mode \n");
- gizwitsSetMode(WIFI_SOFTAP_MODE);
- }
- /**
- * key2按鍵長按處理
- * @param none
- * @return none
- */
- LOCAL void ICACHE_FLASH_ATTR key2LongPress(void)
- {
- os_printf("#### key2 long press, airlink mode\n");
- gizwitsSetMode(WIFI_AIRLINK_MODE);
- }
- /**
- * 按鍵初始化
- * @param none
- * @return none
- */
- LOCAL void ICACHE_FLASH_ATTR keyInit(void)
- {
- singleKey[0] = keyInitOne(KEY_1_IO_NUM, KEY_1_IO_MUX, KEY_1_IO_FUNC,
- key2LongPress, key2ShortPress);
- keys.singleKey = singleKey;
- keyParaInit(&keys);
- }
- /**
- * 用戶數(shù)據(jù)獲取
- * 此處需要用戶實(shí)現(xiàn)除可寫數(shù)據(jù)點(diǎn)之外所有傳感器數(shù)據(jù)的采集,可自行定義采集頻率和設(shè)計(jì)數(shù)據(jù)過濾算法
- * @param none
- * @return none
- */
- void ICACHE_FLASH_ATTR userTimerFunc(void)
- {
- /*
- */
- //setAllPixelColor(0,50,0);
- system_os_post(USER_TASK_PRIO_0, SIG_UPGRADE_DATA, 0);
- }
- /**
- * @brief 用戶相關(guān)系統(tǒng)事件回調(diào)函數(shù)
- * 在該函數(shù)中用戶可添加相應(yīng)事件的處理
- * @param none
- * @return none
- */
- void ICACHE_FLASH_ATTR gizwitsUserTask(os_event_t * events)
- {
- uint8_t i = 0;
- uint8_t vchar = 0;
- if(NULL == events)
- {
- os_printf("!!! gizwitsUserTask Error \n");
- }
- vchar = (uint8)(events->par);
- switch(events->sig)
- {
- case SIG_UPGRADE_DATA:
- gizwitsHandle((dataPoint_t *)¤tDataPoint);
- break;
- default:
- os_printf("---error sig! ---\n");
- break;
- }
- }
- /**
- * @brief user_rf_cal_sector_set
- * 用flash中的636扇區(qū)(2544k~2548k)存儲RF_CAL參數(shù)
- * @param none
- * @return none
- */
- uint32 user_rf_cal_sector_set()
- {
- return 636;
- }
- /**
- * @brief 程序入口函數(shù)
- * 在該函數(shù)中完成用戶相關(guān)的初始化
- * @param none
- * @return none
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
全部資料下載:
SoC_ESP8266_WS2812B_SmartLEDs.zip
(8.96 MB, 下載次數(shù): 406)
2017-5-4 18:31 上傳
點(diǎn)擊文件名下載附件
使用ESP8266驅(qū)動WS2812B型RGB LED簡單3步打造智能燈.pdf
(1.2 MB, 下載次數(shù): 348)
2017-5-4 18:31 上傳
點(diǎn)擊文件名下載附件
|
評分
-
查看全部評分
|