久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 手機與無線通信 > 設計應用 > 用手機通過互聯網實現遠程控制

用手機通過互聯網實現遠程控制

作者: 時間:2026-05-15 來源: 收藏

本文介紹一種通過安卓 ,借助設備(開關狀態) 的方案。前提是 已接入無線路由器,實現全球任意地點訪問遠程設備。典型應用包括:花園灑水裝置、空調開關、監控攝像頭啟停等。

方案中, 通過無線路由器接入,其一個輸入 / 輸出引腳(13 號引腳)經接口連接受控設備。本文以串聯 210Ω 電阻的 LED 燈為例,將其接入 13 號引腳(見圖 1),通過安卓控制 LED 亮滅。需注意:ESP32 為 3.3V 電平器件,信號為 3.3V 邏輯電平。

所需元器件

  1. ESP32 開發板:1 塊(2.4GHz 雙模 Wi-Fi + 藍牙,雙核,配 USB 線)

  2. LED 燈:1 個

  3. 210Ω 電阻:1 個

接線示意圖

8b28ddbe-a9e7-4271-96a1-ff31f206b656.png

(圖 1:電路接線圖)

  • ESP32 的 GPIO13 引腳 → 串聯 210Ω 電阻 → LED 正極

  • LED 負極 → GND(接地)

ESP32 說明

ESP32 采用 3.3V 邏輯電平。正常工作時,Vin 引腳可接入 5V~12V 穩壓電源(優先選 5V,減少板載穩壓器功耗);程序燒錄時,需通過 USB 線連接電腦,嚴禁同時接入兩種電源。簡易供電方案:使用帶 USB 接口的充電寶供電。

ESP32 開發環境搭建

  1. 用 USB 線將 ESP32 連接至電腦(Windows 系統),進入設備管理器→其他設備,找到 “CP2102 USB 轉串口控制器”,右鍵選擇 “更新驅動程序”,按提示完成安裝;若自動更新失敗,需手動下載驅動安裝。安裝后,設備管理器會顯示 ESP32 對應的 COM 端口號,記錄該端口。

  2. 打開 Arduino IDE,進入工具→開發板管理器,安裝 “Espressif Systems 發布的 ESP32” 插件;

  3. 進入文件→首選項,在 “附加開發板管理器網址” 欄填入 ESP32 官方鏈接,完成環境配置。

ESP32 程序代碼

本方案中,ESP32 作為服務器端,作為客戶端連接;ESP32 工作在 STA 模式(站點模式),需配置靜態 IP 地址。操作步驟:查詢路由器下所有設備 IP,選取未占用 IP(修改最后一位)作為 ESP32 服務器 IP;端口號選擇 32767~65535 之間的未占用端口。

連接 ESP32 至電腦,打開 Arduino IDE,選擇對應 ESP32 開發板型號與 COM 端口,輸入以下代碼,編譯并上傳(上傳失敗時可按住開發板 BOOT 鍵重試;Arduino 程序文件需放在同名文件夾內):

cpp

運行

// ESP32工作在STA模式,配置靜態IP,需設置端口轉發#include <WiFi.h>#define EspPortServ xxxxx  // 填寫自定義端口號// 替換為你的路由器Wi-Fi賬號密碼const char* ssid = ".........." ;const char* password = "........." ;WiFiServer server(EspPortServ);  // STA模式服務器WiFiClient client;// ESP32靜態IP配置(四段用逗號分隔,非點號)IPAddress localIP(xxx, xxx, xxx, xxx);IPAddress gateway(xxx, xxx, xxx, xxx);IPAddress subnet(xxx, xxx, xxx, xxx);char ch;int LED = 13;  // LED接GPIO13void setup() {

 pinMode(LED, OUTPUT);
 Serial.begin(115200);

 // 配置靜態IP
 if (!WiFi.config(localIP, gateway, subnet)) {
   Serial.println("STA模式靜態IP配置失敗");
 }

 // 連接Wi-Fi
 Serial.println("ESP32已設為服務器端!");
 Serial.print("正在連接Wi-Fi:");
 Serial.println(ssid);
 WiFi.begin(ssid, password);

 while (WiFi.status() != WL_CONNECTED) {
   delay(500);
   Serial.print(".");
 }

 // 輸出服務器IP
 Serial.println("");
 Serial.println("Wi-Fi連接成功");
 Serial.print("服務器IP地址:");
 Serial.println(WiFi.localIP());
 server.begin();}void loop() {
 // 等待客戶端連接
 client = server.available();
 if (client) {
   while (client.connected()) {
     if (client.available()) {
       ch = client.read();
       Serial.write(ch);  // 串口監視器打印數據

       // 指令處理
       switch (ch) {
         case '1':
           digitalWrite(LED, HIGH);
           client.print("ON");
           break;
         case '0':
           digitalWrite(LED, LOW);
           client.print("OFF");
           break;
       }
     }
   }
 }
 delay(500);}

