999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

ESP8266在智能家居監控系統中的應用*

2016-11-10 06:54:38范興隆
單片機與嵌入式系統應用 2016年9期
關鍵詞:設置系統設計

范興隆

ESP8266在智能家居監控系統中的應用*

范興隆

(山東華宇工學院,德州253034)

ESP8266是樂鑫公司生產的低功耗WiFi芯片,內置32位CPU,能夠獨立運行,也可以作為從機搭載于其他主機MCU運行,可以廣泛應用于智能家居、工業無線控制、無線傳感器等領域。本文以一套基于WiFi組網的智能家居監控系統設計為例,介紹ESP8266的SDK應用開發。

WiFi;ESP8266;DHT11;E4A

引 言

隨著ZigBee技術、藍牙技術及WiFi技術的不斷成熟與普及,基于各種組網方式的智能家居監控系統越來越多,給人們的生活帶來了極大的方便。其中,WiFi組網以其方便與有線以太網絡整合、組網的成本低等優勢,逐漸受到人們的推崇。目前國內外WiFi芯片生產廠商越來越多,芯片性能越來越好,其中ESP8266就是一款性價比較高的低功耗WiFi芯片。本文介紹了一種基于WiFi組網的家居監控系統,該系統利用功能各異的多個ESP8266模塊組建無線局域網,使用手機端APP對網絡中各個模塊的工作進行監控,不僅可以實現燈具、窗簾等的無線開關,還可以對室內環境溫度、濕度及空氣成分等指標進行檢測。通過對該系統的介紹,重點講述ESP8266的SDK開發過程。

1 總體設計

WiFi組網框圖如圖1所示,本系統采用BSS(Basic Service Set,基本服務集)模式進行WiFi組網,建立1個 soft AP(無線接入點,是一個無線網絡的中心節點)和多個與其關聯的station(無線終端是一個無線網絡的終端),手機可以以station身份連接soft AP。系統中soft AP模塊、station模塊均基于ESP8266進行搭建,各station模塊實現不同的功能,如溫濕度檢測、燈具開關等,soft AP模塊收集各station模塊的數據,手機端利用APP對soft AP模塊進行訪問,查詢相關狀態數據并進行控制指令下達。

圖1 WiFi組網框圖

2 硬件設計

2.1ESP8266簡介

ESP8266是一個完整且自成體系的WiFi網絡解決方案,能夠獨立運行,也可以作為從機搭載于其他主機MCU運行。ESP8266在搭載應用并作為設備中唯一的應用處理器時,能夠直接從外接閃存中啟動。內置的高速緩沖存儲器有利于提高系統性能,并減少內存需求。另外一種情況是,ESP8266負責無線上網接入承擔WiFi適配器的任務,此時可以將其添加到任何基于微控制器的設計中。ESP8266高度片內集成,包括天線開關balun、電源管理轉換器,因此僅需極少的外部電路,且包括前端模組在內的整個解決方案在設計時將所占PCB空間降到最小。

2.2ESP8266模塊電路設計

ESP8266高度集成的特點使得其外圍設計非常簡單容易。樂鑫官方提供的基本模組電路如圖2所示。模組除主芯片外只需要1個無源晶振、1個SPI Flash及若干電阻、電容、電感。射頻部分實現全內部集成,并且內部帶有自動校準功能。本設計選用了深圳安信可公司設計的ESP-12模塊,該模塊采納了圖2所示的電路結構,采用PCB天線,經過匹配設計,空曠環境下傳輸距離可達到400 m左右,所有I/O口引出,帶金屬屏蔽殼,通過FCC&CE認證。

圖2 ESP8266模組電路圖

圖3 DHT11接線圖

本設計中soft AP模塊無其他外擴電路,燈具開關station模塊、窗簾開關station模塊需外接繼電器實現被控對象控制,溫濕度檢測station模塊需外接DHT11溫濕度傳感器。圖3為DHT11的接線圖,DATA為數據總結引腳,采用單總線數據格式。

