第八章、EM1000远端鱼缸监控系统

2023-05-16

本章使用Tibbo EM1000-TEV硬件模块开发「远程鱼缸监控系统」,让用户更方便、更实时、更容易的获得家中饲养鱼之相关信息,不论外工作或出外旅游都能及时掌握其状况。EM1000-TEV设备可以链接鱼缸外围的装置,如:电灯、帮浦与恒温器等,另外也在鱼缸里放入传感器,如:水温器、溶氧量、PH值与导电度等,最后这些感测数值可透过EM1000-TEV之Web Server显示。

一、系统介绍

本范例所开发之「远程鱼缸监控系统」,是方便长时间需在外工作或者出外旅游,无法在家中照顾饲养的观赏鱼所建立的系统。用户可以透过网络和安装在鱼缸旁的EM1000-TEV设备做连结,让使用者可以清楚得知目前鱼缸里的情况,也可以透过EM1000-TEV控制外围电灯与投饵器等之开关,使用者可以视情况做动作或者调整,不用担心家中所饲养的鱼群状况。本范例架构图如图8.1.1所示,主要透过EM1000-TEV去控制水族箱内的设备与获取传感器资料,另外可以加上Camera与数据库等功能,不过本范例中不包含后两者。
在这里插入图片描述


图8.1.1 「远程鱼缸监控系统」范例架构图

二、设备安装与设定

本范例需要使用到EM1000-TEV的AI、DO、LCD与Web Server等功能,此些部份在本章中最后有详细说明,请读者自行参阅。

首先要说的是AI(analog input)讯号获取,这里需要搭配研华科技公司的ADAM 4017模块使用。利用EM1000-TEV上的TEV-IB0模块(如图8.2.1)搭配TB100转换模块(如图8.2.2)与研华科技ADAM 4017-AI转RS485模块进行(如图8.2.3的ADAM 4017模块,详细数据可以参考研华科技公司的网站)。其中,ADAM 4017模块是将AI的电压或电流讯号转换成RS485形式后进入TB100模块;TB100模块则是pass上述RS485讯号进入TEV-IB0模块,最后EM1000-TEV透过Tibbo Basic内的ser对象接收数据。
在这里插入图片描述

图8.2.1 EM1000-TEV实体图

TB100可以pass RS485格式之资料,不过TB100与TEV-IB0模块都需要先透过jump做相对应的设定,TB100的设定如图8.1.3所示,TEV-IB0模块的设定则如图8.1.4。

在这里插入图片描述

图8.2.2 TB100讯号转换模块

在这里插入图片描述

图8.2.3 TEV-IB0模块的设定

所有硬件都到位后,需要将其个别连接组合,比较需要注意的是ADAM 4017与TB100连接的方式,接脚对应方式如下:

•	TB100上编号8的脚位请连结到ADAM 4017上的「data+」
•	TB100上编号9的脚位请连结到ADAM 4017上的「data-」

接脚位置如图8.2.4所示。
在这里插入图片描述

图8.2.4 TB100上的第8与第9脚位位置

其次,在传感器部份,可包含有导电度、溶氧量、PH值与水温四种,都可以输出电压值,此部份读者可以视需要换成其它可以输出电压讯号的传感器,在此就不再赘述。撰写程序时需要注意将ser.interface设定成「PL_SER_SI_HALFDUPLEX」,默认值则是「PL_SER_SI_FULLDUPLEX」。TEV-IB0模组的RS485模式启动与设定方式如下程序代码所示:

sub on_ sys_ init( )
	'TODO: place "on_ _sys_ init" event handler code here .
	dim temp,rh as short
	init_1cd(), 呼叫ICD的设定
	io.num=PI_IO_NUM_0
	io.enabled=YES
		'Serial Port RS485
		ser.num = 0
		ser.baudrate = ser.div9600
		ser.interface = PL_SER_SI_HALFDUPLEX
		ser.interchardelay = 50
		ser.parity = PL_SER_PR_ NONE
		ser.rxbuffrq(1)
		ser.txbuf frq(1)
		sys.buffalloc
		ser.enabled = YES
end sub

