【深海王國】小學生都能玩的單片機?零基礎入門單片機Arduino帶你打開嵌入式的大門!(9)

Hi?(?o?)?, 各位深海王國的同志們,早上下午晚上凌晨好呀~辛勤工作的你今天也辛苦啦

(o゜▽゜)o☆ 今天大都督繼續為大家帶來系列——小學生都能玩的單片機!帶你一周內快速走進嵌入式的大門,let’s go!

(9)實戰:使用軟串口與藍牙APP串口通訊

通過前面八節的學習,相信大家已經對Arduino是什么、怎么用很熟悉了。那么恭喜你離入門Arduino就差最后一步了。接下來最后兩節,我們將實際編寫程序與藍牙APP進行通信并總結一下學習Arduino時常踩的坑,大家再加把勁!

準備工作:

如果大家有興趣自己做一個藍牙APP,可以關注一下大都督的另一個系列

【深海王國】小學生都能做的APP?AppInventor、BLE藍牙、Arduino聯合開發你的第一個手機遠程控制程序(1)

趕時間的也可以直接在「深海大都督」里回復「藍牙APP」獲取安卓安裝包就可以啦。

安卓好藍牙APP以后,需要打開手機定位和藍牙,并且記得給權限。然后APP主頁面長這樣:

在這里插入圖片描述

然后Arduino的接線如圖:

在這里插入圖片描述

ArduinoBLE藍牙模塊
2 (RX)TX
3 (TX)RX
3.3V3.3V
GNDGND

所用藍牙為BLE低功耗藍牙,相關材料購買鏈接在「深海大都督」里回復「BLE藍牙」(大都督個人購買,僅供參考,無廣)。

Arduino程序:

這些程序作為參考提供給大家,用到的函數都在上節里提到啦,詳見(8)軟串口與SoftwareSerial庫使用