DHT11數字溫濕度傳感器是一款含有已校準數字信號輸出的溫濕度復合傳感器,它應用專用的數字模塊采集技術和溫濕度傳感技術,確保產品具有極高的可靠性與卓越的長期穩定性。傳感器包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連接。

3 軟件設計

3.1ESP8266SDK軟件包簡介

基于ESP8266物聯網平臺的Io T SDK為用戶提供了一個簡單、快速、高效開發物聯網產品的軟件平臺。SDK為用戶提供了一套數據接收、發送的函數接口,用戶不必關心底層網絡,如WiFi、TCP/IP等的具體實現,只需要專注于物聯網上層應用的開發,利用相應接口完成網絡數據的收發即可。

ESP8266物聯網平臺的所有網絡功能均在庫中實現,對用戶不透明。用戶應用的初始化功能可以在user_ main.c中實現。void user_init(void)是上層程序的入口函數,給用戶提供一個初始化接口,用戶可在該函數內增加硬件初始化、網絡參數設置、定時器初始化等功能。為方便二次開發,SDK提供了較為豐富的API接口,接口具體信息可參考ESP8266__SDK__Programming Guide。

3.2ESP8266 lDE簡介

ESP8266 IDE為安信可公司開發的ESP8266模塊編譯平臺,具有免安裝、純綠色、無需虛擬機、Windows系統直接運行、IDE界面、編輯和編譯一體化、Eclipse編譯后直接生成固件功能。

3.3softAP模塊程序設計

該系統中存在多個station模塊,在系統正常工作時,需soft AP模塊同時與多個station模塊進行通信,為保證信息的可靠傳輸,網絡通信采取TCP/IP協議。soft AP模塊作為系統的中心節點,設置為TCP服務器,采用DHCP方式,為各station模塊動態分配IP地址,各模塊以客戶端的身份與其建立連接。在連接建立完成后,soft AP模塊負責監聽各模塊的工作狀態,同時收集相關模塊發送來的數據信息,并進行分類存儲。

圖4 softAP程序入口函數工作流程圖

soft AP的程序入口函數user_init()工作流程圖如圖4所示。系統初始化主要完成μs級定時器重新初始化、串口波特率設置、GPIO引腳功能選擇;μs級定時器主要為實現循環工作任務而設置;WiFi工作模式設置為soft-AP;soft-AP接口配置主要包括ssid設置、password設置;在WiFi event處理函數中進行WiFi工作狀態查詢與串口輸出。

下為user_init()主要程序

指令及注釋:

system_timer_reinit();

//重新初始化定時器,當需要使用μs級定時器時調用

uart_init(115200,115200);

//雙UART模式,兩個UART波特率初始化

PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO0_U,FUNC_ GPIO0);//引腳功能選擇

os_timer_setfn(&connect_timer1,timer1,NULL);

//設置μs定時器回調函數

os_timer_arm_us(&connect_timer1,1000,1);

//使能μs級定時器

wifi_set_opmode(0x02);//設置WiFi工作模式soft AP

wifi_softap_get_config(&config);

os_memcpy(config.ssid,"ESP8226",strlen("ESP8226"));

//設置ssid

os_memcpy(config.password,"12345678",strlen("12345678"));

//設置password

config.ssid_len=strlen("ESP8226");

wifi_softap_set_config(&config);

//設置WiFi soft AP接口配置,并保存到Flash

wifi_set_event_handler_cb(wifi_handle_event_cb);

//注冊WiFi event處理回調

WiFi event處理函數主要完成station連接、DHCP配置、TCP連接及無線數據收發等任務,其工作流程如圖5所示。在WiFi event處理過程中,首先確定是否有station連接,若連接成功進而判斷DHCP配置是否完成,在前述兩個條件均滿足的情況下,進行TCP網絡連接參數espconn設置,并注冊TCP網絡連接回調函數及建立TCP偵聽。在接收到建立連接的TCP客戶端數據后,在連接回調函數中首先進行數據類型判別,然后根據不同類型數據進行相應處理,主要實現信息、狀態類數據的存儲和控制指令的發送。