获取到的数据格式如(1)所示,以「>」开头,以「+」号分隔一整组讯号,例如ADAM 4017具备有8个AI输入,如果全部都使用,那将会有7个「+」号分隔出8组数值。

 >+xx.xxx+xx.xxx+xx.xxx	(1)

这里透过ser对象获取到的是电压值,因此,最后还需要将电压讯号转成可读值,这部份的转换公式与传感器有关,一般这个可以询问传感器厂商来取得,或自行实验,利用回归得出对应公式再加以计算,此处我们则保留原电压值,不做任何转换计算,网页画面上直接显示电压值,并同时将结果更新显示到LCD屏幕上。
最后,就是外围设备控制部分,本范例主要控件目有加热器、帮浦、电灯与投饵器等。EM1000-TEV上的DO(digital output)控制模块,实体图如图8.2.5所示,Tibbo对其编号如图8.2.6中的TX2与TX3,也就是图8.2.1上的TEV-IB1模块。
在这里插入图片描述

图8.2.5 EM1000-TEV上的DO(digital output)控制模块实体图

在这里插入图片描述

图8.2.6 TEV-IB1模块实体图

本范例程序将透过程序指定开启TX2与TX3上各自的RELAY2与RELAY3继电器(relay)开关,分别控制电灯、帮浦、投饵器与恒温器。Tibbo将EM1000-TEV设备模块上的TEV-IB0与TEV-IB1模块从右到左依序编号成TX0、TX1、TX2与TX3,如图8.2.6所示。TX2与TX3上面各有3个继电器(relay),透过程控时需要搭配表8-1与图8.2.7进行。
例如要控制TX2板(图8.2.7上TX2的控制脚位号码=13)上的第3个继电器(relay),将其开启,首先需要看表8-1,得到TX2上面第3个继电器(relay)对应到的是DTR2,接着再看图8.2.7,DTR2的控制脚位号码=6,因此,程序代码需要做以下指定,其余以此类推:

1、指定TX2板(图8.2.7上TX2的控制脚位号码=13)

io.num = PL_IO_NUM_13_TX2

2、指定TX2上的第3个relay

io.num = PL_IO_NUM_6

3、启动该IO对象

io.enabled = yes

4、改变relay状态(切换TX2控制板上第3颗relay由normal opened变成closed,设定成LOW)

io.lineset(PL_IO_NUM_6,LOW)
表8-1、EM1000各版上的relay编号表 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200909160316414.png#pic_center)

在这里插入图片描述

图8.2.7 EM1000-TEV芯片接线图

三、系统程序

硬件模式设定完成后,我们建立本章范例需要的新项目,并将其命名为「EM1000_fish」,此范例程序将透过TB100与TEV-IB0模块获取传感器的模拟电压讯号,使用者可以透过网络进行监测,并同时将其显示到EM1000-TEV的LCD屏幕上。程序部份需要用到Tibbo Basic的「io」与「ser」两个对象,前者用于模拟电压讯号转换从ADAM 4017转换成RS485前的传输控制,后者用于讯号转换成RS485后的数据获取。
DO控制部分,TEV-IB1模块在Tibbo Basic中对应的对象是「io」。如上节所述,若要控制TX2模块上三颗relay,其完整控制程序如下所示:

sub_ on_ sys_ init()
	'TODO: place. "on_ sys_ init" event handler code here
	'指定TX2控制板
	io.num= PL_IO_NUM_13_TK2
	'指定TX2控制板上第1颗RELAY
	io.num=PI_IO_NUM_13_TX2
	启动io
	io.enabled=yes
	
	切换TX2控制板.上第1颗RELAY由normal opened变成closed
	io.lineset(PL_IO_NUM_13_TX2,LOW)
		指定TX2控制板上第2颗RELAY
	io.num=PI_IO_NUM_2
	启动io
	io.enabled=yes
	”切换TX2控制板上第2颗RELAY由normal opened变成closed
	io.lineset(PL_I0_NUM_2,LOW)
		'指定TX2控制板.上第3颗RELAY
	io.num=PL_IO_NUM_6
	启动io
	io.enabled=yes
	”切换TX2控制板上第3颗RELAY由normal opened变成closed
	io.lineset(PL_IO_NUM_6,LOV)
end sub

