以arduino为下位机,控制加热器和传感器。将读取的传感器数据上传到上位机。上位机是安装了ros的电脑或树莓派,通过获取到温度的变化情况控制加热器。


0.代码

github:https://github.com/zhangjiali1201/temp_control

arduino_exercise是感热灯的代码。

arduino_ntc是ros_arduino_bridge对应的下位机代码。

1.前言

使用ros开源包ros_arduino_bridge进行ros和arduino之间的通信。关于ros_arduino_arduino相关的实验,见之前的博客ros_arduino_bridge控制舵机。

使用热敏电阻的热敏灯实验,见之前的博客arduino学习笔记6 感热灯。

2.传感器

将热敏电阻用于测温控温装置是很常见的用法。热敏电阻本身范畴也比较大,从狭义上的热敏电阻NTC PTC,热电偶TC到薄膜电阻RTD等都算。

我手头也没有多少可用的元器件,只有好久以前买arduino组件的时候附带的两个负温度系数热敏电阻,具体型号不可考,也没有附带应用文档。

NTC热敏电阻会随着温度升高而减小电阻。

3.加热器

加热器暂时无可用器件,待定。暂时以输出1代表加热,输出0表示停止加热。

4.下位机代码

按常理,下位机部分代码应该根据传感器的技术手册所标明的控制方式编写和获取数据。

这里缺少参考,就只简单的获取一下数据。接线方式和传感器控制部分代码与之前的博客arduino学习笔记6 感热灯相同。

下位机代码比较简单,主要就是三部分,主程序、传感器和串口通信。具体见代码,不复杂。

5.上位机代码

首先下载一下ros_arduino_bridge,并切换到对应的分支,我这里系统用的是kinetic,所以切换到kinetic-devel.

$ git clone https://github.com/hbrobotics/ros_arduino_bridge.git
$ git checkout kinetic-devel

检查一下分支。

zjl@zjl-X550ZE:~/temp_control/ros_arduino_bridge$ git branchindigo-devel
* kinetic-devel

然后是修改主节点node.py(ros_arduino_bridge/ros_arduino_python/nodes)

在八十行左右添加一个获取温度的服务。

# A service to get temperaturerospy.Service('~getTemperature', GetTemperature, self.GetTemperatureHandler)

440行左右添加:

def GetTemperatureHandler(self, req):value = self.controller.get_temperature()return GetTemperatureResponse(value)

修改驱动代码arduino_driver.py(ros_arduino_bridge/ros_arduino_python/src/ros_arduino_python)

340行左右增加:

def get_teperature(self): #获取温度传感器的结果return self.execute_ack('t')

380行左右:

rospy.loginfo("Now print temperature sensors value:")values = myArduino.get_temperature()distances = np.array([values[0]])rospy.loginf(distances)

创建srv文件

---
float32 temp

