香橙派上进行MQTT数据存储客户端开发(一)基本环境配置

news/2025/11/27 20:29:58/文章来源:https://www.cnblogs.com/agrifmixture/p/19279349

香橙派上进行MQTT数据存储客户端开发(一)基本环境配置

基本信息

云服务器配置:EMQX Cloud 类型为 Serverless
主机:Orangepi5max 16G (ARM64 架构) + 32G tf卡
系统:Orangepi5max_1.0.0_ubuntu_jammy_desktop_xfce_linux5.10.160(ubuntu 22.04)
系统配置说明:已经使用fishros更换系统源、python源,并安装vsccode

安装MariaDB

使用MariaDB作为数据存储,兼容MySQL协议

1. 安装 MariaDB

更新系统
sudo apt update && sudo apt upgrade -y
安装 MariaDB 服务器和客户端
sudo apt install mariadb-server mariadb-client -y
启动并设置开机自启
sudo systemctl start mariadb
sudo systemctl enable mariadb
运行安全初始化脚本(设置 root 密码、删除匿名用户等)
sudo mysql_secure_installation
如无特殊需要,全部选择Y即可
登录数据库
sudo mysql -u root -p

2. 创建数据库数据表

创建名为 'iot_data' 的数据库
CREATE DATABASE iot_data CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
验证数据库是否创建成功
SHOW DATABASES;
打开名为 'iot_data' 的数据库
USE iot_data;
创建数据表
CREATE TABLE sensor_data ( id INT AUTO_INCREMENT PRIMARY KEY, device_id VARCHAR(50) NOT NULL, temperature DECIMAL(5,2), humidity DECIMAL(5,2), timestamp DATETIME DEFAULT CURRENT_TIMESTAMP, INDEX idx_device (device_id), INDEX idx_timestamp (timestamp) );
查看当前数据库中的所有表
SHOW TABLES;
查看表结构
DESCRIBE sensor_data;
向传感器表插入数据
INSERT INTO sensor_data (device_id, temperature, humidity) VALUES ('sensor_001', 23.5, 65.2);

INSERT INTO sensor_data (device_id, temperature, humidity) VALUES ('sensor_002', 25.8, 58.7);

查看插入的数据
SELECT * FROM sensor_data;

安装conda

使用Miniforge来使用conda
Miniforge 是由社区维护的 Conda 发行版,原生支持 ARM64(aarch64),默认使用 conda-forge 频道(包含大量 ARM64 兼容包)

1. 下载安装 Miniforge(ARM64 版本)

在主目录打开terminal

wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-aarch64.sh

运行安装脚本

Miniforge3-Linux-aarch64.sh -b -p $HOME/miniforge3

初始化

$HOME/miniforge3/bin/conda init bash

重新加载shell配置或重新打开terminal

source ~/.bashrc

验证安装

conda --version
python --version

2. 创建虚拟环境

创建一个名为mqtt的python3.8的新环境,并加载环境

conda create -n mqtt python=3.8
conda activate mqtt

下载必要的包

1. mqtt相关

安装 MQTT 客户端
pip install paho-mqtt

2. 数据库相关

安装 MySQL 连接器(二选一)
pip install mysql-connector-python
pip install PyMySQL

3. 数据处理和可视化相关

pip install pandas numpy scipy matplotlib

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

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

相关文章

GEO 优化价格大比拼,哪家最便宜?三大高性价比机构推荐

GEO 优化已成为企业拓展本地市场、精准触达目标客户的核心手段。无论是线下门店引流、区域品牌推广,还是本地服务曝光,优质的 GEO 优化都能让企业在搜索引擎、地图应用等平台占据更靠前的位置,从而获取更多潜在客户…

2025年AI学习机哪个品牌好?热门品牌功能与效果全解析

2025年AI学习机哪个品牌好?热门品牌功能与效果全解析一、推荐背景与评价体系 最新教育硬件调研数据显示,2025年家长在选择AI学习机时最关注的三大痛点为:“学习内容是否精准适配”、“AI技术是否成熟可靠”、“学习…

2025年知名的长租公寓有哪些:权威榜单与精选解析

2025年知名的长租公寓有哪些:权威榜单与精选解析在城市青年的居住选择谱系中,焦虑正从零散的个体困扰演化为具有普遍性的时代命题。面对海量租房选项与参差的服务现实,许多人不得不在品牌公寓、中介平台与个人房源间…

编程中的枚举法与数学上的穷举法有何区别?

枚举法和穷举法在核心思想上都强调“逐一尝试所有可能性”,但在编程和数学中的侧重点、应用场景及实现方式存在显著差异。以下是具体对比及示例说明: 1. 核心区别维度 枚举法(编程) 穷举法(数学)目的 通过遍历所…

如百钱百鸡问题,枚举法和穷举法有何不同

