當(dāng)前位置:首頁 > 物聯(lián)網(wǎng) > IoT設(shè)計(jì)分享
[導(dǎo)讀]大家好,歡迎回到我們的Android Studio for Internet of Things系列的另一部分。在本教程中,我們將繼續(xù)我們的android應(yīng)用程序。我們已經(jīng)開發(fā)了我們的應(yīng)用程序的基礎(chǔ),通過添加一個燈泡的圖像,一個按鈕,和一些功能來建立藍(lán)牙連接。但現(xiàn)在我們要添加一個Wi-Fi功能來控制NodeMCU板的內(nèi)置LED。

大家好,歡迎回到我們的Android Studio for Internet of Things系列的另一部分。在本教程中,我們將繼續(xù)我們的android應(yīng)用程序。我們已經(jīng)開發(fā)了我們的應(yīng)用程序的基礎(chǔ),通過添加一個燈泡的圖像,一個按鈕,和一些功能來建立藍(lán)牙連接。但現(xiàn)在我們要添加一個Wi-Fi功能來控制NodeMCU板的內(nèi)置LED。

我們要建造什么?

讓我們看看我們將在本教程中構(gòu)建什么。在下面的圖片中,你可以發(fā)現(xiàn)我們已經(jīng)添加了一個燈泡、一個按鈕、一個工具欄和藍(lán)牙功能的圖像。

現(xiàn)在讓我們看看下面的圖片。Wi-Fi功能在菜單列表中。用戶將通過點(diǎn)擊“WiFi”被重定向到Wi-Fi活動。如果WiFi已經(jīng)關(guān)閉,那么用戶會彈出一個打開WiFi的窗口,如下圖所示。

當(dāng)用戶的WiFi被打開時,用戶將被重定向到WiFi活動,在那里我們將添加一些輸入部分來獲取IP地址和連接按鈕。你可以看看下面的圖片作為參考。

當(dāng)用戶輸入IP地址后按下按鈕,就會被重定向到主活動頁面,并連接wifi。在下圖中,你可以看到在工具欄部分顯示了一條消息“連接到WiFi”。

到目前為止,我只給了您一個應(yīng)用程序的概述?,F(xiàn)在,讓我們構(gòu)建應(yīng)用程序。在下面的圖片中,你可以看到我們已經(jīng)在之前的教程中討論過的文件夾結(jié)構(gòu)。在本教程中,我們需要創(chuàng)建更多的類、活動和布局。我在下面的圖片中用紅色標(biāo)記了這些文件。

所以我們需要創(chuàng)建一個名為“WifiActivityDevices”的活動。相應(yīng)的布局文件“activity_wifi_devices.xml”文件將使用此活動創(chuàng)建,正如我在上圖中的紅色圓圈中提到的那樣。在我們開始android應(yīng)用程序的編碼部分之前,我們需要在AndroidMenifest.xml文件中添加幾行代碼。我們需要在“構(gòu)建”中添加一個依賴項(xiàng)。gradle”文件。在下面的圖像中,您可以看到我已經(jīng)標(biāo)記了清單文件和構(gòu)建。Gradle文件帶有紅色方塊。

下圖中突出顯示的代碼需要添加到Manifest文件中。這段代碼是為了允許Wifi到應(yīng)用程序。第二個圖像是依賴。需要將突出顯示的代碼添加到構(gòu)建中。gradle文件。在添加依賴項(xiàng)后,你需要點(diǎn)擊右上角的“sync”。

activity_wifi_devices.xml文件

activity_wifi_device.xml文件是WifiActivityDevices.java文件的布局。這里我們需要添加一個EditText來接收來自用戶的輸入。我們需要添加一個按鈕來連接到wifi并重定向到MainActivity文件。

在上面的圖像中,我們有一個EditText,它指示輸入IP地址。下面的代碼可用于在布局中添加EditText。

EditText的代碼:

以上代碼用于EditText。我通過使用“ android: ID =”@+ ID /ip_input"屬性給這個部分指定了一個ID。你可以找到一些高度和寬度屬性,我用它們來給EditText一個維度。“android:hint”用于給用戶一個提示。它將在EditText為空時顯示?,F(xiàn)在,我們需要為Button添加代碼。

按鈕代碼:

代碼的解釋:

按鈕id為“ip_button”,文本為“Connect”。我不打算討論按鈕,因?yàn)槲乙呀?jīng)在前面的教程中討論了按鈕。

WifiActivityDevices.java文件

正如我們之前所討論的WifiActivityDevices.java文件是用于wifi特性的。我們需要在“WifiActivityDevices.java”文件中添加以下代碼。在下面的代碼中,我們有“ipAddress”通過訪問布局文件中的EditText的ID來獲取NodeMCU的IP地址,但是我們還將應(yīng)用一個額外的任務(wù)來檢查輸入文本是否與IP地址的格式匹配?!癐nputFilter”用于應(yīng)用一些模式檢查器來檢查輸入的字符串是否是IP地址。“setFilters”函數(shù)將對輸入IP地址的“ipAddress”應(yīng)用過濾器?!癷pButton”用于通過使用按鈕的ID從布局文件中訪問按鈕。然后我們需要添加一個“setOnClickListener”到“ipButton”。在“onClick()”方法中,你可以找到“intent2”。這用于將用戶重定向到MainActivity.java文件。

MainActivity.java文件

我們需要對MainActivity.java文件做一些修改。您需要在MainActivity.java文件的onCreate()方法之外添加以下代碼。CreateConnectThread2類用于創(chuàng)建一個“線程”?!皉un()”方法用于與我們在“WifiActivityDevices.java”文件中獲得的IP地址建立連接。

下面的“ConnectedThread2”類用于管理createconnconnected線程。我們在“ConnectedThread2”類下有一個send()方法。這個send()方法可以在用戶按下MainActivity布局文件中的按鈕時調(diào)用。在send()方法中,你可以看到我們有一個“url”,它被用作NodeMcu板的地址。我們對這個HTTP連接使用“POST”方法。每當(dāng)用戶點(diǎn)擊按鈕時,按鈕的狀態(tài)就會改變,打開或關(guān)閉led的命令將通過“StringRequest”方法作為字符串?dāng)?shù)據(jù)發(fā)送。

我們使用“Volley”庫來創(chuàng)建HTTP連接。

NodeMCU的代碼

下面的代碼用于NodeMCU。您可以看到我們已經(jīng)包含了ESP8266WebServer、WiFiClient和ESP8266WiFI庫。在這里,我使用ESP8266作為Wifi接入點(diǎn)。它將創(chuàng)建一個以“ESP8266”作為SSID的WiFi網(wǎng)絡(luò)。在setup函數(shù)中,我定義了led的引腳模式(即NodeMCU內(nèi)置led的GPIO 2)。設(shè)置WiFI模式為“WIFI_AP”模式。server.on()用于啟動HTTP服務(wù)器。HTTP_handleRoot()函數(shù)是在setup()函數(shù)之外創(chuàng)建的。HTTP_handleRoot()用于通過使用“ data ”作為參數(shù)從android應(yīng)用程序獲取數(shù)據(jù)。然后使用“command”變量將數(shù)據(jù)存儲為字符串。如果數(shù)據(jù)為“1”,則內(nèi)置LED將打開,否則將關(guān)閉。

希望你喜歡這個項(xiàng)目,并且學(xué)到了一些有用的東西,關(guān)于用android studio創(chuàng)建一個android應(yīng)用程序,使用NodeMCU通過WiFi控制LED。

本文編譯自iotdesignpro

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