找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 12246|回復: 5
打印 上一主題 下一主題
收起左側

基于物聯(lián)網(wǎng)的ESP8266連接機智云教程

  [復制鏈接]
跳轉到指定樓層
樓主
ID:210817 發(fā)表于 2018-3-16 11:13 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
前言:本文詳細介紹了小黑板接入機智云教程,通過一個手機APP遠程控制LED亮滅的應用,完整的體驗了機智云提供的一些列簡單方便的開發(fā)工具,尤其是代碼自動生成工具,懶人福音。
一、 esp8266簡介
ESP8266 是上海樂鑫研發(fā)的高性能無線 SOC,旨在以最低成本提供最大實用性,為 WiFi 功能嵌入其他系統(tǒng)提供無限可能,被稱為業(yè)界里程碑。通俗的講就是高性能單片機+無線WiFi外設,特性如下:
ESP8266
低功耗、高集成度的 Wi-Fi 芯片
僅需 7 個**元器件
超寬工作溫度范圍:-40°C +125°C
ESP8285 ESP8266 內(nèi)封 8 Mbit Flash
高度集成
ESP8266EX 是業(yè)內(nèi)集成度最高的 Wi-Fi 芯片,最小封裝尺寸僅為 5mm x 5mm。ESP8266EX 高度集成了天線開關、射頻 balun、功率放大器、低噪放大器、過濾器和電源管理模塊,僅需很少的**電路,可將所占 PCB 空間降到最低。
32 Tensilica MCU
ESP8266EX 內(nèi)置 Tensilica L10632 位微型控制器 (MCU),具有超低功耗和 16 RSIC,時鐘速度最高可達 160 MHz。支持實時操作系統(tǒng) (RTOS),目前 Wi-Fi 協(xié)議棧只用了 20% MIPS,其他均可用于用戶編程和開發(fā)。
低功耗
ESP8266EX 專為移動設備、可穿戴電子產(chǎn)品和物聯(lián)網(wǎng)應用而設計,通過多項專有技術實現(xiàn)了最低功耗。ESP8266EX 有三種運行模式:激活模式、睡眠模式和深度睡眠模式,能夠延長電池壽命。
性能穩(wěn)定
ESP8266EX 集成了更多的元器件,性能穩(wěn)定,易于制造,工作溫度范圍達到 -40°C +125°C
二、小黑板簡介
小黑板是安信可基于ESP8266研發(fā)的開發(fā)板,板載1顆三色RGBLED,光敏電阻,3.3V LDO電源模塊,以及1個輕觸按鍵,可在官網(wǎng)查看原理圖,原理圖如下:
各個引腳的功能如下:
一、 開發(fā)步驟
首先明確下目的:通過手機APP控制RGB LED的亮滅。進一步分析,除了LED的驅動,我們還需要輔助,就是如何配置輸入路由器的SSID和密碼問題,利用板載的一顆輕觸開關進行觸發(fā)和機智云手機APP可輕而易舉的實現(xiàn)smartconfig。
利用機智云平臺只需2步,1是底層LED驅動代碼編寫,2是利用代碼自動生成工具生成工程框架,然后填充用戶指令,比如開關燈。
準備工作:
第一步:了解機智云平臺架構(可略過),戳我。
第二步:了解機智云Soc方案(可略過),戳我。
1.      首先在開發(fā)者中心創(chuàng)建產(chǎn)品:
2.      建立數(shù)據(jù)點(詳解數(shù)據(jù)點):

數(shù)據(jù)點即設備產(chǎn)品的功能的抽象,用于描述產(chǎn)品功能及其參數(shù)。創(chuàng)建數(shù)據(jù)點后,設備與云端通訊的數(shù)據(jù)格式即可確定,設備、機智云可以相互識別設備與機智云互聯(lián)互通的數(shù)據(jù)。
例如開關紅燈的數(shù)據(jù)點:
2.1 顯示名稱:自定義功能點名稱。
2.2 標識名:用于應用層傳輸,客戶端或業(yè)務云開發(fā)時需要使用。命名規(guī)則遵循標準的開發(fā)語言變量名命名規(guī)范,支持英文字母、數(shù)字和下劃線,以英文字母開頭。
2.3 讀寫類型:
① 只讀:表示該數(shù)據(jù)點非控制,數(shù)據(jù)只支持從設備上報。
② 可寫:表示該數(shù)據(jù)點可控制。設備端可上報該數(shù)據(jù)點數(shù)據(jù);云端/客戶端可對該數(shù)據(jù)點數(shù)據(jù)做出下發(fā)控制。
③ 報警:表示該數(shù)據(jù)點非控制,數(shù)據(jù)只支持從設備上報,數(shù)據(jù)類型需為布爾值。
④ 故障:表示該數(shù)據(jù)點非控制,數(shù)據(jù)只支持從設備上報,數(shù)據(jù)類型需為布爾值。云端會對設備上報的該數(shù)據(jù)點做統(tǒng)計,可在“運行狀態(tài)”查看。
2.4 數(shù)據(jù)類型:

