終于搞定了通過兩路藍牙接收數據

一直想做無線傳感器,通過藍牙來接收數據,無奈因為arduino接收串口數據的一些問題,一直擱到現在。因為學校里給學生開了選修課,所以手邊有一些nano和mega可以使用,所以就做了用兩個nano加上兩個藍牙模塊來發射數據,用mega加兩個藍牙模塊來接收數據。因為mega可以同時使用4路串口,所以考慮用mega來作為主控機,用來接收來自傳感器的數據,每個傳感器加一個nano和藍牙來無線發射數據。

因為是測試,所以在nano中寫了一個簡單的發射信號的語句。以下四nano中的程序:

————————————————我是分界線——————————————————————

int i=1;
void setup() {?
??Serial.begin(9600);???}
??void loop(){
?????????Serial.print(i);
???????Serial.print("$");
???????delay(50);
???????i++;????????
????}

————————————————我是分界線——————————————————————

以下是mega中的程序:

——————————————————我是分界線————————————————————————

String comdata = "";
String shuju="";
String shuju2="";
int i;
void setup()
?{
?????Serial.begin(9600);
?????Serial1.begin(9600);
?????Serial2.begin(9600);
?}

void loop()
?{
?????while (Serial1.available() > 0)?
?????{
?????????shuju += char(Serial1.read());
?????????delay(2);
?????}
?????while (Serial2.available() > 0)
?????{
???????shuju2 +=char(Serial2.read());
???????delay(2);
?????}
?????if (shuju.length() > 0)
?????{
?????????i=shuju.indexOf("$");
?????????if(i!=-1){
?????????comdata=shuju.substring(0,i);
?????????Serial.print("#1=");???????
?????????Serial.print(comdata);
?????????Serial.println("$");
?????????shuju=shuju.substring(i+1,shuju.length());
?????????comdata = "";
?????????i=0;
?????????}
?????}
???????if (shuju2.length() > 0)
?????{
?????????i=shuju2.indexOf("$");
?????????if(i!=-1){
?????????comdata=shuju2.substring(0,i);
?????????Serial.print("#2=");
??????????Serial.print(comdata);
??????????Serial.println("$");
?????????shuju2=shuju2.substring(i+1,shuju2.length());
?????????comdata = "";
?????????i=0;
?????????}????}?}

——————————————我是分界線————————————————————

上篇忘記介紹藍牙模塊的設置了,如果想要利用兩路藍牙來接收數據,那么這兩路藍牙必須設置不同的密碼,以下是藍牙模塊的設置方法,可以將藍牙模塊接到串口模塊上,然后里喲你串口軟件發指令給藍牙模塊,以下設置是針對DFrobot的藍牙模塊的,它上面有開關可以設置接收命令狀態。如果不是DFrobot的藍牙模塊,只要將KEY針腳接高電平就是可以接受命令狀態。將兩個藍牙模塊設置為主,然后設置不同的密碼。再將另外兩個設置為從,設置對應主藍牙的密碼。以下是具體的命令設置:

在發送欄中輸入AT(不分大小寫),然后點擊發送,可看見模塊返回OK,這表示AT指令通訊正常。當AT指令設置完畢后,將2號開關AT Mode撥到2端退出AT命令模式,重新上電后設置才生效。

1.AT指令集如下:

指令響應參數
ATOK





2.模塊重啟指令:

指令響應參數
AT+RESETOK





3.設置和查詢模塊連接模式:

當模塊無法被適配器、主機連接時,需配置該參數,配置為AT+CMODE=1。

指令響應參數
AT+CMODE=< Param >OKParam:

0 —— 指定藍牙地址連接模式 (指定藍牙地址由綁定指令設置)

1 —— 任意藍牙地址連接模式 (不受綁定指令設置地址的約束)

默認連接模式:0

AT+CMODE?+CMODE: < Param > OK
















?

4.設置和查詢模塊角色:

當模塊無法被適配器、主機搜索到時,需配置該參數,配置為從角色。


模塊角色說明:

Slave(從角色) ——被動連接,可以和任意藍牙適配器配對使用;

Master (主角色)——查詢周圍從設備,并主動發起連接,從而建立主、從藍牙設備間的透明數據傳輸通道。

Slave-Loop(回環角色) ———被動連接,接收遠程藍牙主設備數據并將數據原樣返回給遠程藍牙主設備;

5.設置和查詢配對碼:

