綜合開發-手機APP遠程控制PLC1500柱燈的亮滅

要通過 ??Unity3D?? 開發的手機 App 控制 ??電氣柜上面的柱燈,需要WIFI模塊作為橋梁,按照以下步驟實現:


??1. 硬件準備(硬件部分)??

??所需材料??

  • ??ESP32開發板??(如ESP32-WROOM-32)
  • ENC28J60模塊
  • 西門子1511-T
  • 柱燈(電氣柜)
  • ??杜邦線?,網線?
  • ??USB數據線??(供電+燒錄程序)

??ESP32 代碼(Arduino IDE)??

#include <WiFi.h>
#include <WiFiClient.h>
#include <WebServer.h>
#include <UIPEthernet.h> const char* ssid = "abc";
const char* password = "123456abc";WebServer server(80);
bool ledState = false;// ENC28J60 配置
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192, 168, 0, 177);  // ENC28J60 靜態 IP
EthernetClient ethClient;const char* tcpServer = "192.168.0.150"; // 目標 TCP 服務器 IP
uint16_t tcpPort = 2000;                // 目標 TCP 端口void setup() {Serial.begin(115200);pinMode(2, OUTPUT);// 初始化 WiFiWiFi.begin(ssid, password);while (WiFi.status() != WL_CONNECTED) {delay(500);Serial.print(".");}Serial.println("\nWiFi connected");Serial.println("IP address: ");Serial.println(WiFi.localIP());// 初始化 ENC28J60Serial.println("\nInitializing ENC28J60...");Ethernet.begin(mac, ip);Serial.print("ENC28J60 IP: ");Serial.println(Ethernet.localIP());// HTTP 服務器路由server.on("/", HTTP_GET, []() {server.send(200, "text/plain", "ESP32 LED Control");});server.on("/on", HTTP_GET, []() {digitalWrite(2, HIGH);ledState = true;sendTcpData("1");server.send(200, "text/plain", "LED ON");});server.on("/off", HTTP_GET, []() {digitalWrite(2, LOW);ledState = false;sendTcpData("0");server.send(200, "text/plain", "LED OFF");});server.begin();Serial.println("HTTP server started");
}void loop() {server.handleClient();Ethernet.maintain(); // 維持 ENC28J60 連接
}// 通過 ENC28J60 發送 TCP 數據
void sendTcpData(const char* data) {if (ethClient.connect(tcpServer, tcpPort)) {ethClient.println(data);Serial.print("Sent: ");Serial.println(data);ethClient.stop();} else {Serial.println("TCP connection failed");}
}

??燒錄步驟??

  1. 用 ??Arduino IDE?? 或 ??PlatformIO?? 燒錄代碼到ESP32。
  2. 打開串口監視器(波特率115200),查看ESP32的IP地址(這里是192.168.0.177)。

??2. Unity3D 手機App開發??

??Unity 設置??

  1. ??新建 Unity 項目??(選擇 ??Mobile 2D/3D?? 模板)。
  2. ??UI 設計??:
    • 創建兩個按鈕:ON?和?OFF
    • 添加?Text?顯示狀態。

??C# 腳本(控制ESP32)??

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Networking;
using System.Collections;public class ESP32Controller : MonoBehaviour
{public string esp32IP = "192.168.121.190"; public Button onButton;public Button offButton;public Text statusText;void Start(){onButton.onClick.AddListener(TurnOnLED);offButton.onClick.AddListener(TurnOffLED);}void TurnOnLED(){StartCoroutine(SendRequest("http://" + esp32IP + "/on"));statusText.text = "LED ON";}void TurnOffLED(){StartCoroutine(SendRequest("http://" + esp32IP + "/off"));statusText.text = "LED OFF";}IEnumerator SendRequest(string url){using (UnityWebRequest request = UnityWebRequest.Get(url)){yield return request.SendWebRequest();if (request.result == UnityWebRequest.Result.Success){Debug.Log("Response: " + request.downloadHandler.text);}else{Debug.LogError("Error: " + request.error);}}}
}

??Unity 打包到手機??

  1. ??File → Build Settings → Android/iOS??。
  2. 連接手機,選擇 ??Build & Run??。

??3. 測試流程??

  1. ??確保手機和ESP32連接同一WiFi??。
  2. 在手機上運行Unity App,點擊按鈕控制LED
  3. 打開博圖調用TCP功能塊,根據信號值實現柱燈狀態切換。

