目录

树莓派如何与物联网平台交互搭建一个树莓派网关一

树莓派如何与物联网平台交互(搭建一个树莓派网关)(一)

树莓派如何与物联网平台交互(搭建一个树莓派网关)(一)

一、功能描述

​树莓派网关采集485温湿度传感器以及485门磁开关状态数据上报到涂鸦云平台;同时收到云端的指令,树莓派网关处理之后,控制继电器动作,同时继电器返回当前的状态给云端。

树莓派与涂鸦云平台交互代码:

树莓派与485子设备通信代码:

二、硬件准备

  1. 树莓派(Pi4B)

    https://i-blog.csdnimg.cn/blog_migrate/74beac09219f94ac4b329e64cc331434.png

​树莓派有两个串口可以使用,一个是硬件串口(/dev/ttyAMA0),另一个是mini串口(/dev/ttyS0)。硬件串口有单独的波特率时钟源,性能好,稳定性强;mini串口功能简单,稳定性较差,波特率由CPU内核时钟提供,受内核时钟影响。树莓派(3/4代)板载蓝牙模块,默认的硬件串口是分配给蓝牙模块使用的,而性能较差的mini串口是分配给GPIO串口 TXD0、RXD0。

​在默认状态下,serial0(就是GPIO14,GPIO15)是映射到ttyS0的(就是mini串口:/dev/ttyS0),ttyS0的特点是其工作时钟来自于CPU,CPU的时钟呢又是从600MHZ到1.5Ghz动态变化的,所以这个串口经常会因为时钟频率发生变化而发生错误,因此下面我没有用此串口和子设备通信。serial1(跟板载蓝牙相连)映射到ttyAMA0,ttyAMA0是硬件串口,它的时钟频不受CPU影响,因此下面树莓派和子设备通信采用了硬件串口(ttyAMA0)。

通过配置交换映射关系,把硬件串口ttyAMA0映射到(GPIO14,GPIO15)上。

最终映射结果可以通过执行命令:ls -l /dev来查看,发现串口 ttyAMA0设备节点以及ttyS0设备节点已经交换。

https://i-blog.csdnimg.cn/blog_migrate/8b3c03bd8380a0615f6cac7145002b9a.png

  1. 485转TTL模块

https://i-blog.csdnimg.cn/blog_migrate/8da2b93e17a999ecb479613cd6536674.png

DIR这个管脚控制485转TTL模块发送与接收的,当DIR高电平的时候为发送模式,当DIR为低电平的时候为接收模式。

  1. 路由器(可选)

树莓派可以连接路由器,也可以连接手机WIFI热点,打开SSH服务。(具体可以参照下面所述登陆树莓派的方法)

  1. 继电器模块(485通信)

https://i-blog.csdnimg.cn/blog_migrate/c7abac267c62095fa57ed0ba7bbaa3b6.png

  1. 温湿度传感器(485通信)

https://i-blog.csdnimg.cn/blog_migrate/dbd0ddb57fb61f642eb961024ddbad2c.png

  1. 门磁开关(485通信)

​ Modbus-Rtu 9600

https://i-blog.csdnimg.cn/blog_migrate/dac4bad0f7e6c6eefaa4967fd3c57ae4.png

  1. 电源设备(使用树莓派配置的电源插座即可)

三、硬件连接

https://i-blog.csdnimg.cn/blog_migrate/1f5e0f8fc2cba5283886580bdb3089e4.png

四、登陆树莓派

​ 如果没有了屏幕,就必须通过网络来登录和控制树莓派电脑,因此必须要有网络支持。我们可以通过手机开WiFi热点,然后修改树莓派的配置文件来连接手机网络,并且打开SSH服务(笔记本电脑也要连接手机的WiFi热点)或者把树莓派通过网线连接到路由器,电脑连接路由器的无线网,使得树莓派和电脑在一个局域网内,并且打开SSH服务。下面分享两种基于SSH网络登陆树莓派的方式。

1、利用路由器搭建局域网登陆树莓派

​ (1)用路由器搭建局域网,电脑无线或有线方式连接路由器,树莓派用网线连接路由器。一般来说,Raspberry会配置为DHCP,自动获取IP。

​ (2)登陆路由器,查看Raspberry的IP地址,在电脑的CMD下ping该IP地址,能够ping通。

​ (3)在SSH客户端输入该IP和端口号22,登陆Raspberry,输入用户名和密码即可。

2、电脑无线端口共享给有线端口登陆树莓派