百钱百鸡问题是一个经典的数学谜题,要求用100文钱买100只鸡,其中公鸡5文钱一只,母鸡3文钱一只,小鸡1文钱三只。求解公鸡、母鸡、小鸡的数量组合。枚举法和穷举法在解决该问题时,核心思路都是遍历所有可能的组合,…

2025年长租公寓排名:最新专业榜单与推荐

2025年长租公寓排名:最新专业榜单与推荐在城市青年的居住版图中,租房早已不只是找个落脚处,而是一次关乎生活品质与精神归属的系统选择。面对品牌公寓、中介平台与个人房源的多重岔路,许多人陷入“租房迷茫”——耗…

从零开始建网站在线客服系统:域名+服务器,到底怎么选才不踩坑?

🌐 从零开始建站:域名+服务器,到底怎么选才不踩坑? 你是不是也听过这种说法:“建网站嘛,域名和服务器肯定少不了!”——没错,这确实是铁律。但作为一个刚折腾完个人博客的过来人,我想告诉你:真正关键的,不…

根本魔法语言数组 (一) (C语言)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年租房品牌排名:TOP10权威揭秘与必读

2025年租房品牌排名:TOP10权威揭秘与必读在租房市场中,租客们常常陷入“租房迷茫”与“体验落差”的困境。他们在“品牌公寓”“中介租房”“个人房源”等众多选择中徘徊,租房过程繁琐,不仅耗费大量时间和精力,还…

Spring Cloud工程中使用Nacos配置中心的2种方式

先说结论 使用Nacos作为配置中心时,因工程配置文件名称的不同,配置Nacos参数的方式也有所不同。 如下示例使用的框架及服务版本信息为:Spring Boot:2.6.13 Spring Cloud:2021.0.5 Spring Cloud Alibaba:2021.0.5…

《程序员修炼之道:从小工到专家》阅读笔记5

1.纯文本的威力:坚持使用纯文本(如JSON, YAML,源代码)来存储知识。 好处:可读性、可移植性、易于被各种工具(如grep, awk, sed)处理。它是知识的“持久存储”最佳格式。 2.Shell的力量:不要轻视命令行。它是你的…

那为什么go 就能用同步的写法,而且不用协程的情况下,实现异步编程,而且还不阻塞os线程

这是一个非常棒的问题!你提到的 Go 语言 能用“同步写法”实现高性能异步 I/O,而且不阻塞 OS 线程,这背后是 Go 运行时(runtime)精心设计的 M:N 调度模型 + 非阻塞 I/O 封装 的结果。我们来一步步拆解为什么 Go 能…

人工智能之数据分析 Matplotlib:第三章 基本属性

人工智能之数据分析 Matplotlib:第三章 基本属性人工智能之数据分析 Matplotlib 第三章 基本属性@目录人工智能之数据分析 Matplotlib前言一. 绘图标记二. 绘图线三. 轴标签和标题四. 网格线五. 绘制多图使用 plt.s…

卡内基梅隆大学五位研究生获科研奖学金

某中心与卡内基梅隆大学合作设立研究生科研奖学金项目,支持五位研究生在机器学习、自然语言处理、计算机视觉等领域开展前沿研究,涵盖算法偏见审计、泛化能力评估等关键技术方向。五位卡内基梅隆大学学生荣获某中心研…

URL地址转base64

URL地址转base64/** * 请求图片地址,返回结果进行base64编码 * @param imgUrl * @return */public String requestUrlToBase64(String imgUrl){ String result = null; HttpURLConnection connection = null; …

2025年租房去哪里找房源:独家榜单与深度解析

2025年租房去哪里找房源:独家榜单与深度解析在城市青年的居住议题中,“2025年租房去哪里找房源”已从日常决策演变为带有普遍焦虑的时代拷问。不少租客疲于在品牌公寓、中介平台与个人房源之间反复权衡,既担心流程冗…

C# 图片加载引发的内存溢出异常

在c#中,使用下面代码将图片读取到内存,发现内存暴涨;由于现场图片切换较快,进而导致了现场程序跑了不久便报内存溢出异常了。 public static System.Windows.Media.Imaging.BitmapImage ByteArrayToBitmapImage(th…

实用指南:LV.5 文件IO

实用指南:LV.5 文件IO2025-11-27 20:06 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font…

CSS视图过渡入门指南:让多页面应用拥有丝滑动画

本文详细介绍了CSS视图过渡API的使用方法,从基础概念到实际代码实现,教你如何为多页面应用添加平滑的页面切换动画效果,包括浏览器支持情况和自定义过渡动画的技巧。CSS视图过渡入门指南 想象一下,你的网站可以在页…

《ROS1学习笔记8——自定义服务素材》

《ROS1学习笔记8——自定义服务素材》pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mona…