1.將電腦端串口接受到的char字符指令發送給APP
#include <SoftwareSerial.h>  //引用庫文件
SoftwareSerial Serial1(2, 3);  // 定義軟串口RX為2, TX為3和軟串口對象Serial1void setup(){Serial.begin(9600); //Arduino與電腦通信的波特率Serial1.begin(9600);  //Arduino與BLE藍牙通信的波特率
}void loop(){char data = ' ';if(Serial.available()){  //如果電腦串口接收到數據data = char(Serial.read());  //將電腦端接受到的數據轉化為char類型Serial1.print(data);  //將電腦接收到的數據發送到藍牙APP上}
}

運行效果:
通過Arduino IDE的串口監視器發送字符’A’給APP,APP接受。
在這里插入圖片描述

2.接受藍牙APP串口發送過來的char字符指令
#include <SoftwareSerial.h>  //引用庫文件
SoftwareSerial Serial1(2, 3);  // 定義軟串口RX為2, TX為3和軟串口對象Serial1void setup(){Serial.begin(9600); //Arduino與電腦通信的波特率Serial1.begin(9600);  //Arduino與BLE藍牙通信的波特率
}void loop(){char data = ' ';if(Serial1.available()){  //如果藍牙串口接收到數據data = char(Serial1.read());  //將藍牙端接受到的數據轉化為char類型Serial.print(data);  //將接收到的數據發送到電腦上}
}

運行效果:
通過APP發送字符’A’給Arduino,Arduino串口監視器上顯示。
在這里插入圖片描述

3.將電腦端串口接受到的String字符串指令發送給APP
#include <SoftwareSerial.h>  //引用庫文件
SoftwareSerial Serial1(2, 3);  // 定義軟串口RX為2, TX為3和軟串口對象Serial1void setup(){Serial.begin(9600); //Arduino與電腦通信的波特率Serial1.begin(9600);  //Arduino與BLE藍牙通信的波特率
}void loop(){String data_S = " ";if(Serial.available()){  //如果藍牙串口接收到數據data_S = char(Serial.read());  //將藍牙端接受到的數據轉化為char類型Serial1.print(data_S);  //將接收到的數據發送到電腦上}
}

運行效果:
通過Arduino IDE的串口監視器發送字符串"ABCD"給APP,APP接受。
在這里插入圖片描述

4.接受藍牙APP串口發送過來的String字符串指令
#include <SoftwareSerial.h>  //引用庫文件
SoftwareSerial Serial1(2, 3);  // 定義軟串口RX為2, TX為3和軟串口對象Serial1void setup(){Serial.begin(9600); //Arduino與電腦通信的波特率Serial1.begin(9600);  //Arduino與BLE藍牙通信的波特率
}void loop(){String data_S = " ";while(Serial1.available()){  //如果藍牙串口接收到數據data_S += char(Serial1.read());  //將藍牙端接受到的數據轉化為char類型,并累加到data_S中Serial.print(data_S);  //將接收到的數據發送到電腦上}
}

注:c語言中+=是代表兩個變量相加,并將答案記錄在左邊的變量里。比如x+=y實際代表的表達式為:x=x+y。

運行效果:
通過APP發送字符串"ABCD"給Arduino,Arduino串口監視器上顯示。
在這里插入圖片描述

今天的學習到這里就差不多啦,下節就是本系列的最后一節,大都督會為大家分享一下學習Arduino時常踩的坑,看到這里的你辛苦啦,加油?(ˊ?ˋ)??。

哈哈,讓焦慮不再蔓延,信息不再高壁,如果你覺得這篇文章對你有幫助,就來個免費的點贊吧!

(???????)?我深海大都督正式授予你深海王國公民的身份~

(?ω< )★ 加入深海大家庭,快樂擺爛每一天!

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

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

相關文章

殷山:摩斯大模型隱私保護技術和應用探索

背景介紹 6月20日下午&#xff0c;“2024信通院數據智能大會”圓滿落幕&#xff0c;摩斯技術負責人殷山在論壇上分享了摩斯在大模型隱私保護技術和行業應用的探索。 殷山發表“大模型隱私保護”主題演講 摩斯技術負責人殷山在“數據智能安全主題論壇“上&#xff0c;帶來“大…

web學習筆記(六十八)項目總結

目錄 1.如何取到對象的第一項的鍵名 2.如何在鍵名不確定的情況下取到對象的第一項的值 3.如何獲取對象的長度 4.計算屬性和watch監聽監聽深層數據 5.樣式穿透 1.如何取到對象的第一項的鍵名 可以通過Object.keys將對象轉化為一個包含對象所有可枚舉屬性名的數組&#xff…

Java中的微服務架構實現方法

Java中的微服務架構實現方法 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01; 在當今軟件開發的環境中&#xff0c;微服務架構已經成為了構建大型應用程序的主流…

NIVision-LabVIEW在灰度圖上畫圓

問題來源 在csdn上看到的這樣一個問題&#xff0c;好像也沒個正經答案&#xff0c;都用chatGPT回答&#xff0c;挺沒勁的。不說提供個vi源代碼&#xff0c;至少也來張截圖嘛。我想著問題也不難&#xff0c;就自己動動手吧。 代碼展示1 1、首先使用imaq ArrayToImage.vi創建了一…

java error ConcurrentModificationException 并發修改異常

ConcurrentModificationException 概述 這個異常在 Java 中通常發生在以下場景&#xff1a;當某個線程在遍歷一個集合&#xff08;如 ArrayList、HashMap 等&#xff09;的過程中&#xff0c;另一個線程嘗試修改這個集合的結構&#xff08;如添加、刪除元素&#xff09;&#…

java中處理RunTimeException類的方式

在Java中&#xff0c;RuntimeException是所有運行時異常的父類。一些常見的RuntimeException子類包括&#xff1a; NullPointerException&#xff08;空指針異常&#xff09;&#xff1a;當試圖訪問空對象的屬性或調用空對象的方法時拋出。IllegalArgumentException&#xff0…

sheng的學習筆記-AI-學習向量量化

AI目錄 sheng的學習筆記-AI目錄-CSDN博客 需要學習前置知識&#xff1a;聚類&#xff0c;可參考 sheng的學習筆記-AI-聚類(Clustering)-CSDN博客 什么是學習向量量化 “學習向量量化”&#xff08;Learning Vector Quantization&#xff0c;簡稱LVQ&#xff09;是試圖找到一…

【Android面試八股文】ViewHolder為什么要被聲明成靜態內部類?

文章目錄 ViewHolder為什么要被聲明成靜態內部類?1. 避免隱式引用導致的內存泄漏2. 提高性能3. 代碼可讀性和維護性實例代碼總結ViewHolder為什么要被聲明成靜態內部類? 將 ViewHolder 聲明為靜態內部類有幾個重要的原因,這樣做可以提高性能并避免潛在的內存泄漏。下面是詳…

Qt | 子類化 QStyle(Qt自帶圖標大全)

01、簡介 1、把繪制自定義部件外觀的步驟大致分為三大板塊,如下: ①、樣式元素:即指定需要繪制的圖形元素(比如焦點框、按鈕,工具欄等)。樣式元素使 用 QStyle 類中的一系列枚舉(共有 11 個枚舉)進行描述。 ②、樣式選項:包含了需要繪制的圖形元素的所有信息,比如包含…

Tomcat 下載部署到 idea

一、下載Tomcat Tomcat 是Apache 軟件基金會&#xff08;Apache Software Foundation&#xff09;下的一個核心項目&#xff0c;免費開源、并支持Servlet 和JSP 規范。屬于輕量級應用服務器&#xff0c;在中小型系統和并發訪問用戶不是很多的場合下被普遍使用&#xff0c;是開發…

啟動VMWare虛擬機報錯

1. 無法打開內核設備“\\.\VMCIDev\VMX”: 操作成功完成。是否在安裝 VMware Workstation 后重新引導? 模塊“DevicePowerOn”啟動失敗。 未能啟動虛擬機。 解決辦法: 解決辦法: 將 Ubuntu 64 位.vmx 找到vmci0.present"TRUE"這行改成 vmci0.present "FAL…

wireshark工具獲取設備IP地址

背景&#xff1a; 一個網口抓包工具&#xff0c;主要是升級XX設備時候不知道網口的ip地址。每次需要一個一個試&#xff0c;比較麻煩。 使用步驟&#xff1a; 1、連接好XX設備與筆記本&#xff0c;在網絡連接里面找到以太網&#xff0c;沒有出現紅色X號&#xff0c;表示網線連…

文心一言 VS 訊飛星火 VS chatgpt (289)-- 算法導論21.3 2題

二、寫出使用路徑壓縮的 FIND-SET 過程的非遞歸版本。如果要寫代碼&#xff0c;請用go語言。 文心一言&#xff1a; 在并查集&#xff08;Union-Find&#xff09;數據結構中&#xff0c;路徑壓縮&#xff08;Path Compression&#xff09;是一種優化技術&#xff0c;用于減少…

智能倉儲:立體倉WCS設計

自動化立體倉庫簡稱高架倉庫&#xff0c;是采用高層貨架存放貨物&#xff0c;以巷道堆垛起重機為主&#xff0c;結合入庫出庫周邊設備來進行作業的一種倉庫。 立體倉主體由貨架、巷道式堆垛機、輸送機等組成。 電氣控制系統、上位監控系統&#xff08;Warehouse Control Syste…

【前后端實現】AHP權重計算

AHP權重計算&#xff1a; 需求&#xff1a;前端記錄矩陣維度、上三角值&#xff0c;后端構建比較矩陣、計算權重值并將結果返回給前端 比較矩陣構建 如果你想要根據上三角&#xff08;不包括對角線&#xff09;的值來構建對稱矩陣&#xff0c;那么你可以稍作修改上述的generate…

.NET 語言特定指南

.NET Language-Specific Guide 本指南將教您如何使用 Docker 創建容器化的 .NET 應用程序。通過本指南&#xff0c;您將學習如何&#xff1a; 容器化并運行 .NET 應用程序設置本地環境以使用容器開發 .NET 應用程序使用容器運行 .NET 應用程序測試使用 GitHub Actions 配置容…

量化交易面臨的難題

量化交易面臨的難題 1、監管機構對于算法交易、量化交易的監管越來越嚴格3、回測場景于實盤交易場景的不匹配性4、策略并非100%有效&#xff0c;并非100%的收益5、股票、基本面、市場新聞之間的關系時刻在變化并且難以捉摸6、很難使用一套通用的交易規則去匹配所有的股票/市場/…

U盤數據恢復實戰:兩大方案助您找回珍貴數據

在數字化時代&#xff0c;U盤作為我們隨身攜帶的數據存儲工具&#xff0c;承載著無數重要的文件和信息。然而&#xff0c;由于誤操作、系統崩潰或硬件故障等原因&#xff0c;U盤中的數據可能會突然消失&#xff0c;給我們帶來極大的困擾。本文將深入探討U盤數據恢復的概念、方法…

常見大功率藍牙應用有哪些?

在無線通信技術飛速發展的今天&#xff0c;藍牙技術以其低功耗和易用性優勢成為短距離無線通信的佼佼者。然而&#xff0c;隨著智能家居、工業4.0等新型應用的興起&#xff0c;藍牙應用設備對通信距離和穩定性的要求越來越高。為了滿足更大范圍的無線通信需求&#xff0c;大功率…

山寨幣大額解鎖拋壓拖累比特幣:10X Research 深度剖析市場動蕩

加密貨幣市場大幅下跌&#xff0c;山寨幣損失慘重 在經歷了幾個月的強勁表現后&#xff0c;加密貨幣市場最近經歷了一輪大幅下跌&#xff0c;特別是山寨幣損失慘重。10X Research 最近在其Newsletter中發表了觀點&#xff0c;認為山寨幣大額解鎖所帶來的拋壓正在拖累比特幣。本…