​ 当没有路由器或者已连接但无法知道树莓派的确切IP怎么办,可以通过电脑的双网卡进行分配。一般来说,现在的电脑都支持双网卡,一个有线一个无线,那么可以直接将网线把电脑网口和树莓派网口连接起来,配置电脑的无线接口共享给有线网卡,并对有线网卡进行网络共享。前提是需要设置有线网卡的IPV4为DHCP模式。具体步骤如下:

​ (1)打开“网络和Internet”选项->更改适配器选项->WLAN属性->共享->允许其他用户通过此计算机的Internet连接来连接->选择有线网卡。( 手机开WIFI热点连接时,选择以太网。)

​ (2)设置有线网卡IPv4自动获取IP

​ (3)cmd 输入arp -a 查看以192.168.137.1 为网关的列表中出现的树莓派端口,通过插拔网线的方式,看多了哪一个IP,那个就是树莓派的IP。

​ (4)启用ssh,端口22, 访问ip为192.168.137.239

​ (5)连接SSH,输入用户名和密码即可。

五、产品创建

需要在涂鸦 IoT 开发平台创建产品,获取授权信息,然后将产品和授权相关信息写入到代码中,实现接入涂鸦云,详细步骤如下:

1、网关设备的创建

  • 登录 后,单击 创建产品 并选择 行业解决方案

    智慧工业

    工业网关 品类。

  • https://i-blog.csdnimg.cn/blog_migrate/46feff986c22545f7680c5f0073b0b02.png

    https://i-blog.csdnimg.cn/blog_migrate/808a7c29be5a8a57f5db96c813b38d76.png

  • 选择TuyaLink自定义方案,输入产品名称,设备类型选择网关设备,数据协议选择涂鸦标准协议,通讯协议选择以太网,点击创建产品。

    https://i-blog.csdnimg.cn/blog_migrate/716aae6b325d8b6c27e3f84f8ca5cd7f.png

  • 功能定义 界面,单击 添加功能 并填写相关参数,完成产品功能定义。(根据要实现的设备功能,创建好DP功能点)

    https://i-blog.csdnimg.cn/blog_migrate/95b50c3dee11865e905b7706e75d41ca.png

    https://i-blog.csdnimg.cn/blog_migrate/2fc93187730f494bf9597bbaffe91c15.png

  • 设备开发 界面,选择并下载 SDK 方案,单击 下一步 进入激活信息获取页面。

    https://i-blog.csdnimg.cn/blog_migrate/a39b1572d88e543177b43cb4f9254edd.png

  • 涂鸦提供免费的授权码供测试使用,您可以免费领取 2 个激活码,领取成功后,点击注册设备,即完成设备注册,设备相应信息会显示在下方

  • https://i-blog.csdnimg.cn/blog_migrate/c4e6c3acbe725915402b4df8a28beaee.png

    https://i-blog.csdnimg.cn/blog_migrate/38fdcb57bf3a35432c16215eab98e72b.png

  • 将注册的设备信息,填写到 examples/data_model_basic_demo/data_model_basic_demo.c 文件中,编译并运行 Demo 即可连接涂鸦云,关于编译的具体流程,请参考下文 编译执行 章节内容。

    https://i-blog.csdnimg.cn/blog_migrate/63e956c05df6698b9a1bf592f34173bd.png

    改之前:
    const char productId[] = "3jbcpefnn1jxxxxx";
    const char deviceId[] = "6ced2aa564727c01xxxxx";
    const char deviceSecret[] = "ac5d367db39xxxxx";
    改之后:
    const char productId[] = "t1tlm6p13aoxxxxx";
    const char deviceId[] = "6cf918e90b12f7b1fxxxxx";
    const char deviceSecret[] = "a5f23a3fb34xxxxx";
    注意:根据自己创建的网关产品PID,设备ID,设备密钥进行更改。

2、485子设备的创建

  • ​ 子设备的创建同上,只有操作到如下图的步骤时,按照下图圈出来的更改即可。

    https://i-blog.csdnimg.cn/blog_migrate/6db59fbe27b96d4191fb9b729caf6a7f.png

  • 子设备创建完成后如下图,在网关设备创建的时候,DP点已经创建,这里不需要再创建。

https://i-blog.csdnimg.cn/blog_migrate/e913500daa98b6cfa78bfabdfe514254.png

https://i-blog.csdnimg.cn/blog_migrate/7eceb079c03aeffa9811a2e334cb75e6.png

https://i-blog.csdnimg.cn/blog_migrate/474edae20b51e801c9bb4e534867d9da.png