用STC89C52連接Phyphox(多數據協同)這一篇筆記,盡管是使用51單片機實現的,但從原理以及未來的實用性上看,顯然適用于Arduino、ESP32以及8266等其他常見單片機,集成藍牙與不集成藍牙都是一樣的,只要走藍牙通道。 轉眼藍牙連接Phyphox的研究已經是第7篇筆記了,先列一下表:
我們真的要使用STC89C52RC做實驗的話,大概率要碰到同時采集兩種或兩種以上的傳感器數據的情況,例如伏安法測電阻,測定二極管伏安特性曲線等,可能希望電壓、電流同時能夠送到Phyphox才好。使用ESP32創(chuàng)作實驗,要使用Phyphox官方的Phyphox-BLE庫,這個庫受到Arduino IDE的支持,使創(chuàng)作實驗時,能自動支持到同時有5個實型數據傳輸,這可以從BLE庫的write()函數中看到;但若企圖傳輸10個、20個數據,或者其它類型的數據傳輸,要么不被支持,要么需要自己去重寫write()函數體。 這一篇C51下的多數據協同的研究意義就在于此,我們希望能找到多個數據傳輸的方法,實現多數據的協同工作。 一、c文件定義好發(fā)送字符串的函數,并初始化串口后: void main()strcpy函數需要#include <string.h> 和 #include <stdio.h>兩個頭文件。這里的代碼是要發(fā)送12#34#56字符串給Phyphox。這個字符串是有格式的,#作為分隔符,到Phyphox Editor里面要使用這個分隔符。 二、Phyphox Editor當Phyphox Editor中編輯Phyphox文件時,我們只能被允許創(chuàng)建一個Bluetooth視圖,亦即Phyphox只能使用一個藍牙,但能傳輸多少數據是不限制的(實際受藍牙本身的傳輸規(guī)范限制),這樣我們只要傳輸一個帶格式字符串,多數據協同即成功。 我們指定接收到的數據按formattedString轉換,在separator中指定接收的數據由#分開,并在index中指定0,則取出12#34#56中的索引為0的數據:12;再創(chuàng)建一個output變量,指定index為2,則取出12#34#56中的索引為2的數據:56。 編寫Analysis部分。把兩個輸出變量送給兩個value: 到Download/Transfor標簽里下載回phyphox文件,運行,看到名稱為11111的value里面正確顯示了12#34#56分割后的數據12,即12.00;名稱為2222的value里面顯示了分割后的56,即56.00。 |
|
|
來自: 新用戶5228KeDY > 《待分類》