圖5 WiFi event處理函數工作流程圖

以下為建立TCP連接的程序指令及注釋:

user_tcp_conn.type=ESPCONN_TCP; //選擇TCP連接方式

user_tcp_conn.state=ESPCONN_NONE; //狀態

user_tcp_conn.proto.tcp=(esp_tcp*)os_zalloc(sizeof(esp_ tcp));//分配內存空間

os_memcpy(user_tcp_conn.proto.tcp->local_ip,local_ip,4);

//存放本地IP

os_memcpy(user_tcp_conn.proto.tcp->remote_ip,remote_ip,4);//存放遠端IP

user_tcp_conn.proto.tcp->local_port=8080;//本地端口設置

user_tcp_conn.proto.tcp->remote_port=remote_port;//遠端端口設置

espconn_regist_connectcb(&user_tcp_conn,user_tcp_connect_cb);

//注冊連接成功的回調函數

espconn_regist_reconcb(&user_tcp_conn,user_tcp_recon_cb);

//注冊連接失敗的回調函數

espconn_accept(&user_tcp_conn);//創建TCP server,建立偵聽

espconn_regist_time(&user_tcp_conn,60,0);

//設置TCP server連接超時時間

3.4station模塊程序設計

station模塊作為系統的終端節點,承擔環境信息監測、負載控制及與soft AP模塊進行通信等任務,在網絡通信中設置為TCP客戶端。

圖6 station程序入口函數工作流程圖

各station模塊的user_init()函數程序工作流程如圖6所示。系統初始化、μs級定時器設置與soft AP模塊的設置相同,WiFi工作模式設置為station,下面的工作應為掃描獲取可連接的AP信息,但該功能的接口函數需在系統初始化完成回調函數中調用。因此,user_init()函數的最后一步為注冊系統初始化完成的回調函數。

wifi_set_opmode(0x01);//設置WiFi工作模式station

system_init_done_cb(to_scan);

//在user_init中調用,注冊系統初始化完成的回調函數

void to_scan(void){wifi_station_scan(NULL,scan_done);}

//掃描獲取所有可用的AP信息,并接入指定soft AP

s

can_done()為wifi_station_scan的回調函數,在該函數中需列出掃描到的AP信息,然后根據soft AP模塊的ssid、password設置station接口配置參數,并接入指定AP。以下為scan_done()函數中的主要程序指令:os_memcpy(&stationConf.ssid,SSID,32);os_memcpy(&stationConf.password,PASS,64);wifi_station_set_config_current(&stationConf);

//設置station接口的配置參數

wifi_station_connect();//station接口連接AP

在函數wifi_station_connect()執行之后,需延時2 s左右查詢station接口連接AP的狀態,只有station成功連接到指定AP,同時獲取了AP分配的IP地址,方可進行TCP網絡配置及連接。

status=wifi_station_get_connect_status();

//查詢station接口連接AP的狀態