安卓手機 APP 開發

采用MIT App Inventor 平臺開發 APP,步驟如下:

  1. 注冊谷歌賬號,登錄平臺:https://login.appinventor.mit.edu/login

  2. 關閉歡迎界面,點擊新建項目,命名為 “Remote_Control()”;

  3. 界面設計(左側為組件面板、中間為預覽區、右側為組件列表與屬性欄):

    • 標題設置:選中 “Screen1”,屬性欄修改標題為 “”;

    • 布局 1:拖入水平布局(HorizontalArrangement),屬性設為水平居中、垂直居中、高度 10%、寬度鋪滿;內部拖入兩個按鈕:ON 按鈕(btn_on)、OFF 按鈕(btn_off),中間用空白標簽占位;

    • 布局 2:拖入水平布局,內部添加狀態標簽(lbl_status),初始文字為 “未連接”;

    • 布局 3:拖入水平布局,添加公網 IP 標簽、IP 輸入框(txt_public_ip)、端口標簽、端口輸入框(txt_serv_port);

    • 布局 4:拖入水平布局,添加保存按鈕(btn_save)、關閉按鈕(btn_close)、連接按鈕(btn_connect);

    • 非可視組件:拖入本地數據庫(TinyDB)、導入擴展組件ClientSocketAI2.aix(網絡通信)、com.puravidaapps.TaifunTools.aix(屏幕常亮)。

代碼邏輯編寫(積木模式)

點擊界面頂部Blocks(積木),通過拖拽組件積木實現邏輯:

  1. 全局變量定義:創建字符串變量public_ip(存儲公網 IP)、數值變量serv_port(存儲端口號);

  2. 初始化加載:APP 啟動時,從 TinyDB 讀取保存的 IP 與端口,填入對應輸入框,并保持屏幕常亮;

  3. 保存功能:點擊 “保存” 按鈕,將輸入框內的 IP 與端口存入 TinyDB;

  4. 連接功能:點擊 “連接” 按鈕,配置客戶端 IP 與端口,發起網絡連接;連接成功狀態標簽顯示 “已連接”,失敗顯示 “未連接”;

  5. 控制功能:點擊 “ON” 按鈕發送指令 “1”,點擊 “OFF” 按鈕發送指令 “0”;

  6. 數據接收:接收 ESP32 返回的 “ON/OFF” 狀態,更新狀態標簽;

  7. 關閉 APP:點擊 “關閉” 按鈕,退出應用。


安卓手機安裝 APP

  1. 手機應用商店下載MIT AI2 Companion;

  2. 電腦端 App Inventor 界面,點擊Build→安卓應用(.apk),編譯生成二維碼;

  3. 手機打開 MIT AI2 Companion,掃描二維碼,按提示完成 APP 安裝;

  4. 打開 APP,輸入路由器公網 IP(瀏覽器訪問whatismyip.com查詢)、ESP32 端口號,點擊 “保存”→“連接”,連接成功后即可控制 LED 亮滅。

路由器端口轉發配置

公網 IP 為路由器 IP,需配置端口轉發,將外網請求轉發至 ESP32:

  1. 瀏覽器輸入路由器管理地址(如 192.168.1.1),輸入賬號密碼登錄;

  2. 進入應用→高級 NAT→虛擬服務器→添加:自定義服務名,填寫 ESP32 靜態 IP,啟用端口轉發,外部端口與服務器端口均填 ESP32 端口號,協議選 TCP,保存設置;

  3. 開啟DMZ 主機:填寫 ESP32 靜態 IP,保存生效。

測試與說明

  1. 給 ESP32 通電(充電寶即可),手機 APP 輸入公網 IP 與端口,連接成功后,點擊 ON/OFF 按鈕,即可遠程控制 LED;

  2. 注意事項:路由器重啟后公網 IP 會變更,需重新查詢填寫;建議辦理靜態公網 IP避免頻繁修改;需定期檢測網絡連接狀態(本文為簡化流程未添加);

  3. 安全提示:妥善保管公網 IP 與端口號,避免設備被非法訪問。



評論


相關推薦

技術專區

關閉