?

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/81131.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/81131.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/81131.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

五款提效工具

1. 億可達 核心功能&#xff1a;通過“觸發器動作”模式&#xff0c;實現任務自動執行&#xff08;如郵件轉發、評論回復、數據同步&#xff09;。 適用場景&#xff1a;自動同步Notion項目到滴答清單生成待辦事項 優勢&#xff1a;節省重復操作時間&#xff0c;減少人為錯誤&a…

Docker化HBase排錯實錄:從Master hflush啟動失敗到Snappy算法未支持解決

前言 在容器化時代&#xff0c;使用 Docker 部署像 HBase 這樣復雜的分布式系統也比較方便。社區也提供了許多方便的 HBase Docker 鏡像&#xff0c;沒有找到官方的 apache的&#xff0c;但有包含許多大數據工具的 harisekhon/hbase 或用于學習目的的 bigdatauniversity/hbase…

windows遠程服務器數據庫的搭建和遠程訪問(Mysql忘記密碼通過Navicat連接記錄解密密碼)

服務器數據庫的搭建和遠程訪問 mysql數據庫安裝&#xff08;詳細&#xff09; window安裝mysql詳細流程 路程&#xff1a;重設MySQL5密碼&#xff0c;發現遠程服務器原本有一個MySQL5&#xff0c;嘗試在服務器本地建立連接被拒絕&#xff0c;因為不知道密碼。 &#xff08;1…

每日c/c++題 備戰藍橋杯(P1093 [NOIP 2007 普及組] 獎學金)

洛谷P1093 [NOIP 2007 普及組] 獎學金 詳解題解 題目背景與要求 題目鏈接&#xff1a;P1093 獎學金 核心任務&#xff1a;根據學生三科總分評選前5名獎學金獲得者&#xff0c;需按特定規則排序輸出。 排序規則&#xff08;按優先級從高到低&#xff09;&#xff1a; 總分降…

openEuler 22.03 安裝 Nginx,支持離線安裝

目錄 一、環境檢查1.1 必要環境檢查1.2 在線安裝&#xff08;有網絡&#xff09;1.3 離線安裝&#xff08;無網絡&#xff09; 二、下載Nginx2.1 在線下載2.2 離線下載 三、安裝Nginx四、開機自啟服務五、開放防火墻端口六、常用命令 一、環境檢查 1.1 必要環境檢查 # 查看 g…

基于深度學習的圖像壓縮技術(二)

接上篇&#xff1a;基于深度學習的圖像壓縮技術&#xff08;一&#xff09;-CSDN博客 3 基于生成對抗神經網絡的圖像壓縮技術 生成對抗網絡是一種先進的無監督學習算法&#xff0c;由Goodfellow等人在2014 年首次提出&#xff0c;其核心思想源于博弈論。 生成對抗網絡在圖像壓…

TCP和UDP的數據傳輸+區別

目錄 一、數據傳輸過程 1.1 TCP字節流服務圖 1.2 UDP數據報服務圖 二、tcp與udp的區別 1.連接方式 2.可靠性 3.傳輸效率 4.有序性 5.流量控制和擁塞控制 6.應用場景 7.首部長度 三、tcp與udp能不能使用同一個端口號&#xff1f; 四、同一個協議&#xf…

基于ssm的校園舊書交易交換平臺(源碼+文檔)

項目簡介 校園舊書交易交換平臺的主要使用者分為&#xff1a; 前臺功能&#xff1a;用戶進入系統可以對首頁、書籍信息、校園公告、個人中心、后臺管理等功能進行操作&#xff1b; 后臺主要是管理員&#xff0c;管理員功能包括主頁、個人中心、學生管理、發布人管理、書籍分類…

虛假安全補丁攻擊WooCommerce管理員以劫持網站

一場大規模釣魚攻擊正針對WooCommerce用戶&#xff0c;通過偽造安全警報誘使他們下載所謂的"關鍵補丁"&#xff0c;實則為植入WordPress后門的惡意程序。 惡意插件植入 根據Patchstack研究人員發現&#xff0c;上當受騙的用戶在下載更新時&#xff0c;實際上安裝的…

《冰雪傳奇點卡版》:第二大陸介紹!

