喷淋实验--嵌入式实训

喷淋实验--嵌入式实训

1.MQTT通信原理



采集信息:

小程序/Linux 订阅者 1703161172612/AIOTSIM2APP

元宇宙 发布者 1703161172612/AIOTSIM2APP

Linux订阅的主题是元宇宙发布的主题


控制设备:

小程序/Linux 发布者 1703161172612/APP2AIOTSIM

元宇宙 订阅者 1703161172612/APP2AIOTSIM

Linux发布的主题是元宇宙订阅的主题

2.MQTT库的移植

目的:让Linux操作系统支持MQTT通信。

  1. MQTT库移植的步骤在群文件中下载MQTT源码文件压缩包paho.mqtt.c-1.3.0.tar.gz
  2. 将源码文件压缩包放到Linux操作系统中
  3. 使用tar -xvf paho.mqtt.c-1.3.0.tar.gz命令解压MQTT库文件压缩包

4.         cd paho.mqtt.c-1.3.0/install/

            sudo cp include/* /usr/include/

            sudo cp -d lib/*so* /usr/lib/

3.代码流程

打开MQTT
订阅主题(元宇宙的发布主题)while(1)
{
获取数据
if(数据   >   最大值)
{发送消息(给元宇宙的订阅主题发消息,喷淋关);
}
else if(数据   <   最小值)
{
发送消息(给元宇宙的订阅主题发消息,喷淋开);
}
打印数据;
sleep(1);
}
关闭MQTT;

函数接口:

打开MQTT
mqtt_init();订阅函数和发布函数
int mqtt_subscribe(const char *topic)
功能:订阅主题
参数:元宇宙发布主题int mqtt_publish(const char *topic, char *msg)
功能:发布消息
参数:元宇宙的订阅主题	消息获取数据
float get_virtual_env()
功能:获取土壤湿度数据
参数:空关闭MQTT;
exit_mqtt();

#include<stdio.h>
#include"mqtt.h"
#include<unistd.h>int main(int argc, char *argv[]){//1-连接服务器mqtt_init();//2-订阅元宇宙平台主题,获得数据串//通过目标节点的发布主题,才能的得到发布的内容mqtt_subscribe("1703406852492/AIOTSIM2APP");//3.定义变量接收到存储解析的数据float soilHum=0;//4.循环获取数据,下发控制指令while (1){sleep(1);soilHum= get_virtual_env();if (soilHum>80){mqtt_publish("1703406852492/APP2AIOTSIM", "{\"irrigated\":false}");mqtt_publish("1703406852492/APP2AIOTSIM", "{\"alarm\":true}");printf("关闭喷淋,警报响起。。。。\n");}else if (soilHum<10){mqtt_publish("1703406852492/APP2AIOTSIM", "{\"irrigated\":true}");mqtt_publish("1703406852492/APP2AIOTSIM", "{\"alarm\":false}");printf("打开喷淋,警报关闭。。。。\n");}sleep(1);printf("当前湿度:%.2f\n", soilHum);}exit_mqtt();return 0;
}

运行结果:

运行视频如下:

喷淋实验--实训

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/296976.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

向华为学习:IPD运作-PDP产品开发流程-概念阶段的关键活动

如大家所了解的&#xff0c;IPD集成产品开发体系先从需求着手&#xff0c;通过市场管理流程&#xff08;MM&#xff09;保证做正确的事&#xff0c;再通过产品开发流程&#xff08;PDP流程&#xff0c;很多时候直接称作IPD流程&#xff09;保证把事情做正确。整个过程两个流程协…

[前端已死论]——“Java 已死、前端已凉”

一、为什么会出现“前端已死”的言论 信息溯源&#xff1a;“前端已死”的论调是如何传播的&#xff1f; - 知乎 前端已死的真相&#xff01; - 知乎 好几次看到有其他程序员说&#xff1a;“前端已死&#xff01;”&#xff0c;这句话虽然太极端了&#xff0c;但是我是比较…

Ubuntu 20.04使用Livox Mid-360

参考文章&#xff1a; Ubuntu 20.04使用Livox mid 360 测试 FAST_LIO-CSDN博客 一&#xff1a;Livox mid 360驱动安装与测试 前言&#xff1a; Livox mid360需要使用Livox-SDK2&#xff0c;而非Livox-SDK&#xff0c;以及对应的livox_ros_driver2 。并需要修改FAST_LIO中部…

操作系统 day18(死锁)

死锁 定义 在并发环境下&#xff0c;各进程因竞争资源而造成的一种互相等待对方手里的资源 &#xff0c;导致各进程都阻塞&#xff0c;都无法向前推进的现象&#xff0c;就是死锁。发生死锁后若无外力干涉&#xff0c;这些进程都将无法向前推进。如下图&#xff1a; 死锁、饥饿…

这一平台只要把握住风口期,自己就能当老板!

我是电商珠珠 短视频渐渐走进大家的视野&#xff0c;改变了大家的日常娱乐方式。从19年开始&#xff0c;抖音开始发展电商平台-抖音小店。 在改变大家娱乐方式的同时&#xff0c;还将直播电商的热度掀了起来&#xff0c;由此改变了大家的购物方式&#xff0c;给大家带来了方便…

蓝桥杯 1223 第 2 场 小白入门赛

蓝桥小课堂-平方和 模拟 1 2 2 2 3 2 ⋯ n 2 n ⋅ ( n 1 ) ⋅ ( 2 n 1 ) 6 1^22^23^2\cdotsn^2\dfrac{n\;\cdot\;(n 1)\;\cdot\;(2n1)}{6} 122232⋯n26n⋅(n1)⋅(2n1)​。 write(n * (n 1) * (n * 2 1) / 6);房顶漏水啦 m a x ( 最大的行 − 最小的行 , 最大的列 −…

手把手教你制作简易计算器

实现过程&#xff1a; HTMLCssJS 具体通过标签实现计算器整个的框架 通过Css样式实现计算器页面布局及框架优化 通过JavaScript算法实现计算器计算过程 次实验过程&#xff1a; 背景图片背景音乐&#xff08;看个人意愿加&#xff01;&#xff09; 安排&#xff1a; <!--HT…

手写Vue2源码

手写Vue2 使用rollup搭建开发环境 使用rollup打包第三方库会比webpack更轻量&#xff0c;速度更快 首先安装依赖 npm init -ynpm install rollup rollup-plugin-babel babel/core babel/preset-env --save-dev然后添加 rollup 的配置文件 rollup.config.js import babel f…

RIPEMD加密算法:原理、应用与安全性

一、引言 在信息时代&#xff0c;数据安全愈发受到重视&#xff0c;加密算法作为保障信息安全的关键技术&#xff0c;其性能和安全性备受关注。RIPEMD&#xff08;RACE Integrity Primitives Evaluation Message Digest&#xff09;加密算法作为一种著名的哈希函数&#xff0c…

[工具]java_sublime的快速使用

目录 使用 : 怎么运行: 调整字体: 使用 : 新建--->写好代码后-->另存为尾缀是.java的文件 怎么运行: 在你另存为的目录下cmd调用控制台输入dos指令--->执行javac 文件名.java(有.java尾缀)(编译为.class文件)--->java 文件名(没有.class尾缀设计者认为执行的是…

计算机找不到msvcp140.dll怎么办,msvcp140.dll丢失如何修复

在计算机使用过程中&#xff0c;我们可能会遇到各种问题&#xff0c;其中之一就是某些dll文件丢失。DLL文件是动态链接库文件&#xff0c;它们包含了可以被多个程序共享的代码和数据。其中之一就是“msvcp140.dll丢失”。这个错误通常会导致某些应用程序无法正常运行。为了解决…

C# WPF上位机开发(子窗口通知父窗口更新进度)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 这两天在编写代码的时候&#xff0c;正好遇到一个棘手的问题&#xff0c;解决之后感觉挺有意义的&#xff0c;所以先用blog记录一下&#xff0c;后…