if(status==STATION_GOT_IP){

struct ip_info info;//查詢IP地址的結構體

wifi_get_ip_info(STATION_IF,&info);

station_init((struct ip_addr*)remote_ip,&info.ip,8080);

//獲取IP、端口號,調用網絡連接初始化函數

return;

station_init()為網絡連接初始化函數,主要進行網絡連接參數espconn設置,注冊TCP網絡連接回調函數及完成與TCP服務器的連接。TCP網絡連接成功后,接收的服務器數據在網絡連接回調函數中進行處理,實現station模塊的相應功能。

3.5DHT11數據采集

DHT11模塊的DATA端口用于與ESP8266模塊之間的通信和同步,采用單總線數據格式,一次通信時間為4 ms左右,數據分小數部分和整數部分共40位。ESP8266模塊發送一次開始信號后,DHT11從低功耗模式轉換到高速模式,等待主機開始信號結束后,DHT11發送響應信號,送出40位的數據,并觸發一次信號采集。ESP8266模塊可選擇讀取部分數據,系統設計100 ms讀取一次DHT11數據。圖7為DHT11的通信時序。

圖7 DHT11的通信時序

需要注意的是,ESP8266不帶操作系統,由于是單線程,任何事件都不能長期占用CPU(一般不得超過500 ms),如果一個事件占用CPU不退出,將導致看門狗的喂狗函數無法執行,系統重啟。因此,在ESP8266周期性的查詢功能最好使用定時器,如需在定時器的執行函數中調用while、for等函數進行延時或循環操作,占用時間請勿超過10 ms,這也是在soft AP模塊中采用μs定時器實現循環工作任務的原因。

3.6無線通信協議制定

本系統station模塊包含傳感器模塊、執行模塊及手機終端設備等多種類型,既要實現傳感器數據的獲取,也要實現控制執行器,同時還要與手機終端進行數據交換。由于station模塊及設備種類較多且為了利于擴展同種類的設備,需要相應的通信協議進行規范。協議格式如表1所列,模塊類型及數據格式對應關系如表2所列。

且軟件設計時可以淡化底層硬件,便于擴展維護。采用無線串口通信可以滿足如車輛定位、液位測量、工業控制多種測距場合。本系統硬件成本低、人機界面直觀、測量精度高,具有較高的推廣使用價值。

[1]蘭羽.具有溫度補償功能的超聲波測距系統設計[J].電子測量技術.2013,36(2):85-87.

[2]趙海鳴,卜英勇,王紀嬋,等.一種高精度超聲波測距系統的研制[J].礦業研究與開發,2006,26(3):62-65.

[3]張攀峰,王玉萍,張健,等.帶有溫度補償的超聲波測距儀的設計[J].計算機測量與控制,2012,20(6):1717-1732.

[4]何凡,沈諒平,王浩.基于溫度補償的超聲測距系統設計[J].物聯網技術,2016(2):11-16.

[5]胡延蘇,高昂.超聲波測距誤差分析及校正研究[J].計算機測量與控制,2015,23(8):2820-2823.

[6]李光明,孫英爽,黨曉娟.基于Lab VIEW和Arduino的遠程監控系統設計與實現[J].計算機測量與控制,2015,23(10):3522-3528.

[7]劉衛國,王紅彬.基于nRF24L01+與Arduino的超聲波測距系統設計[J].電子設計工程,2015,23(22):150-152.

[8]沈金鑫.Arduino與Lab VIEW開發實戰[M].北京:機械工業出版社,2014:123-127.

[9]鄒楊,石紅瑞.基于Lab VIEW的Tripod機器人視覺處理和定位研究[J].機電工程,2016,33(4):448-452.

[10]陶明超,何璐璐,侯佩臣,等.基于Lab VIEW的顯微鏡自動控制設計[J].計算機測量與控制,2016,24(1):102-104.

朱志強(碩士),研究方向為電子通信及嵌入式系統。

表1 協議格式

表2 模塊類型及數據格式對應關系

圖8 APP用戶界面

4 手機端軟件設計

本監控系統中手機是非常重要的station設備,要實現與soft AP模塊的連接,并查詢soft AP模塊中存儲的數據,還要將數據顯示在手機上,以便用戶了解系統工作情況,同時根據用戶操作發送控制指令。為實現手機端的功能,采用易安卓軟件設計了一個簡單的手機APP,可以運行在安卓系統的移動終端上。圖8為APP用戶界面,使用時首先讓手機WiFi連接soft AP模塊,然后啟動APP,點擊連接按鍵,當如圖8所示顯示“連接成功!”時,手機即可實現系統運行的監控。

結 語

通過以上系統設計介紹,可以簡單了解ESP8266 SDK開發的流程,不難看出ESP8266除了作為WiFi透傳模塊使用外,獨立運行也具有較強的功能,可以實現系統的低功耗控制,并且通過連接無線路由器,可以實現物聯網系統的云端訪問與控制。因此,該芯片將在移動設備開發、可穿戴電子產品設計及物聯網應用中發揮越來越重要的作用。

參考文獻

[1]Espressif Systems.ESP8266 SDK編程手冊V1.3.0,2015.

[2]Espressif Systems.ESP8266 SDK User Manual V1.3.0,2015.

[3]易安卓開發公司.易安卓使用指南,2015.

[4]雁凌電子.DHT11溫濕度模塊使用說明[EB/OL].[2016-04-22].http://ylelectronic.taobao.com.

[5]李菲.智能家居技術淺談[J].科技致富向導,2015(5):180.

[6]梁永恩,萬世明.基于S3C6410的智能家居控制系統的設計[J].計算機與數字工程,2014(6):11041107.

范興?。ㄖv師),研究方向為自動檢測與控制。

