用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上)

这篇具有很好参考价值的文章主要介绍了用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

       为了传输传感器数据,在网上找了很多方法,但都因为各种各样的问题最终没能成功实现。最终找到这个既简单,又方便实现的方法。步骤有点多,希望大家可以跟着教程,一步步耐心的做下去,愿大家都能成功实现数据传输。代码放在最后啦,下面开始我的教程。

一、创建Onenet账号

1.在浏览器里搜索“onenet",第一个就是

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

2.进入后点击右上角登录,第一次登陆的需要注册账号

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

二、创建产品

1.登陆后点击右上角的开发者中心

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

2.先点击产品开发,再点击创建产品

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

3.这里产品品类可以随便选,不影响功能

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

4.选择设备接入

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

5.用红色框起来的五个地方要和我一样,其他地方根据自己情况填

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

6.按确定后,产品就创建成功了,下面添加设备

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序这样设备就添加成功了

7.回到产品开发

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

8.点击右边的“设置物模型”,然后点击“添加自定义功能点”,以温湿度为例

(我这边把原本自带的功能点都删掉了,大家可以根据自己的实际需要增删)

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

三、生成SDK

1.点击新增后,按“保存”,会跳出如下页面,点击“前往设备开发”

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

2.点击“基于SDK开发”

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

3.点击“功能接口SDK获取”后,将自动生成并下载SDK

用户在平台端获取的设备SDK中,已包括平台根据设备所属产品的物模型自动生成的tm_user.c和tm_user.h文件(修改物模型后,会重新生成tm_user文件,需要重新获取新的SDK)!!!

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

4.如果在前面不小心将“前往设备开发”关掉,可以通过如下方式生成SDK

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

四、上传SDK至树莓派

1.下载好SDK后,将SDK传到树莓派上,这里给大家分享一个快速将电脑文件传给树莓派的方法

链接:https://pan.baidu.com/s/1j70vzNti_w7bxCOxp48HAg 
提取码:mxkc

点击WinSCP应用程序

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

2.点击“编辑”,输入自己的IP,用户名和密码,然后点“登陆”

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

3.选择要上传的文件,右击点“上传”,这样文件将上传到树莓派中

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

五、修改SDK

1.用VNC打开树莓派

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

2.打开“main.c”文件,路径用红色框起来了

将自己的“TM_PRODUCT_ID”、“TM_DEVICE_NAME”、“TM_ACCESS_KEY”填入

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

3.在设备管理->设备详情中可以查看,对应代码中的信息我都标在旁边了

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

4.将获取传感器的代码放在和“main.c"一个文件夹里面,这里以DHT11温湿度传感器为例

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

DHT11.C

这里添加了”WiringPi"库,后面会教如何安装

#include <wiringPi.h>
#include <stdio.h>
#include <stdlib.h>
#include "DHT11.h"
#include <stdint.h>

// 其他代码...

typedef unsigned char uint8;
typedef unsigned int  uint16;
typedef unsigned long uint32;

#define HIGH_TIME 32

int pinNumber = 29;  //use gpio1 to read data
uint32 databuf;
uint64_t humi, temp;

void updateTemperatureAndHumidity() {
    if (readSensorData()) {
        humi= (databuf >> 24) & 0xff;
        temp= (databuf >> 8) & 0xff;
        printf("humi=%lld\n",humi);
        printf("temp=%lld\n",temp);
    } else {
        humi = 0;
        temp = 0;
                printf("humi=%lld\n",humi);
        printf("temp=%lld\n",temp);
    }
}

uint8 readSensorData(void)
{
    uint8 crc;
    uint8 i;

    pinMode(pinNumber, OUTPUT); // set mode to output
    digitalWrite(pinNumber, 0); // output a high level 
    delay(25);
    digitalWrite(pinNumber, 1); // output a low level 
    pinMode(pinNumber, INPUT); // set mode to input
    pullUpDnControl(pinNumber, PUD_UP);

    delayMicroseconds(27);
    if (digitalRead(pinNumber) == 0) //SENSOR ANS
    {
        while (!digitalRead(pinNumber)); //wait to high

        for (i = 0; i < 32; i++)
        {
            while (digitalRead(pinNumber)); //data clock start
            while (!digitalRead(pinNumber)); //data start
            delayMicroseconds(HIGH_TIME);
            databuf *= 2;
            if (digitalRead(pinNumber) == 1) //1
            {
                databuf++;
            }
        }

        for (i = 0; i < 8; i++)
        {
            while (digitalRead(pinNumber)); //data clock start
            while (!digitalRead(pinNumber)); //data start
            delayMicroseconds(HIGH_TIME);
            crc *= 2;
            if (digitalRead(pinNumber) == 1) //1
            {
                crc++;
            }
        }
        return 1;
    }
    else
    {
        return 0;
    }
}