一、第二大陸&#xff1a;高階資源與實力驗證的核心戰場 1. 準入條件與地圖分布 進入門檻&#xff1a; 基礎要求&#xff1a;角色需達到四轉&#xff08;需消耗50萬元寶完成轉生任務&#xff09;&#xff0c;部分地圖需額外滿足神魔點數&#xff08;如黑暗之森需神魔全2&#…

信創系統圖形界面開發指南:技術選擇與實踐詳解

信創系統圖形界面開發指南&#xff1a;技術選擇與實踐詳解 &#x1f9d1; 博主簡介&#xff1a;CSDN博客專家、CSDN平臺優質創作者&#xff0c;高級開發工程師&#xff0c;數學專業&#xff0c;10年以上C/C, C#, Java等多種編程語言開發經驗&#xff0c;擁有高級工程師證書&…

【人臉去遮擋前沿】三階段級聯引導學習如何突破真實場景遮擋難題?

一、現實痛點:當人臉被遮擋,AI “認臉” 有多難? 你是否遇到過這樣的場景? 中考體育測試:2025 年天津泰達街中考考場要求考生 “臉部無遮擋” 才能通過人臉識別入場,戴口罩、帽子的學生需現場調整發型。智能門鎖:奇景光電在 CES 2025 推出的 WiseEye 掌靜脈模塊,通過掌…

c++線程的創建

c 11 線程編程實戰 目錄 c 11 線程編程實戰1&#xff0c;線程的創建1.1 傳入無參函數1.2 傳入有參函數1.3 傳入類內部函數1.4 lambda表達式 1&#xff0c;線程的創建 1.1 傳入無參函數 //傳入函數&#xff0c;創建線程 void ThreadMain() {//獲取線程IDstd::thread::id thi…

人工智能數學基礎(六):數理統計

數理統計是人工智能中數據處理和分析的核心工具&#xff0c;它通過收集、分析數據來推斷總體特征和規律。本文將系統介紹數理統計的基本概念和方法&#xff0c;并結合 Python 實例&#xff0c;幫助讀者更好地理解和應用這些知識。資源綁定附上完整資源供讀者參考學習&#xff0…

解決STM32待機模式無法下載程序問題的深度探討

在現代嵌入式系統開發中&#xff0c;STM32系列微控制器因其高性能、低功耗和豐富的外設資源而廣受歡迎。然而&#xff0c;開發者在使用STM32時可能會遇到一個問題&#xff1a;當微控制器進入待機模式后&#xff0c;無法通過調試接口&#xff08;如SWD或JTAG&#xff09;下載程序…

C#擴展方法與Lambda表達式基本用法

C# 擴展方法與 Lambda 表達式詳解 一、擴展方法詳解 1. 基本概念 ??擴展方法??允許為現有類型"添加"方法&#xff0c;而無需修改原始類型或創建派生類型。 ??定義條件??&#xff1a; 必須在靜態類中定義方法本身必須是靜態的第一個參數使用this修飾符指…

C#規避內存泄漏的編碼方法

C#規避內存泄漏的編碼方法 內存泄漏是C#開發中常見的問題&#xff0c;盡管.NET有垃圾回收機制(GC)&#xff0c;但不當的編碼實踐仍可能導致內存無法被及時回收。以下是系統性的規避內存泄漏的方法&#xff1a; 一、理解內存泄漏的常見原因 ??未釋放的事件訂閱????靜態…

React 后臺管理系統

這是一個基于 React TypeScript Ant Design 開發的向明天系統前端項目。 git倉庫地址 技術棧 React 19TypeScriptAnt Design 5.xRedux ToolkitReact RouterAxiosLess 環境要求 Node.js (推薦使用最新LTS版本)npm 或 yarn 安裝步驟 克隆項目到本地 git clone [https://…

第九節:文件操作

理論知識 文件的基本概念&#xff1a;文件是存儲數據的基本單位&#xff0c;在 Linux 系統中&#xff0c;一切皆文件。文件可以是文本文件、二進制文件、設備文件等。文件的創建&#xff1a;使用 touch 命令可以創建一個新的空文件。如果文件已經存在&#xff0c;則更新文件的…

2025-03 機器人等級考試四級理論真題 4級

1 2025年蛇年春晚&#xff0c;節目《秧BOT》機器人舞蹈表演節目點燃了全國觀眾的熱情&#xff0c;請問參加節目表演的機器人是由哪家公司研發&#xff1f;&#xff08; &#xff09; A.大疆 B.華為 C.優必選 D.宇樹科技 【參考答…