(責任編輯:楊迪娜 收稿日期:2016-04-22)

Application of ESP8266 in lntelligent Home Monitoring System

Fan Xinglong
(Shandong Huayu University of Technology,Dezhou 253034,China)

The ESP8266 is produced by ESPRESSIF System,which is low-power consumption Wi-Fi chip,and integrates 32-bit MCU.It can run independently,and also can be used as a slave of the other host MCU.It can be widely used in smart home,industrial wireless control,wireless sensors and other fields.In this paper,taking the smart home monitoring system based on WiFi network as an example,the ESP8266 software development is introduced.

WiFi;ESP8266;DHT11;E4A

TN92

A

??楊迪娜

2016-05-03)

*本文得到山東省高等學校青年骨干教師國內訪問學者項目經費資助。

猜你喜歡
設置系統設計
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
瞞天過?!律O計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
主站蜘蛛池模板: 国产精品蜜臀| 日本一区二区三区精品国产| 好久久免费视频高清| 国产精品私拍在线爆乳| 亚卅精品无码久久毛片乌克兰| 久久久久九九精品影院| 国产亚洲成AⅤ人片在线观看| 欧美性猛交一区二区三区| 九月婷婷亚洲综合在线| 呦女精品网站| 草逼视频国产| 久久久久亚洲AV成人人电影软件| 亚洲精品无码AV电影在线播放| 91日本在线观看亚洲精品| 最新痴汉在线无码AV| 久久中文字幕2021精品| 97视频在线观看免费视频| 99视频精品全国免费品| 国产视频久久久久| 欧美国产在线一区| 制服丝袜无码每日更新| 在线五月婷婷| 天堂亚洲网| 99精品视频九九精品| 免费高清毛片| 99热这里只有精品在线观看| 亚洲色图综合在线| 高清视频一区| 黄色片中文字幕| 伊人天堂网| 久久中文无码精品| 免费看的一级毛片| 高清欧美性猛交XXXX黑人猛交| 久久久久久国产精品mv| 五月婷婷伊人网| 一级毛片网| 999国内精品视频免费| 真人免费一级毛片一区二区| 激情综合网址| 国产浮力第一页永久地址| 无码精品国产dvd在线观看9久| 欧美区国产区| 狼友视频国产精品首页| 久久国产精品夜色| 三上悠亚一区二区| 啪啪啪亚洲无码| 在线欧美国产| 免费一级毛片在线播放傲雪网| 成人免费一级片| 韩日免费小视频| 青青青国产精品国产精品美女| 国产精选自拍| 国产成在线观看免费视频| 特级毛片8级毛片免费观看| 亚洲成人在线免费观看| 欧类av怡春院| 欧美三級片黃色三級片黃色1| 精品中文字幕一区在线| 国产91在线|日本| 国产成人精品高清在线| 爽爽影院十八禁在线观看| 国产你懂得| 亚洲日韩精品无码专区| 内射人妻无套中出无码| 亚洲无码37.| 亚洲人成网站色7799在线播放| 亚洲精品片911| 日本高清在线看免费观看| 91 九色视频丝袜| 欧美国产视频| 国产高清在线丝袜精品一区| 国产丝袜精品| 有专无码视频| 九九香蕉视频| 国产高清在线观看| 久久永久精品免费视频| 国产99精品久久| 国产成人精品亚洲77美色| 伊人成色综合网| 午夜综合网| 99尹人香蕉国产免费天天拍| 人妻丰满熟妇AV无码区|