void cgq()
{

    printf("Use GPIO1 to read data!\n");

    if (-1 == wiringPiSetup()) {
        printf("Setup wiringPi failed!");
        exit(1);
    }

    pinMode(pinNumber, OUTPUT); // set mode to output
    digitalWrite(pinNumber, 1); // output a high level 

    printf("Enter OS-------\n");
   // while (1) {
        pinMode(pinNumber, OUTPUT); // set mode to output
        digitalWrite(pinNumber, 1); // output a high level 
        delay(3000);
        updateTemperatureAndHumidity();
  // }
   
   
}

DHT11.h

#ifndef DHT11_H
#define DHT11_H
#include <stdint.h>

typedef unsigned char uint8;
typedef unsigned long uint32;

extern int pinNumber;
extern uint32 databuf;
extern uint64_t humi, temp;

void updateTemperatureAndHumidity();
void cgq();


uint8 readSensorData(void);

#endif // DHT11_H

5.打开tm_user.h文件

可以看到运用了三种函数

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

我们目前只需要在主函数中调用上报函数

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

6.在CMakeLists.txt中添加路径

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

六、配置树莓派

1.安装WiringPi库

(这部分教程我参考了这篇博客)树莓派4B镜像安装、安装wiringpi库_怎么下载wringpi到树莓派-CSDN博客

链接:https://pan.baidu.com/s/1GpnqFeX1UjKOvgya2WuYtA 
提取码:ncsk

提取WiringPi文件至树莓派的pi文件夹中

1)在终端输入

sudo apt-get upgrade
sudo apt-get update

如果下载速度慢的话按照下面步骤换源,正常的话就跳过下面换源步骤

换源,输入

sudo nano /etc/apt/sources.list

把之前的注释掉(前面加#),把这段加进去

deb https://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bullseye main contrib non-free rpi

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

2)在终端进入WiringPI文件夹

cd WiringPi/

3)输入

sudo chmod 777 build
./build

4)输入

gpio -v
gpio readall

出现以下界面,恭喜你安装成功!

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

2.安装cmake

1)在终端输入

sudo apt-get update
sudo apt-get install cmake

2)在CMakeLists.txt文件夹的最后一行添加:

target_link_libraries(${CMAKE_PROJECT_NAME} wiringPi)

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

3)在编译器里添加编译指令

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

七、接引脚

白框(右边第一个)接正,蓝框(右边第三个)接负,紫框(右边最后一个)接out

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

八、编译

按照以下步骤在SDK文件的终端中输入

(此部分可以参考Onenet文档中心的文档)

OneNET - 中国移动物联网开放平台 (10086.cn)

mkdir build              # 创建build文件夹
cd build                 # 进入build文件夹
cmake ..                 # 以../目录下的CMakeLists.txt生成makefile
make                     # 编译
./mqtts_onejson_soc      #执行,以MQTT协议为例

如果如图所示,恭喜你传输成功啦!

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

九、Onenet查看传输数据

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上),微信小程序,小程序

以上,树莓派获取传感器数据并上传至Onenet云平台就成功啦,下一篇我将介绍如何把Onenet云平台的数据传给微信小程序。

整体代码:

链接:https://pan.baidu.com/s/1G7Ck0QmPdVkEjfVUQlernA 
提取码:vsdv


因为Onenet平台经历了版本更新,之前在找教程的时候经常因为是旧版的教程,导致不知道很多地方的入口在哪,硬是在一些小地方花费了很多时间。所以本篇博客把每一步都尽可能的写详细了,这可能也导致了全文有些冗长。这是我的第一篇博客,希望能够对大家有所帮助,欢迎指正!😊文章来源地址https://www.toymoban.com/news/detail-842764.html