6.設置和查詢串口參數:

舉例:設置串口波特率:115200,1位停止位,無校驗

AT+ UART=115200,0,0\r\n

OK

AT+ UART?

+UART:115200,0,0

OK

注:在應用中,選擇1位停止位,無校驗。

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

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

相關文章

經常用借唄和花唄對征信有影響嗎?

說起支付寶里的花唄和借唄&#xff0c;大伙兒肯定都不陌生&#xff0c;它們倆就像是支付寶里的信用貸款雙胞胎&#xff0c;名字相近&#xff0c;性格卻大相徑庭。現在&#xff0c;這倆兄弟都乖乖地接入了央行的征信大家庭&#xff0c;你的每一次使用&#xff0c;都會被記錄得清…

GEE代碼實例教程詳解:湖泊水位變化監測

簡介 本篇博客將介紹如何使用Google Earth Engine (GEE) 對湖泊水位變化進行監測。通過MODIS數據集&#xff0c;我們可以識別2001年和2023年的湖泊范圍&#xff0c;并計算湖泊的高程變化。 背景知識 MODIS數據集 MODIS/061/MOD09Q1數據集提供了MODIS的地表反射數據&#xf…

DDD架構

1.DDD架構的概念&#xff1a; 領域驅動設計&#xff08;Domain-Driven Design, DDD&#xff09;是一種軟件設計方法&#xff0c;旨在將軟件系統的設計和開發焦點集中在領域模型上&#xff0c;以解決復雜業務問題 2.DDD架構解決了什么問題: 在以前的mvc架構種&#xff0c;三層結…

產品經理-交互設計動手實踐(11)

業內有很多畫交互的工具&#xff0c;這里不過多介紹&#xff0c;互聯網公司最常用的工具是Axure,墨刀,藍湖,小瀑 它是一個專業的快速原型設計工具&#xff0c;使用它能夠快速創建線框圖、流程圖、原型和規格說明文檔。 它能快速、高效地創建原型&#xff0c;同時支持多人協作設…

華為HCIP Datacom H12-821 卷30

1.單選題 以下關于OSPF協議報文說法錯誤的是? A、OSPF報文采用UDP報文封裝并且端口號是89 B、OSPF所有報文的頭部格式相同 C、OSPF協議使用五種報文完成路由信息的傳遞 D、OSPF所有報文頭部都攜帶了Router-ID字段 正確答案&#xff1a;A 解析&#xff1a; OSPF用IP報…

iOS 開發中不常見的專業術語

樂此不疲地把簡單的問題復雜化&#xff0c;并把這種XX行為叫作專業 APM 在 iOS 開發中&#xff0c;APM 代表 Application Performance Management&#xff08;應用性能管理&#xff09;。APM 是一套監控和管理應用程序性能的工具和技術&#xff0c;旨在確保應用程序運行平穩、…

【人工智能】-- 法律與倫理

個人主頁&#xff1a;歡迎來到 Papicatch的博客 課設專欄 &#xff1a;學生成績管理系統 專業知識專欄&#xff1a; 專業知識 文章目錄 &#x1f349;引言 &#x1f349;倫理問題 &#x1f348;隱私泄露問題 &#x1f34d;人工智能與隱私泄露的緊密關聯 &#x1f34d;數…

上海慕尼黑電子展開展,啟明智顯攜物聯網前沿方案亮相

隨著科技創新的浪潮不斷涌來&#xff0c;上海慕尼黑電子展在萬眾矚目中盛大開幕。本次展會匯聚了全球頂尖的電子產品與技術解決方案&#xff0c;成為業界矚目的焦點。啟明智顯作為物聯網彩屏顯示領域的佼佼者攜產品亮相展會&#xff0c;為參展者帶來了RTOS、LINUX全系列方案及A…

測試工作流程

基礎 測試流程 1)需求研讀&#xff1a; 通讀需求了解需求整體內容&#xff0c;然后精讀需求理解需求的每?個業務邏輯&#xff0c;每?句話的意思。在研讀需求過程中的記錄問題&#xff0c;然后通過百度&#xff0c;AI?具&#xff0c;CSDN社區&#xff0c;咨詢朋友&#xf…

鴻蒙 arkts 實現手機號中間四位隱藏, 可以使用 substring [ 簡單適用新手 ]

