源碼github地址:https://github.com/linzhongpaihuai/smartplug
①燒錄方法:https://blog.csdn.net/u010177891/article/details/90348729
②esp8266實現http server服務詳解:https://blog.csdn.net/u010177891/article/details/100024710
③esp8266對接天貓精靈實現語音控制:https://blog.csdn.net/u010177891/article/details/100026511
④esp8266對接貝殼物聯平臺詳解:https://blog.csdn.net/u010177891/article/details/100058124
效果演示
獲取途徑
聲明
-
該固件由本人投入了不少時間和精力進行開發和調試,僅供esp8266愛好者一起學習和交流,嚴禁進行商業和非法使用,出現問題概不負責。
-
該固件開發和測試平臺爲esp8266,Flash大小爲4M。esp8266的SDK固件版本爲2.0。在以下瀏覽器測試通過,Chrome 70.0.3538.102(正式版本)、Internet Explorer 11、Firefox 66.0.5 (32 位)。
硬件
- 可使用ESP8266機智雲開發板。
- 可使用ESP-12F模塊自行搭建。
固件功能
提供的固件有以下功能:
- 可設置10個定時、延時任務、紅外遙控、電量監控等功能。
- 可進行系統設置。可設置設備名稱(默認爲SmartPlug)、esp8266的工作模式、支持OTA進行固件升級、控制設備重啓、控制設備恢復出廠設置。
- 可通過web頁面控制esp8266設備。
- 前後臺通過標準的json格式數據進行交互。
- 支持自定義網頁燒錄,可自定義功能進行二次開發。
- 前後臺數據隔離,網頁數據燒錄在Flash中(文件總的大小不能超過2M)。固件和網頁可單獨升級。
- 支持AP和station模式,station模式下支持smartconfig進行wifi連接。
- 對接雲平臺後支持天貓精靈控制
包含的文件
文件 |
說明 |
./工具/FLASH_DOWNLOAD_TOOLS_V3.6.4 |
Esp8266固件燒錄工具 |
./工具/netassist |
網絡調試助手 |
./工具/sscom |
串口調試助手 |
./工具/WinGZip V1.0.exe |
Gzip壓縮工具 |
./燒錄固件/固件 |
待燒錄的固件 |
./燒錄固件/html |
待燒錄的html頁面 |
./文檔 |
常用的的文檔 |
燒錄固件
- 打開燒錄工具(工具\FLASH_DOWNLOAD_TOOLS_V3.6.4\ESPFlashDownloadTool_v3.6.4.exe).
- 按下圖選擇好固件以及對應的燒錄地址點擊“START”完成固件燒錄。(首次燒錄時先點擊“ERASE”擦除全部FLASH再進行燒錄)
固件 |
燒錄地址 |
說明 |
esp_init_data_default.bin |
0x3fc000 |
初始化其他射頻參數,由樂鑫官⽅方提供。只需燒寫一次。 |
blank.bin |
0x3fe000 |
初始化系統參數區,由樂鑫官⽅方提供。只需燒寫一次。 |
boot_v1.6.bin |
0x00000 |
由樂鑫官⽅方提供。只需燒寫一次。 |
user1.4096.new.6.bin |
0x01000 |
用戶主程序user1.bin,編譯應⽤用程序⽣生成 |
user1.4096.new.6.bin |
0x101000 |
用戶主程序user2.bin,編譯應⽤用程序⽣生成 |
燒錄網頁數據
1,打開串口助手(./工具/sscom)並連接好esp8266。然後給esp8266重新上電。按下按鍵3s-6s等待esp8266藍色指示燈常快速閃爍時鬆開按鍵。esp8266將重啓啓動並進入ap模式。
2,待esp8266重啓完成串口助手有如上信息輸出“set wifi mode AP successed”表示已已進入AP模式。
3,電腦連接esp8266發射的wifi信號,默認wifi名稱爲“SmartPlug”。
4,打開瀏覽器在地址欄輸入“192.168.4.1”進入esp8266的配置頁面。
5,點擊網頁升級中的“選擇文件”,然後選擇“esp6266固件\燒錄固件\html\release”中的壓縮過的網頁數據。
6,重複上一步驟將“esp6266固件\燒錄固件\html\release”中的文件全部選擇好後點擊“上傳”開始燒錄網頁數據。如下圖爲上傳完成後的示意圖。
7,燒錄完頁面後,在瀏覽器在地址欄重新輸入“192.168.4.1”即可進入esp8266的主頁面。
配置esp8266連接wifi
將esp8266配置爲station模式並連接wifi接入互聯網
1,在上一步驟的基礎上選擇“設置”標籤,進入開始配置esp8266。
2,按下圖,將模式設置爲“客戶端”、並填寫好要連接的wifi名稱和密碼。點擊“確定”。然後點擊“重啓”使新配置生效。
3,esp8266重啓完成時串口有如下信息輸出。可看到wifi已設置爲station模式,esp8266分配的ip爲192.168.1.102。
4,同一wifi下在瀏覽器輸入“192.168.1.102”即可進入esp8266首頁。
另外一種方法配置esp8266連接wifi
通過smartconfig方式配置esp8266連接wifi。
1,按下按鍵6s以上等待esp8266藍色指示燈常亮時鬆開按鍵。esp8266將重啓啓動並進入station模式,開始smartconfig配置。串口有如下信息輸出。
2,讓手機連接wifi,並使用手機微信搜索“安信可科技”公衆號,進入公衆號後點擊“WIFI配置”->”開始配置”。輸入wifi的密碼點擊“連接”。等待藍色指示燈停止閃爍變爲常亮,esp8266配網成功。
3,串口打印出以下信息esp8266已接入wifi。IP爲192.168.0.102
使用指南
以station模式爲例,ap模式下需要連接esp8266發出的wifi並且IP使用192.168.4.1
- 頁眉介紹
- “SmartPlug”爲設備名稱可以在“設置”->“名稱”中自定義。在AP模式下該名稱即爲esp8266發出的wifi名稱;在station模式下該名稱即爲設備名稱。
- “開啓”或者“關閉”按鈕可控制esp8266綠色指示燈的狀態。該按鈕狀態和綠色指示燈的狀態保持同步,每分鐘會獲取一次esp8266開關狀態。
- “2020-01-04 23:26:33 星期六”esp8266的時間。esp8266在station模式下啓動時會通過sntp協議從互聯網獲取最新時間;在ap模式下由於esp8266無法聯網所以該時間需要通過瀏覽器訪問esp8266自動將瀏覽器的當前時間同步給esp8266。
- “關於”顯示esp8266的運行時間、固件版本、編譯時間等信息。
- 定時設置
點擊“定時”-->“修改”可修改對應的定時任務。
“名稱”:定時任務的名稱,選擇“對勾”纔會啓用該定時器
“開啓時間”:在該時間點會打開繼電器(即綠色指示燈亮),選擇“對勾”纔會在該時間點開啓繼電器。
“關閉時間”:在該時間點會關閉繼電器(即綠色指示燈滅)。選擇“對勾”纔會在該時間點關閉繼電器。
“關聯延時”:該定時任務執行完成後會自動啓動關聯的延時任務。
“重複”:若週一到週日都沒選擇則該任務只執行一次。
- 延時設置
點擊“延時”-->“修改”可修改對應的延時任務。
“名稱”:延時任務的名稱,選擇“對勾”纔會啓用該延時。
“開啓間隔”&&“關閉間隔”繼電器會開啓(即綠色指示燈亮)和關閉(即綠色指示燈滅)對應的時間。
“關聯延時”:該延時任務執行完成後會自動啓動關聯的延時任務。
“重複次數”:開啓和關閉的循環次數,循環一次重複次數減1,減爲0時延時任務停止,若有關聯其他的延時則啓動關聯的延時
- 紅外控制(需要硬件支持,HS0038接入IO5)
點擊“紅外”-->“修改”可修改對應的紅外配置。
“名稱”:紅外配置的名稱,選擇“對勾”纔會啓用該紅外。
“開啓值”:點擊對應右邊的“重新學習”後立即將遙控器對準紅外接收頭按下要學習的按鍵。該開啓值會顯示爲已學習的紅外鍵值。
“關閉值”:點擊對應右邊的“重新學習”後立即將遙控器對準紅外接收頭按下要學習的按鍵。該關閉值會顯示爲已學習的紅外鍵值。
學習完成後點擊“確定”提交配置。此時按下遙控器對應的按鍵就可以控制esp8266。
- 電量(需要硬件支持,當HLW8032接入esp8266纔會有數據)
點擊“電量”可查看電量等計量信息。
“自動刷新”:設置自動刷新時間間隔。
“電壓”:顯示實時電壓。單位:V
“電流”:顯示實時電流。單位:A
“功率”:顯示實時有效功率。單位:W
“實在功率”:顯示實在功率,電壓*電流所得數據,感性負載時實在功率會大於有效功率。單位:W
“功率因數”:有效功率除以實在功率所得。
“電量”:實時用電量。單位:Wh
“運行時間”:esp8266累計的運行時間,此處的運行時間和菜單欄“關於”中的“運行時間”不同esp8266正常重啓時該時間不清零,而菜單欄裏的運行時間重啓時會清零。單位:小時
“清零數據”:電量和運行時間數據會清零。
“欠壓保護”:勾選右邊的“對勾”時電壓小於該設定電壓插座會關閉。單位:V
“過壓保護”:勾選右邊的“對勾”時電壓大於該設定電壓插座會關閉。單位:V
“過流保護”:勾選右邊的“對勾”時電流大於該設定電流插座會關閉。單位:A
“過載保護”:勾選右邊的“對勾”時功率大於該設定功率插座會關閉。單位:W
“充電保護”:勾選右邊的“對勾”時檢測到功率小於設定的功率時在5分鐘之後將關閉設備。單位:W
- 雲平臺
對接雲平臺可實現設備的遠程控制,目前支持貝殼物聯、阿里雲。注意:只有在station模式下連接到外網時纔會對接成功。
“平臺”:選擇要對接的平臺。目前支持貝殼物聯、阿里雲。但是阿里雲需要專用的app這裏一般選擇“貝殼物聯”,通過對接貝殼物聯後可以通過貝殼物聯小程序遠程控制設備,也可以使用天貓精靈控制esp8266。
“設備名稱”:無需關心 ,對接成功後該名稱會從貝殼物聯自動獲取。
“設備類型”:根據實際情況自定義設置
“設備ID”:必填項。對應貝殼物聯設備ID
“API KEY”:必填項。對應貝殼物聯設備的APIKEY。注意:“設備ID”和“API KEY”必須對應否則會連接貝殼物聯會失敗。
“開關接口”:選填。貝殼物聯設備對應的接口ID,填寫了該接口ID esp8266會定時向esp8266上報開關的狀態。若不填則不會上報狀態。
“溫度接口”:選填。貝殼物聯設備對應的接口ID,填寫了該接口ID esp8266會定時向esp8266上報溫度數據。若不填則不上報。
“溼度接口”:選填。貝殼物聯設備對應的接口ID,填寫了該接口ID esp8266會定時向esp8266上報溼度數據。若不填則不上報。
“電壓接口”:選填。貝殼物聯設備對應的接口ID,填寫了該接口ID esp8266會定時向esp8266上報電壓數據。若不填則不上報。
“電流接口”:選填。貝殼物聯設備對應的接口ID,填寫了該接口ID esp8266會定時向esp8266上報電流數據。若不填則不上報。
“功率接口”:選填。貝殼物聯設備對應的接口ID,填寫了該接口ID esp8266會定時向esp8266上報功率數據。若不填則不上報。
“電量接口”:選填。貝殼物聯設備對應的接口ID,填寫了該接口ID esp8266會定時向esp8266上報電量數據。若不填則不上報。
- 設置
“名稱”:在AP模式下該名稱即爲esp8266發出的wifi名稱;在station模式下該名稱即爲設備名稱。
“模式”:1,客戶端模式:即爲station模式;2,熱點模式:即爲AP模式;3,智能配對:設備下次重啓時會進入station模式並啓動smartconfig需要使用手機重新給esp8266配網。
“WIFI”:在客戶端模式下點擊掃描可設置下次重啓時連接的wifi名稱
“密碼”:連接wifi的密碼
“上電狀態”:關閉:每次上電都關閉繼電器;打開:每次上電都打開繼電器;上次狀態:保持上一次的狀態
“升級”:選擇新固件進行在線升級
“重啓”:重啓esp8266
“重置”:恢復出廠模式。定時、延時、紅外、電量的數據將全部清零,esp8266進入默認的station模式並開始smartconfig配置。
API接口說明
暫無,後續補充。