到了这里,关于用树莓派获取传感器数据通过Onenet云平台(物模型)传输至微信小程序(上)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • QML android 采集手机传感器数据 并通过udp 发送

    利用 qt 开发 安卓 app ,采集手机传感器数据 并通过udp 发送

    2024年02月02日
    浏览(49)
  • DHT11温湿度传感器(配合树莓派使用)

    DHT11是一种数字温湿度传感器,可以测量周围环境的温度和相对湿度。该传感器使用单个数字信号线与微控制器通信,具有较高的可靠性和稳定性。它适用于许多应用领域,如气象观测、室内环境监测、工业控制等。 DHT11传感器使用的基本原理是通过感应元件测量周围环境的

    2024年02月06日
    浏览(48)
  • 【代码】Android|获取压力传感器、屏幕压感数据(大气压、原生和Processing)

    首先需要分清自己需要的是大气压还是触摸压力,如果是大气压那么就是TYPE_PRESSURE,可以参考https://source.android.google.cn/docs/core/interaction/sensors/sensor-types?hl=zh-cn。如果是触摸压力就是另一回事,我需要的是触摸压力。 不过我整错了,一开始做成了大气压,后来又先做了原生的

    2024年03月19日
    浏览(45)
  • STM32模拟I2C获取TCS34725光学颜色传感器数据

    TCS34725是RGB三色颜色传感器,和TCS34727都属于TCS3472系列,在电气特性上略有差别,TCS34727相比TCS34725在I2C总线的访问电平上可以更低,而在I2C软件访问地址方面则一致。 TCS3472内部有4个PD(光电二极管),一个接收clear light(净光,未做任何处理),另外三个分别接收Red, Green,

    2024年02月16日
    浏览(58)
  • 使用 Qt for Android 获取并利用手机传感器数据(上篇)开发环境省心搭建

    现代手机拥有许多传感器,包括地磁、姿态、GPS、光照、温度、气压、摄像、声音、电磁等,完全就是一个高度集成的科学仪器。不夸张的说,一部手机加上一个外围的计算机和控制系统,做一个功能较强的自主移动机器人并不是不可能。但是,很多APP都只是局限于自身的功

    2024年02月03日
    浏览(45)
  • 【雕爷学编程】Arduino智能家居之光照传感器数据获取和远程控制

    Arduino是一个开放源码的电子原型平台,它可以让你用简单的硬件和软件来创建各种互动的项目。Arduino的核心是一个微控制器板,它可以通过一系列的引脚来连接各种传感器、执行器、显示器等外部设备。Arduino的编程是基于C/C++语言的,你可以使用Arduino IDE(集成开发环境)来

    2024年01月25日
    浏览(47)
  • 无线传感器基础:获取手机传感器、加速度

    一些实验过程中的疑问: 如何知道设备上有哪些传感器? 如果手机不支持的传感器,程序运行往往不会抛出异常,只是无法获得传感器传回的数据。那么如何知道设备上有哪些传感器可用呢?有两种方式,一种是直接方式,一种是间接方式。直接方式就是遍历获取得到传感

    2024年02月02日
    浏览(61)
  • STM32模拟I2C协议获取HDC1080温度和湿度传感器数据

    HDC1080是一款温湿度传感器,具有如下特点: 其中温度和湿度经过出厂校准。这里介绍STM32模拟I2C总线协议访问HDC1080的HAL库实现范例。 HDC1080的内部原理及电路连接如下: HDC1080具有低功耗特征,每次触发检测转换后进入睡眠状态,另外内部有一个加热电阻,在环境湿度高时,

    2024年02月11日
    浏览(122)
  • 使用 Qt for Android 获取并利用手机传感器数据(下篇)使用C++实现功能

    在上一篇,我们搭建了开发环境。本篇,使用C++代码真正实现功能。我们使用UDP协议从手机上指定发送的目的地、端口。效果如下图,完整工程参考https://gitcode.net/coloreaglestdio/qtcpp_demo/-/tree/master/android/sensors2pc: 移动端1 移动端2 桌面 我们建立一个Qt的Widgets程序,添加 positio

    2024年02月13日
    浏览(44)
  • SU-03T,通过串口输入播放数字,可以使用单片机读取传感器数据并播报

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 使用SU-03T,通过串口输入播放数字。 提示:以下是本篇文章正文内容,下面案例可供参考 第一步:先配置串口IO 第二步:配置触发方式串口输入 第三步:配置串口输入的参数,第一个参数选择int,可以

    2024年02月01日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包