除了AI与DO控制功能外,本范例中我们将获取到的讯后透过EM1000-TEV内的WebServer进行发布与显示,另外更可以透过网页画面进行外围设备的控制,包含加热器、帮浦、电灯与投饵器等。
整个项目详细的范例程序就请读者自行参阅光盘内源代码,程序执行画面则如图8.3.1所示,我们可以看到传感器的值,同时可以透过网络画面直接控制加热器、帮浦、电灯与投饵器等设备。
在这里插入图片描述

图8.3.1 项目执行画面

技术支持:司成
联系方式:
seacer@protonmail.com
18538515890@163.com

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第八章、EM1000远端鱼缸监控系统 的相关文章

  • 初学STM32

    编译出错 xff1a Error L6002U could not open file o No such file or directory 原因 xff1a 汉化出问题
  • 百度可视化工具Sugar简单介绍以及使用说明

    百度可视化工具Sugar简单介绍以及使用说明 介绍使用指南免费试用快速入门 使用流程使用示例 这是我个人的第一篇博客 最近因为工作原因 xff0c 需要了解百度可视化工具Sugar xff0c 因此在这里做个总结 xff0c 同时也为自己梳
  • 四小时Jsp期末作业速成——MyBlog个人博客系统(javaweb:非框架)

    MyBlog个人博客系统 xff08 javaweb 非框架 xff09 目录第一章 系统简介 31 1 背景及意义 31 2 开发目的 31 3 开发环境 3 第二章 系统设计 42 1 系统分析 42 1 1 系统需求分析 42 1 2
  • 【已解决】Ubantu问题记录:在连接网线的情况下ubuntu系统ping网关不通以及无法上网

    问题背景 xff1a 我们的服务器配置了两张在同一网段下的网卡 xff0c 卡 eno4 连接以太网ip xff1a 192 168 2 10 网关192 168 2 1 卡 eno2 ip xff1a 192 168 2 12 网关192
  • ros知识点

    工作空间 一个典型的ROS工作空间目录结构如下 所有ROS程序都必须放置在某个ROS工作空间 workspace 下 xff0c 我们在主目录下创建一个名为catkin ws的ROS工作空间 ROS工作的空间名字可以随便取 xff0c 一般
  • 我有一个IT梦

    介绍 作为一名大二的学生 xff0c 接触计算机基础技术近乎俩年 xff0c 俩年来我愈加发觉计算机是一门发展力很强的学科 它多式多样 xff0c 更像是一种挑战 xff0c 对于好强的我来说 xff0c 越来越着迷计算机的世界 纵然未知的
  • Mac 自动代理切换

    Mac 自动代理切换 背景 xff1a 工作有时需要用goole搜索 xff0c 所以会配置一下公司提供的HTTP和HTTPS代理 xff0c 但是下班之后回到家 xff0c 只有公司内网才能访问代理 xff0c 所以还需要把代理关掉 每次
  • 仅拉取git远程仓库中特定的单个分支

    结论 拉取git远程仓库中特定的单个分支的关键在于 xff1a 调用git clone时候 xff0c 添加 branch选项与 single branch git clone git clone克隆远程仓库时 xff0c 默认会依次做以下
  • Windows10通过网线连接树莓派ubuntu server系统

    Windows10通过网线连接树莓派ubuntu server系统 材料 xff1a 烧录ubuntu server 18 04镜像的树莓派 xff0c 网线一根 xff0c Window10电脑 操作 Windows10通过网线连接树莓派
  • 树莓派安装ROS操作系统并配置VNC连接

    树莓派 4B xff08 2G xff09 的准备工作 一 烧录ubuntu server 18 04 LTS镜像二 ubuntu系统安装桌面三 树莓派开启VNC连接1 使用dconf editor2 开启桌面共享服务3 Windows端下
  • Vscode配置树莓派ROS的开发环境

    树莓派安装ROS系统和远程连接配置我的这篇博客 附上连接 xff1a https blog csdn net weixin 44815966 article details 112697896 开发ros机器人时 xff0c 为了方便开发和
  • ROS操作系统 opencv-python读取摄像头+rviz可视化

    ROS操作系统 opencv python读取摄像头 43 rviz可视化 一 安装opencv python二 opencv读取摄像头三 图片转换为ROS图片格式并且在rviz显示 测试环境 xff1a 树莓派ubuntu 18 04 5
  • Git 报错:Connection closed by remote host. fatal: Could not read from remote repository.

    Git deploy 部署报错 xff1a ssh exchange identification Connection closed by remote host fatal Could not read from remote repo
  • RabbitMQ详解(二):Docker安装RabbitMQ

    一 安装并运行二 其他操作 在Docker上安装部署RabbitMQ方便快捷 xff0c 不需要额外安装Erlang环境 xff0c 所以写该篇文章先来介绍如何在Docker上部署RabbitMQ 一 安装并运行 1 在docker hub
  • android 注解和反射 (入门以及使用)

    先来看一看今天的效果 代码效果 效果不重要 重要的是代码 注解 官方解释 从JDK5开始 Java增加对元数据的支持 xff0c 也就是注解 xff0c 注解与注释是有一定区别的 xff0c 可以把注解理解为代码里的特殊标记 xff0c 这
  • Linux ubuntu安装LLVM12+Clang

    安装之前确保安装cmake3 20以上版本 参考https blog csdn net weixin 42888638 article details 125617062 从官网下载安装包 llvm project 12 0 0 src t
  • 总线?什么是总线?

    近期 有些小朋友问我 xff1a Jing哥啊 xff0c 计算机好多基础我都不懂 xff0c 看编程视频讲到的时候 xff0c 什么数据总线 xff0c 地址总线我都不懂 其实阿Jing以前也有这个困扰 xff0c 一直困扰 xff0c
  • FreeRTOS学习 任务调度

    任务调度 任务调度实现在多个任务之间轮流使用CPU xff0c 他的主要工作分为三个阶段 xff1a 保存当前任务上下文到任务栈选择新任务恢复新任务的上下文 这三个步骤需要在中断服务函数中执行 xff0c 所以要求执行的速度要快 xff0c
  • FreeRTOS学习 信号量

    信号量 FreeRTOS 学习仓库 xff1a https gitee com killerp free rtos study 在深入理解了消息队列后 xff0c 信号量也就很容易学习了 因为信号量就是使用消息队列实现的 信号量是特殊的消息
  • Java-CSS基础选择器

    标签选择器 HTML标签作为标签选择器的名称 p为标签选择器 p 属性 font size 20px 声明 值 类选择器 lt 标签名 class 61 34 类名称 34 gt 标签内容 lt 标签名 gt class为类名称 xff1b

