這個智能燈方案很不錯,只用了一個無線WIFI esp8266芯片,驅動ws2812b型RGB LED,效果很贊,在群里看到的,特分享下,若是侵犯了版權,聯系我刪除就行了~
實物圖.png (854.94 KB, 下載次數: 206)
下載附件
2017-5-4 18:31 上傳
0.png (48.43 KB, 下載次數: 196)
下載附件
2017-5-4 18:53 上傳
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
選項:CrystalFreq=26M SPI_SPEED=40MHz SPI_MODE=QIO FLASH_SIZE=32Mbit-C1, 其他默認,串口115200
進入uart燒錄模式后,點擊start下載即可!
4.OTA測試
OTA固件版本號位置:gizwits_product.h
#define SDK_VERSION "02" //OTA固件版本號 必須為兩位數
MAC:
查看云端產品管理->運行狀態->在線設備詳情->設備MAC
注意:
1.編譯固件時的Makefile與燒錄工具的設置:
"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 機智云.只為智能硬件而生
- * Gizwits Smart Cloud for Smart Products
- * 鏈接|增值ֵ|開放|中立|安全|自有|自由|生態
- * 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模塊相關系統任務參數
- * @{
- */
- #define userQueueLen 200 ///< 消息隊列總長度
- LOCAL os_event_t userTaskQueue[userQueueLen]; ///< 消息隊列
- /**@} */
- /**@name 用戶定時器相關參數
- * @{
- */
- #define USER_TIME_MS 1000 ///< 定時時間,單位:毫秒
- LOCAL os_timer_t userTimer; ///< 用戶定時器結構體
- /**@} */
- /**@name 按鍵相關定義
- * @{
- */
- #define GPIO_KEY_NUM 1 ///< 定義按鍵成員總數
- #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]; ///< 定義單個按鍵成員數組指針
- LOCAL keys_typedef_t keys; ///< 定義總的按鍵模塊結構體指針
- /**@} */
- /** 用戶區當前設備狀態結構體*/
- 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);
- }
- /**
- * 用戶數據獲取
- * 此處需要用戶實現除可寫數據點之外所有傳感器數據的采集,可自行定義采集頻率和設計數據過濾算法
- * @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 用戶相關系統事件回調函數
- * 在該函數中用戶可添加相應事件的處理
- * @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扇區(2544k~2548k)存儲RF_CAL參數
- * @param none
- * @return none
- */
- uint32 user_rf_cal_sector_set()
- {
- return 636;
- }
- /**
- * @brief 程序入口函數
- * 在該函數中完成用戶相關的初始化
- * @param none
- * @return none
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
全部資料下載:
SoC_ESP8266_WS2812B_SmartLEDs.zip
(8.96 MB, 下載次數: 406)
2017-5-4 18:31 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
使用ESP8266驅動WS2812B型RGB LED簡單3步打造智能燈.pdf
(1.2 MB, 下載次數: 348)
2017-5-4 18:31 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|