1, 看效果 2, 直接cv代碼就可以 Preview Entry Component struct Setting {Statephone:string 15555555555maskPhoneNumber(phone:string){const start phone.substring(0,3)const end phone.substring(7)return ${start}****${end}}build() {Column(){Text(this.maskPhon…

Leetcode2542-最大子序列的分數

1.問題轉換 首先明確題意&#xff0c;要選取的值和num1&#xff0c;num2兩個數組都有關&#xff0c;但是num1中選取的是k個數&#xff0c;num2中選取的是1個數&#xff0c;顯然num2中的數所占的權重較大&#xff08;對結果影響較大&#xff09;&#xff0c;所以我們就可以對nu…

【Java探索之旅】多態:向上下轉型、多態優缺點、構造函數陷阱

文章目錄 &#x1f4d1;前言一、向上轉型和向下轉型1.1 向上轉型1.2 向下轉型 二、多態的優缺點2.1 多態優點2.2 多態缺陷 三、避免避免構造方法中調用重寫的方法四、好的習慣&#x1f324;?全篇總結 &#x1f4d1;前言 在面向對象編程中&#xff0c;向上轉型和向下轉型是常用…

Django 新增數據 create()方法

1&#xff0c;添加模型 Test/app11/models.py from django.db import modelsclass Book(models.Model):title models.CharField(max_length100)author models.CharField(max_length100)publication_date models.DateField()price models.DecimalField(max_digits5, decim…

小米訂單銳減背后的挑戰與應對之道

近期&#xff0c;富士康印度子公司Bharat FIH面臨高管離職、工廠關閉的困境&#xff0c;其背后原因之一是小米訂單的顯著下滑&#xff0c;據報道&#xff0c;這一降幅高達70%。這一現象不僅反映了富士康在印度市場的艱難處境&#xff0c;也揭示了小米在全球智能手機市場面臨的挑…

六、數據可視化—Wordcloud詞云(爬蟲及數據可視化)

六、數據可視化—Wordcloud詞云&#xff08;爬蟲及數據可視化&#xff09; 也是一個應用程序 http://amueller.github.io/word_cloud/ Wordcloud詞云&#xff0c;在一些知乎&#xff0c;論壇等有這樣一些東西&#xff0c;要么做封面&#xff0c;要么做講解&#xff0c;進行分析…

C++ | Leetcode C++題解之第223題矩形面積

題目&#xff1a; 題解&#xff1a; class Solution { public:int computeArea(int ax1, int ay1, int ax2, int ay2, int bx1, int by1, int bx2, int by2) {int area1 (ax2 - ax1) * (ay2 - ay1), area2 (bx2 - bx1) * (by2 - by1);int overlapWidth min(ax2, bx2) - max…

實戰Qt開發WordBN筆記軟件#01 搭建開發環境:VS2019+Qt6.5+CMake+Git

01 背景 【WordBN字遠筆記】是天恩軟件工作室開發的一款免費筆記軟件&#xff1b;WordBN基于VS2019、Qt6.5開發&#xff0c;使用Qt Quick&#xff08;QML&#xff09;開發語言。 本課程將以【WordBN字遠筆記】的界面為實戰基礎&#xff0c;詳細介紹如何基于Qt/QML開發語言&am…

WPF 表格控件斑馬線使用

這里用ListView為案例。 如圖效果&#xff1a; 主要思路&#xff1a; 用AlternationCount屬性來設置需要使用斑馬線的條數&#xff0c;就是說幾行一換色&#xff0c;也可以理解為需要幾種顏色&#xff0c; 然后再樣式模板中&#xff0c;寫觸發器屬性ItemsControl.Alternatio…

python深拷貝和淺拷貝之間的區別是什么?

在Python中&#xff0c;深拷貝和淺拷貝是兩種不同的對象復制機制&#xff0c;它們在復制對象時的行為有顯著差異&#xff1a; 1. 淺拷貝&#xff08;Shallow Copy&#xff09;: - 淺拷貝創建一個新對象&#xff0c;但它只是復制了原始對象中元素的引用&#xff08;對于可變…

明明已經安裝了python中的某個庫,但是還是報錯ModuleNotFoundError: No module named ‘sklearn‘

問題&#xff1a; 明明已經安裝了python中的某個庫&#xff0c;但是還是報錯ModuleNotFoundError: No module named sklearn 解決方法&#xff1a; 卸載重新安裝一下即可 pip uninstall scikit-learn pip install scikit-learn 成功解決&#xff01;&#xff01;&#xff…