① 布爾值:表示兩個狀態(tài):0,或1。如開關狀態(tài)等,建議使用布爾數(shù)據(jù)類型。例如gokit開發(fā)板的寵物屋,開啟/關閉紅色燈該數(shù)據(jù)點。
② 枚舉類型:可定義一個有限的取值集合。當定義的某個功能(元器件)有固定的若干個值。例如GoKit開發(fā)板的寵物屋,設定LED組合顏色該數(shù)據(jù)點的枚舉定義值:自定義,黃色,紫色,粉色。
③ 數(shù)值:填寫數(shù)值范圍,數(shù)值可為負數(shù)/小數(shù),機智云自動將數(shù)值轉換為正數(shù)。例如GoKit開發(fā)板的寵物屋,設定電機轉速該數(shù)據(jù)點:電機有正反轉、調速功能,數(shù)據(jù)點值可定義為:-55
④ 擴展:填寫數(shù)據(jù)長度,數(shù)據(jù)內(nèi)容由用戶自定義。對于上述功能點無法滿足的復雜功能可采用。機智云不建議使用此類型數(shù)據(jù),設備上報該數(shù)據(jù)點的數(shù)據(jù),機智云無法識別。
1.5  備注:選填,用一段文本描述當前數(shù)據(jù)點的功能及定義方法,對字符格式不做限制。只用于提高數(shù)據(jù)點的易讀性,如果需要團隊協(xié)作開發(fā),建議規(guī)范填寫。

3.      選擇SOC方案以生成工程:
然后點擊生成按鈕即可生成完畢;

點擊下載即可,下載后把它改名為MiniE_Test,因為那個名字實在是太長了。在開發(fā)向導里,有很多十分實用的工具和教程。
4. 至此云端工作完畢,開始MCU端編程,下載生成的工程,目錄如下:
詳情如下:
生成的這個工程和官方的微信寵物屋源碼框架是相似的,源碼邏輯詳解點我。
下面編寫RGB LED驅動頭文件,命名為hal_led.h,并把它放到\MiniE_Test\app\include\driver目錄:
接下來編寫對應的C文件,命名為hal_led.c,并把它放到\MiniE_Test\app\driver目錄:
關于GPIO功能的定義在這個文件:
接下來修改按鍵,這個按鍵的作用是觸發(fā)小E進入聯(lián)網(wǎng)模式,配合手機APP獲取路由器的SSID和密碼。由于生成的工程包含的按鍵驅動是以機智云官方Gokit3 SOC版為模板的,我們小E的按鍵連接的管腳和Gokit是不一樣的,因此需要修改。
\MiniE_Test\app\user里的user_main.c文件,包含了整個框架和按鍵定義,直接在這里修改即可:
如上對比圖,去掉一個按鍵,并修改IO編號,然后修改按鍵的初始化和回調函數(shù):
至此按鍵修改完畢。接下來在\MiniE_Test\app\user 里的user_main.c文件,即“主函數(shù)”里調用RGB LED初始化以完成外設初始化:
首先包含RGB LED驅動路徑:
然后在void ICACHE_FLASH_ATTR user_init(void)函數(shù)調用RGB LED初始化:
User_main.c中還有一個userTimerFun定時回調函數(shù),這里可依據(jù)數(shù)據(jù)點添加信息,例如本例增加了RGB LED故障上報,當然填充值為0,因為實際并沒有去檢測的LED的好壞,另外的2個參數(shù)是用于光照檢測的,本期沒有添加板載光明敏電阻的驅動,這里直接給了一個固定值,下期將給出相關教程。

最后一步是在\MiniE_Test\app\Gizwits里的gizwits_product.c文件中添加業(yè)務邏輯,本例就是MCU收到手機APP的對應指令后執(zhí)行開或關燈動作。首先是包含驅動頭文件:
然后找到如下函數(shù):int8_t ICACHE_FLASH_ATTRgizwitsEventProcess(eventInfo_t *info, uint8_t *data, uint32_t len),在里面如下位置添加對應代碼:
至此代碼編輯全部完成,后顧一下,是不是只是簡單的編寫了底層驅動和填充了用戶業(yè)務邏輯代碼,其它和云端交互的代碼完全應用代碼自動生成工具為我們搭建的框架即可。
二、 編譯和燒錄、測試
編譯源碼、燒錄教程:點我,總結下就是使用樂鑫開發(fā)的工具,選擇好固件,然后GPIO0管腳接地進入燒錄模式,這里給個直觀的接線圖:
最后效果:

評分

參與人數(shù) 1黑幣 +2 收起 理由
sz189981 + 2 絕世好帖!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏8 分享淘帖 頂2 踩
回復

使用道具 舉報

沙發(fā)
ID:518981 發(fā)表于 2020-2-25 23:11 | 只看該作者
多謝分享
回復

使用道具 舉報

板凳
ID:456200 發(fā)表于 2020-3-21 17:38 | 只看該作者
你好,我想問一下,esp8266模塊怎么連接按鍵才能配置上網(wǎng)?我的如何都搜不到設備
回復

使用道具 舉報

地板
ID:143203 發(fā)表于 2020-8-6 08:35 | 只看該作者
這個按鍵是隨便定義的嗎?airkiss按鍵
回復

使用道具 舉報

5#
ID:143203 發(fā)表于 2020-8-6 08:52 | 只看該作者
各個BIN的地址怎么對應?
回復

使用道具 舉報

6#
ID:691181 發(fā)表于 2022-1-9 00:44 | 只看該作者
手上剛好有同款開發(fā)板,正愁沒有教程學習,收藏了,明天嘗試一下
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表