用STC89C52连接Phyphox(多数据协同)

用STC89C52连接Phyphox(多数据协同)

这一篇笔记,尽管是使用51单片机实现的,但从原理以及未来的实用性上看,显然适用于Arduino、ESP32以及8266等其他常见单片机,集成蓝牙与不集成蓝牙都是一样的,只要走蓝牙通道。

转眼蓝牙连接Phyphox的研究已经是第7篇笔记了,先列一下表:

  1. 用STC89C52连接Phyphox(综述)
  2. 用STC89C52连接Phyphox(串口)
  3. 用STC89C52连接Phyphox(烧录)
  4. 用STC89C52连接Phyphox(蓝牙)
  5. 用STC89C52连接Phyphox(Phyphox)
  6. 用STC89C52连接Phyphox(Ds18b20)
  7. 用STC89C52连接Phyphox(多数据协同)←本篇
  8. 用STC89C52连接Phyphox(双向数据传输)←挖坑,以后填

我们真的要使用STC89C52RC做实验的话,大概率要碰到同时采集两种或两种以上的传感器数据的情况,例如伏安法测电阻,测定二极管伏安特性曲线等,可能希望电压、电流同时能够送到Phyphox才好。使用ESP32创作实验,要使用Phyphox官方的Phyphox-BLE库,这个库受到Arduino IDE的支持,使创作实验时,能自动支持到同时有5个实型数据传输,这可以从BLE库的write()函数中看到;但若企图传输10个、20个数据,或者其它类型的数据传输,要么不被支持,要么需要自己去重写write()函数体。

这一篇C51下的多数据协同的研究意义就在于此,我们希望能找到多个数据传输的方法,实现多数据的协同工作。

一、c文件

定义好发送字符串的函数,并初始化串口后:

void main()
{
    char buf[10];
 uchar code char_temp[3]={'\r','\n'};
    while(1)
    {
       ……
    strcpy(buf,"12#34#56");
    PostString(buf); 
    PostString(char_temp);
       delayms(5);
    }
}

strcpy函数需要#include <string.h> 和 #include <stdio.h>两个头文件。这里的代码是要发送12#34#56字符串给Phyphox。这个字符串是有格式的,#作为分隔符,到Phyphox Editor里面要使用这个分隔符。

二、Phyphox Editor

当Phyphox Editor中编辑Phyphox文件时,我们只能被允许创建一个Bluetooth视图,亦即Phyphox只能使用一个蓝牙,但能传输多少数据是不限制的(实际受蓝牙本身的传输规范限制),这样我们只要传输一个带格式字符串,多数据协同即成功。

我们指定接收到的数据按formattedString转换,在separator中指定接收的数据由#分开,并在index中指定0,则取出12#34#56中的索引为0的数据:12;再创建一个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。

(0)

相关推荐

  • STM32与串口屏交互(USART HMI)

    一.前期准备 二.串口屏上位机使用方法以及界面设计 三.STM32软件编程 四.单片机发送数据的字符串指令汇总 五.总结 不管是备战电赛还是准备毕设,一块能与单片机交互的屏幕显得尤为重要,相较于传统的 ...

  • C语言sprintf()函数:将格式化的数据写入字符串

    头文件:#include <stdio.h> sprintf()函数用于将格式化的数据写入字符串,其原型为:     int sprintf(char *str, char * forma ...

  • redis系列之------简单的动态字符串(SDS)

    前言 Redis 没有直接使用 C 语言传统的字符串表示(以空字符结尾的字符数组,以下简称 C 字符串), 而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的 ...

  • 用STC89C52连接Phyphox(综述)

    用STC89C52连接Phyphox(综述) Phyphox,又名手机物理工坊,是一款运行在手机端.借助手机传感器来进行物理实验的专业的物理APP.Phyphox除了本身能够进行超巨量的物理实验以外- ...

  • 用STC89C52连接Phyphox(串口)

    用STC89C52连接Phyphox(串口) 实现STC89C52连接Phyphox,第一步要做的是让STC89C52RC的串口通信,能够把数字和字符发送给串口,然后蓝牙从串口接收了数据就可以送给Ph ...

  • 用STC89C52连接Phyphox(烧录)

    用STC89C52连接Phyphox(烧录) 刚刚要自学单片机的时候,买了一套普中科技的CH6800-ES 2G的开发板,这个开发板上有自动烧写的电路模块,同时还配套了他们自己的烧录软件,使用的时候, ...

  • 用STC89C52连接Phyphox(蓝牙)

    用STC89C52连接Phyphox(蓝牙) STC89C52RC连接Phyphox的桥梁是蓝牙BLE,必须是低功耗蓝牙,常见的蓝牙HC-08就是这种规范的.如果使用了其他非低功耗BLE蓝牙,Phyh ...

  • 用STC89C52连接Phyphox(Phyphox)

    用STC89C52连接Phyphox(Phyphox) STC89C52RC连接Phyphox的技术并不多困难,只是与ESP32/Arduino Nano 33等连接Phyphox比起来要麻烦得多. ...

  • 用STC89C52连接Phyphox(DS18b20)

    用STC89C52连接Phyphox(DS18b20) 根据前面的探索,使用STC89C52RC连接Phyphox基本可以进行一些通信了.但是,如果连接传感器会怎样呢?这就涉及Phyphox一侧如何进 ...

  • 用STC89C52连接Phyphox(双向数据传输)

    用STC89C52连接Phyphox(双向数据传输) STC单片机连接Phyphox研究笔记至此结束.填坑完毕. 研究51单片机通过蓝牙与手机上的Phyphox连接而互通数据的意义在于,获得一种方法. ...

  • 华为手机与电脑多屏协同,居然自带5种连接方法,总有一种适合你

    华为手机与电脑多屏协同,居然自带5种连接方法,总有一种适合你

  • 华为手机多屏协同,自带5种方法连接电脑,看看哪种更适合你?

    昨天的文章中,我们介绍了"华为手机与非华为电脑之间,如何实现多屏协同",有些网友按照文章介绍的方法去操作后,给我留言反馈,说自己的手机和电脑无法连接,没能完成多屏协同,问我该怎么办 ...