随机推荐

  • Java-CSS层次选择器

    层次选择器 后代选择器 选择器 xff1a E F xff08 两个选择器之间必须要以空格隔开 xff09 功能 xff1a 选择匹配的F元素 xff0c 且匹配的F元素被包含在匹配的E元素内 lt p gt 1 lt p gt lt p
  • arm-linux-gcc踩坑1

    嵌入式实验要用到交叉编译arm linux gcc xff0c 其中遇到一些问题 xff0c 记录如下 1 安装交叉编译器并更新环境 xff1a export PATH 61 PATH usr local arm 4 6 2 bin gcc
  • python实现基本算法之归并排序(Merge sort)

    基本算法之归并排序 Merge sort 基本算法 04 归并排序 Merge sort 算法 往期请看选择排序 xff0c 插入排序 xff0c 归并排序 xff0c 快速排序等等都发布的 xff01 欢迎大家批评指正 xff01 文章目
  • Linux学习笔记——第一章 Linux是什么如何学习

    前言 鸟叔的Linux私房菜第四版 学习笔记 1 Linux是什么 1 1 Linux是什么 Linux是一套操作系统 xff0c 就像Windows一样 操作系统会有效率的控制计算机硬件的资源分配 xff0c 并提供计算机运作所需要的功能
  • MaxWell的使用

    Maxwell的使用 1 Maxwell的概述 1 1 官网简介 This is Maxwell s daemon an application that reads MySQL binlogs and writes row updates
  • 对图像维度进行调整(升降维和调整顺序)

    图片路径 xff1a img path span class token operator 61 span span class token punctuation span span class token operator span d
  • 题目 3:逆函数随机采样

    题目 3 xff1a 随机采样 小透明 任务定义 已知 LaplaceX 随机变量X xff0c 它的均值为 0 xff0c 方差为 1 通过一个均匀分布的随机抽样 xff0c 实现对x p x 的抽样 xff0c 并得到对应的 100 个
  • VMware虚拟机如何为GPU直通启用

    查阅了很多资料是 目前的我的电脑显卡不支持 xff0c 基本上N卡的好多常用卡都不支持 具体可以查看以下内容 https www dell com support article zh hk sln288103 E5 A6 82 E4 BD
  • PX4 docker gazebo 安装踩坑记

    本来想在Linux上自己一步步搭建 px4的仿真gazebo程序的 xff0c 查了资料发现docker已经打包好了 xff0c 就直接找到这个目录 xff0c 跟着一步一步的安装 PX4 docker 但是在安装的过程中 xff0c 有一
  • 关于paddlepaddle使用推理模式时CUDA error:out of memory错误的解决办法

    在paddlepaddle的export py导出的模型 xff08 也就是生成 model params deploy yaml三个文件 xff09 xff0c 运行时报错Out of memory error on GPU 0 Cann
  • k8s学习(2)- 虚拟机搭建搭建Kubernetes集群(1.24.2)

    虚拟机搭建搭建Kubernetes集群 环境规划 虚拟机搭建配置网络解决和主机复制粘贴的问题使用MobaXterm连接虚拟机安装vmware tools xff08 建议使用MobaXterm xff09 配置yum源关闭防火墙关闭Swap
  • [enforce fail at inline_container.cc:145] . PytorchStreamReader failed reading zip archive: failed f

    weights span class token operator 61 span span class token string 39 yolov5s pt 39 span ckpt span class token operator 6
  • AX210 PCIE网卡 安装记录(linux)

    AX210 PCIE网卡 安装记录 win11 安装安装之前安装之后 Linux 安装 装了 win11 和 Ubuntu 双系统 xff0c 需要分别安装 win11 安装 安装之前 家里500M宽带 安装之后 卖家发的驱动装上没反应 自
  • 区块链学习(3)

    区块链学习 xff08 3 xff09 以太坊账户交易的数据结构交易中的nonce交易中的gasgas的计算交易的 value 和 data特殊交易 xff1a 创建 xff08 部署 xff09 合约 以太坊账户 外部账户 xff08 e
  • 社区公众号的解决方案

    用户一 xff1a BEABA纸尿裤小喵 粉丝圈的搭建其实还是挺方便的 xff0c 是立足于微信环境下的微论坛形式 xff0c 可以配合微信公众号或者群来使用 搭建的话 xff0c 客服会有指导后台操作也不算难 xff0c 摸索几次就学会了
  • 比较Dask,Ray,Modin,Vaex和RAPIDS

    看到了一篇文章 xff0c 在这儿记录一下 Modin xff0c Ray作为后端 通过安装这些 xff0c 您可能会看到仅更改一行 xff08 import pandas as pd 到 import modin pandas as pd
  • python 接口自动化测试

    python 接口自动化测试 requestrequests post data和json 的区别文件上传带cookie测试同一个session中完成多个请求测试 pytest命令行配置文件Pytest前后置条件生成allure报告数据驱动
  • 书籍《Continuous Machine Learning with Kubeflow》

    Continuous Machine Learning with Kubeflow 第一章k8s 架构k8s如何工作 k8s 组件NodeClusterPodDeploymentServiceService的类型 IngressNamesp
  • kubeflow 1.6.1 单机搭建

    kubeflow 1 6 1 单机搭建 manifest 形式搭建 xff08 失败 xff09 先决条件安装kubeflowk8s 1 25 以上升级 istio 遇到的问题解决MySQL 和 minio 的Pending状态CrashL
  • 第八章、EM1000远端鱼缸监控系统

    本章使用Tibbo EM1000 TEV硬件模块开发 远程鱼缸监控系统 xff0c 让用户更方便 更实时 更容易的获得家中饲养鱼之相关信息 xff0c 不论外工作或出外旅游都能及时掌握其状况 EM1000 TEV设备可以链接鱼缸外围的装置