本文是由開發者分享基于機智云物聯網平臺的一款開發設計,通過ESP8266模塊、NodeMCU開發板,實現普通排插到Wi-Fi智能控制排插的改造升級,以下為開發者的分享內容。我買了某品牌的LED燈 ,可以通過手機App控制開關狀態和亮度,晚上睡覺前躺著就能關燈,大大方便了我等懶人。拆開一看,發現其核心部分是一片Wi-Fi模塊 ,電路也不算復雜,我覺得可以自己DIY一個,就去網上淘了幾個ESP8266模塊和基于該模塊的NodeMCU開發板,打發空閑時間。本人有一點51單片機和Keil基礎,但對于Wi-Fi模塊來說還是個 “小白”,僅簡單地了解過NodeMCU固件,后來發現了機智云平臺能夠根據需求在云端生成代碼,下載后簡單地改一下就能用了,平臺還提供手機端App 。用了七八天的空閑時間,我終于完成了Wi-Fi插座的制作。ESP8266芯片是樂鑫生產的,而我們買到的ESP-XX模塊是安信可用樂鑫的模塊再加上必要電路形成的一個單片機最小系統。機智云提供了云平臺并可在云端生成代碼,生成的代碼是建立在安信可SDK的基礎上,然后又添加了自己的一些控制協議。下面我們就以控制一個LED的亮滅為例,看看具體怎么操作吧!>>>在線生成機智云代碼在機智云官網注冊一個賬號,然后登錄 ,進入開發者中心創建新產品。產品名稱就叫LEDtest吧 ,選 擇 “Wi-Fi/移動網絡方案”,通信方式和數據傳輸方式保持默認即。接著新建數據點。本次制作只是控制一個LED的開關, 所以我只定義了一個最簡單的可寫布爾型數據點,也就是說只有開和關這兩種狀態。在MCU開發頁面中選擇SOC方案和自己的硬件平臺 ,注意這里的單位是 Mbit ( 4 MB= 32Mbit) 。在基本信息中復制 Product Secret后粘貼,然后生成代碼包。>>>搭建開發環境開發環境我選擇了AiThinker_IDE, 因為它不需要安裝 Linux,也不需要虛擬機,在Windows下直接解壓就能使用。下載解壓后先運行ConfigTool.exe,單擊“Default” 后 ,再選擇 “Save” 。打開AiThinker_IDE. exe,這里會用到DotNetFx40 Framework,以前沒安裝的話可能會提示安裝。打 開 “File”, 單 擊 “Import”,選擇下圖所示的文件。然后單擊 “Next”, 選擇下載到的機智云代碼主目錄 。>>>修改程序打開主目錄下的 Makefile,把下圖所示的紅框內容按照實際情況進行修改。修改參數如下:BOOT?=none: 不使用 bootBOOT?=old: 用老版本的 boot_*v l . l 十BOOT?=new: 使用新版本的 boot_ v l.2+APP?=0: 不使用遠程升級 F0TAAPP?=1: 使用FOTA, 生成 user1...binAPP?=2: 使用 FOTA, 生成 user2...binSPI 工速度和模式,一般不用改動,保持默認即可。SPI SPEED?=40SPI_MODE?=QIOSPI_SIZE_MAP: Flash映射方式注意:有人說用的是多少MB的Flash就寫多少,本人試過2MB和4MB都沒問題,但用1MB的Flash寫SPI_SIZE_MAP?=1時,編譯失敗。這里還要修改幾個選中的文件,我們一個一個來吧。
要實現控制LED的亮滅或繼電器的吸合,需要用到一個變量,我們先在 gizwits_ ptoduct.h 中聲明一下。因為只有開和關2個狀態,用bool型就可以,這有點像KeilC51中的bit類型。
別忘了在gizwits_ product.c中進行初始化設置,這里設置LED是低電平點亮,上電初始化為高電平,默認不點亮。往下拉,找到 gizwitsEventProcess 函數。這個函數的作用是用云端數據點的值 CurrentDataPoint.valueLED 來控制LED等需要控制的實際電路,當云端為1時(ON),我們自己定義的變量STA=0,LED點亮;云端為0時(OFF),則STA=1,LED熄滅。繼續向下 ,修改userHandle用戶定 時器的回調函數,默認為1000ms調用一次 ,也可以在 gizwits_ protocol.c文件中修改 USER_TIME_MS,此處調用時間修改為100ms。把 STA賦值給實際操作的 GPIO來完成 LED的亮滅 ,并把本地狀態與云端完成同步。文件最下面,初始化云端數據點的值。接下來 ,打開 user_main.c文件, 找到下圖所示的位置。 云端生的代碼默認定義了2個按鍵,而我們只需要1個就夠了。NodeMCU開板的Flash按鍵接在 GPIO0 引腳。在定義按鍵時要注意 GPIO 的命名規則,比如GPIO1在程序里要寫為U0TXD,這對初學者來說是要重點注意的地方。Inst Name、 GPIO 和 NodeMCU 的對照關系,如圖所示。在user_main.c 文件中把與Key2有關的函數都刪掉。在Key1ShortPress函數里添加 “STA= ! STA; ”, 即每次短按把STA取反,也就是說短按點亮 LED,再按一下LED燈滅 。Key1LongPress里還有—句“gizwitsSetMode(WIFI_ AIRLINK_ MODE)”, 其作用是在長按按鍵時讓ESP8266模塊進入配對模式,此時開發板右上角LED點亮 ,然后通過手機 App把模塊接入Wi-Fi。再往下就是GPIO 的初始化。ESP8266 模塊右上角有一個 LED接到了 GPIO2 , 在程序中配置一下用作配對指示 。開發板靠近Micro USB的LED接在了 GPIO16 ,這就是我們最終要控制的指示燈了。值得注意的是,GPIO16的控制與其他端口的控制是不同的。下圖所示是按鍵與LED的電路圖。到這里程序就修改完了,仔細檢查確認無誤后保存。在最左側C/C + + Projects窗口主目錄上單擊鼠標右鍵,選擇 “Build Project”。如果沒有錯誤,就會看到生成了 user1.4096.new.4.bin 等文件,如下圖所示。沒看到的話說明程序有錯誤,請仔細確認。打開ESP8266燒寫工具ESPFIashDownloadTool_ v3 .6.4,選擇ESP8266 DownloadTool,按照圖所示進行配置 。設置好后單擊 “START”,下載完成后按一下模塊的 Reset,模塊端配置完成。>>>手機端配置下載安裝并打開機智云App。賬號 、密碼頁面直接選跳過,點擊右上角的 “ + ”號 ,選一鍵配置后輸入當前手機所連接的 SSID和 Wi-Fi密碼。進行下一步 ,模組類型選擇樂鑫,在出現 “通電后按以下提示操作”后(如圖所示) ,長按 NodeMCU開 發 板 Flash按鍵 ,右上角 LED點亮后,點 擊 “我已完成上述操作”, 稍等一會兒會提示完成設備添加。試著劃動 “開啟/關閉”按鈕,看NodeMCU開發板上的LED是否可以正常亮滅。按動NodeMCU開發板上的Flash按鍵,LED亮滅的同時,手機 App上的開關狀態也應同步開關。到這里,我們已完成了DIY—個Wi- Fi插座的所有知識介紹。接下來找出洞洞板,抄起電烙鐵,開工制作。>>>實際制作我找出以前買來的3位插排。拆掉開關和接線端子,用騰出來的空間安裝220V轉 5V 開關電源、ESP8266控制板和繼電器,把開關蓋用熱溶膠固定在原來的位置。在確定可以放下2個繼電器后,我決定做2路的智能插座,剩下的1路用來做常通插座。找一個手機5V適配器,去掉外殼和USB 接口以減小體積。電路用洞洞板簡單搭一下,ESP07 小板加上 LDO、阻容、繼電器,一會就焊好 了 。修改上面調試好的程序,把數據點改成 2個, 編譯完成后燒寫到模塊,然后用熱熔膠固定。高壓 、低壓之間記得用塑料片隔離,安全第一。因為沒有按鍵作AIRLINK,所以我將程序改為上電后30s未連接到Wi-Fi自動切換為AIRLINK配網模式,同時板載的藍色LED點亮, 因為很少會用到此功能,且從側面也能看到燈光,就沒有額外開LED孔位。在手機端輸入Wi-R的SSID和密碼就能把插排接入互聯網,測試正常后,把插座裝好,就可以投入使用了。智能插排的用途可以自由發揮,只要是能用開關控制的電器都可以接入,比如USB小燈、 普通風扇、電動車充電(可以將程序改為開啟后定時關閉)等 。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
物聯網
+關注
關注
2903文章
44296瀏覽量
371379 -
機智云
+關注
關注
2文章
582瀏覽量
26369
發布評論請先 登錄
相關推薦
esp8266連接阿里云平臺時mqtt連接超時
esp8266nodemcu在使用arduino.ide連接阿里云平臺的時候,wifi配置正常但連接不上mqtt,顯示報錯如下:
Attempting MQTT connection.
發表于 10-26 21:39
esp32和esp8266代碼共用嗎
本文將介紹ESP32和ESP8266兩款流行的微控制器在代碼共用性方面的可能性與差異性。 一、引言 隨著物聯網技術的飛速發展,越來越多的智能設備開始進入我們的生活。其中,
esp8266不燒錄可以使用嗎
ESP8266是一款非常流行的Wi-Fi模塊,廣泛應用于物聯網項目中。然而,如果不進行燒錄,ESP8266將無法正常工作。 1. ESP8266簡介
esp8266wifi模塊怎么連接手機
ESP8266 WiFi模塊連接手機主要可以通過兩種方式實現: 通過路由器連接(STA模式)和直接作為熱點連接(AP模式) 。以下是兩種連接方式的步驟: 一、通過路由器連接(STA模式
STM32F103 + ESP8266與機智云開發常見問題集錦:入門者必讀!
關于ESP8266模塊的選擇針對初學者,強烈建議選擇帶有串口的ESP8266開發板!這可以避免像我曾經遇到的燒錄固件失敗等問題。推薦直接購買已預裝機
使用Wi-Fi ESP8266方案模組接入云平臺
ESP8266的模塊芯片是基于無線通信協議的UARTWi-Fi透傳模塊芯片,支持802.11b/g/n的無線標準,并帶有三種可選擇的工作模式。ESP8266
通過STM32+ESP8266 Wifi模塊 +云服務器,做一個數據收發控制的板子云服務器方面該如何選擇?
通過STM32+ESP8266 Wifi模塊 +云服務器 做一個數據收發控制的板子
云服務器方面
發表于 04-25 08:16
STM32、ESP8266與MQTT連接阿里云物聯網的串口通信異常解析
STM32、ESP8266與MQTT協議連接阿里云物聯網平臺時常見的串口通信異常介紹 在構建物聯網應用時,STM32、ESP8266與MQTT協議的結合是
單片機怎么連接wifi模塊esp
連接WiFi模塊ESP8266到單片機有多種方法和步驟。在這篇文章中,我將為您詳細介紹如何連接ESP8266模塊到Arduino單片機。本文
評論