基于Arduinoros的温度控制器相关推荐

  1. c语言单片机温度调节系统设计,基于单片机的温度控制器系统总体设计方案

    一.温度传感器分类与选择 温度是生活中常见的物理量,它与我们的生活实时相关,人类对温度研究一直在继续,经过多年发展已经有很多成熟的温度传感器在各个领域的得到了很好应用,下面介绍下温度传感器的分类和设计 ...

  2. 基于stm32温湿度采集平台开发

    基于stm32温湿度采集平台开发 ==这里记录一下自己以前课设报告,但是论文中图片和文字.公式太多了,懒得粘贴了,需要完整的私信== 摘 要 关键词 第一章 绪论 1.1 研究背景 1.1.1国内研究 ...

  3. Linux内核中最牛逼的温控方案——IPA(一)

    前言 首先请大家思考一个问题,当前移动设备的性能瓶颈究竟是什么呢? 抛砖引玉一下,笔者认为当前移动设备的主要矛盾是有限空间内的散热.续航以及增长的性能需求之间的矛盾.性能需求究竟是什么呢?其实是CPU ...

  4. 【毕业设计】单片机和stm32设计选题,proteues仿真、程序完整资料-转发分享

    题目:1854 基于单片机智能充电器系统设计仿真 程序 论文 摘要 在我们的日常生活中,手机已经变得越来越重要了.我们经常需要使用手机,打电话.发短信.上网.看电影.听歌.玩游戏等等.随着大屏幕和高主 ...

  5. 使用STC8A8K64S4A12单片机实现的“基于脉冲宽度调制(PWM)技术的智能温度控制器”

    笔者在校期间曾经自制过一个使用半导体制冷片制冷的小冰箱,一开始采用的是继电器控制,施密特触发器模式的温度控制,但实际使用上有十分多的缺点,因此制作一个使用PWM技术的温度控制器的想法就萌生了. 先来介 ...

  6. 基于51单片机智能温度控制器温控系统(毕设课设)

    本设计以AT89C51 单片机为控制的核心,硬件上外加温度传感器作为检测室内温度并且采集室内温度数据的工具,以及对室内温度自动控制的作用.其中对于温度的自由设定,用户可以用按键简单直观来实现,对采集回 ...

  7. 基于51单片机的智能鱼缸温度控制器protues仿真

    硬件设计 (末尾附文件) 代码设计 #include <reg51.h> #define uint unsigned int #define uchar unsigned char //宏 ...

  8. 基于Web SCADA平台构建数字化车间的MES系统

    数字化车间的MES系统与偏管理的信息化系统(如ERP.CRM.SRM等)最大的区别在于数据的"实时性",以传统的管理为主线的信息化系统因无法及时的将数据录入进系统,使得管理信息化中 ...

  9. 单片机温度控制器c语言代码,51单片机两路温度控制器设计方案

    原标题:51单片机两路温度控制器设计方案 本文提出了基于 两路 的设计方案,该设计方案采用两个DS18B20温度 ,采集两个不同地方的温度,通过AT89C51处理进行,由四位 数码管显示所测量温度,前 ...

最新文章

  1. 【机器学习】如何简单形象又有趣地讲解神经网络是什么?
  2. SWFLibrary类加载外部资源库
  3. [译] D3.js 嵌套选择集 (Nested Selection)
  4. 3D 音频技术产品介绍(1):Iosono the future of spatial audio
  5. dedecms 漏洞_dedescan一款织梦漏洞扫描器
  6. jdk1.8 ConcurrentHashMap
  7. php中如何滚动文字,HTML_网页HTML代码:滚动文字的制作,制作滚动文字 通过本章前面 - phpStudy...
  8. 啥时候js单元测试变的重要起来?
  9. PyTorch发布一周年:盘点社区和工程大事件,后来者居上态势已显?
  10. React Native Button使用
  11. Java Web应用开发实用教程,Java Web应用开发技术实用教程
  12. select2 使用详解
  13. Elasticsearch多种方案数据迁移
  14. 5e服务器优化参数,终极优化篇(7700KOC4.8G+1070默认+16GDDR43000)5E练枪图1080P700FPS...
  15. oracle11g broker,张欣橙Oracle11g配置DGbroker
  16. 小程序开发需要多少钱?
  17. 希望计算机专业都知道这些优质比赛
  18. 多维度数据分析是什么?该怎么做?
  19. Mysql如何才能走索引排序?
  20. 苹果电脑磁盘内存如何清理释放空间内存?

热门文章

  1. 单点登录cas综述之cas4.2.7服务端+cas客户端+示例程序+环境搭建说明-陈杰
  2. R语言 空间权重矩阵 foreclosures芝加哥地图
  3. 迟到的认可:计算机科学之父图灵将登50英镑新钞
  4. iphone sms 转到android,将iPhone SMS导入Android设备(反之亦然)方法记录
  5. 信息系统集成项目1 一般流程
  6. 【博客611】linux路由表机制
  7. WSL2 Ubuntu 换源
  8. Oracle授权及创建同义词
  9. 续:华夏文化之“我眼中的封建”之秦帝国与英帝国之殇(一)——秦国篇
  10. java课程设计视频播放器_在Java实现视频播放器(vlc)