+ -
当前位置:首页 → 问答吧 → 有冇人识写程式去控制水温?

有冇人识写程式去控制水温?

时间:2014-06-15

来源:互联网

如果我想保持某个温度,例如25度.
当24,26度识升或降返25度,有冇可能做到?

作者: wok12345   发布时间: 2014-06-15

写未必难,问题系hardware既API系乜

作者: McLoneIII   发布时间: 2014-06-15

可唔可以讲多少少?

作者: wok12345   发布时间: 2014-06-15

引用:原帖由 wok12345 於 2014-5-29 12:35 AM 发表
可唔可以讲多少少?
控制水温至少有两个硬件,温度计同发热/冷冻器。
制造温度计同发热/冷冻器既生产商会comes with硬件既driver(或者系API),同有关既document。
programmer就系用生产商提供既API既控制水温。

作者: McLoneIII   发布时间: 2014-06-15

引用:原帖由 wok12345 於 2014-5-29 12:35 AM 发表
可唔可以讲多少少?
我以前有个project系要读bar code scanner既bar code 数字,
bar code scanner既生产商会提供API俾programmer去用。

道理相同

作者: McLoneIII   发布时间: 2014-06-15

你讲果D一可唔可以一set买返尼?,
我试过用8051控制发热器最后都失败.

作者: wok12345   发布时间: 2014-06-15

引用:原帖由 wok12345 於 2014-5-29 01:04 AM 发表
你讲果D一可唔可以一set买返尼?,
我试过用8051控制发热器最后都失败.
通常呢D device会comes with driver/API同documentation.

作者: McLoneIII   发布时间: 2014-06-15

有冇直接方法去买或者DIY?

作者: wok12345   发布时间: 2014-06-15

引用:原帖由 wok12345 於 2014-5-29 01:19 AM 发表
有冇直接方法去买或者DIY?
你讲买check温度或发热device?

作者: McLoneIII   发布时间: 2014-06-15

我写过。用 SNMP+PDU。

作者: pc_chai   发布时间: 2014-06-15

引用:原帖由 wok12345 於 2014-5-28 11:08 PM 发表
如果我想保持某个温度,例如25度.
当24,26度识升或降返25度,有冇可能做到?
以现今科技,要 sensor 测出 0.1 ℃ 误差的温度应该不难。
http://en.wikipedia.org/wiki/Resistance_thermometer
提到非最高级的温度量度科技都有以下水平:
引用:...Secondary SPRTs are limited in temperature range (-200 °C to 500 °C) and are approximately accurate to ±0.03 °C over the temperature range...
那么每到 24 、 26 ℃ (容许约 10% 误差)才转 state 来改 output ,应该不难。

作者: xianrenb   发布时间: 2014-06-15

一定要PID control 先做到,还可以做飞弹追战机架,做温度控制很普通呀!

作者: benqfung   发布时间: 2014-06-15

引用:原帖由 benqfung 於 2014-5-29 10:04 AM 发表
一定要PID control 先做到,还可以做飞弹追战机架,做温度控制很普通呀!
应该不用那么高科技。

如果正常温度是低於或高於控制范围的话,硬件设计可能可以像以下图片般简单:

出自http://hbd.org/cdp/fridgctr/fridgctr.htm。

如果要同时考虑制冷及制热的情况,或者要两组类似的 circuit 。

制冷与制热输出不同,要作少许修改。

[ 本帖最后由 xianrenb 於 2014-5-29 01:11 PM 编辑 ]

作者: xianrenb   发布时间: 2014-06-15

引用:原帖由 wok12345 於 2014-5-28 11:08 PM 发表
如果我想保持某个温度,例如25度.
当24,26度识升或降返25度,有冇可能做到?
我唔明tim, 比较奇怪,
要解决一定要有专门 hardware, 唔系一般data processing, 程式.

如果已有"一套"相关 hardware, 一定有driver跟.
你个program at least can...
1. Read the temperature.
2. Kick the heater, cooler switch on (off)

SOLUTION
Intuitive: 24度 kick heater ; 26度 kick cooler.

作者: 111x111=12321   发布时间: 2014-06-15

Kick 完on 之后, 几时turn off 是一种艺术, 另一个control parameter.

你唔做呢件事, 一样work, 只系唔efficient.

作者: 111x111=12321   发布时间: 2014-06-15

我而家o既构思系买个温度控制既CONTROLLER,做起上黎会比较简单,但系输出系另一个问题

作者: wok12345   发布时间: 2014-06-15

引用:原帖由 wok12345 於 2014-5-29 02:29 PM 发表
我而家o既构思系买个温度控制既CONTROLLER,做起上黎会比较简单,但系输出系另一个问题
I suppose "tell the controller to turn on the heater/cooler" 就系输出,
Controller唔识 turn a switch on?

作者: 111x111=12321   发布时间: 2014-06-15

我所讲o既系硬件方面输出,例如w

作者: wok12345   发布时间: 2014-06-15

w

作者: 111x111=12321   发布时间: 2014-06-15

引用:原帖由 xianrenb 於 2014-5-29 01:08 PM 发表


应该不用那么高科技。

如果正常温度是低於或高於控制范围的话,硬件设计可能可以像以下图片般简单:

出自http://hbd.org/cdp/fridgctr/fridgctr.htm。

如果要 ...
呢个已经唔系「程式设计」既题目啦

作者: McLoneIII   发布时间: 2014-06-15

温度控制装置, 淘淘都有得买啦, 重有 display, 几旧水, 搅咁多野

作者: chirs3105   发布时间: 2014-06-15

引用:原帖由 McLoneIII 於 2014-5-29 03:47 PM 发表


呢个已经唔系「程式设计」既题目啦
其实香讨应该开一个“电子设计”版区。
这类题目应属电子设计问题。

作者: xianrenb   发布时间: 2014-06-15

I suppose 几张野

作者: 烟民比食屎9更贱   发布时间: 2014-06-15

8052,8062,都有开电器,和,关电器,你设定个TIMER,TIMER一到就开,TIMER一去就关,开关,开关. . . . .这样控制着,这是最简便的方法了. . . .

再不然就用8092.. . . .上淘宝应该有得买的。

作者: 111x111=12321   发布时间: 2014-06-15

引用:原帖由 kamchihau 於 2014-6-2 12:17 AM 发表
8052,8062,都有开电器,和,关电器,你设定个TIMER,TIMER一到就开,TIMER一去就关,开关,开关. . . . .这样控制着,这是最简便的方法了. . . .

再不然就用8092.. . . .上淘宝应该有得买的。
唔得.
唔系用 timer 定时控制.

系用感知温度去控制. Negative feedback mechanism.

作者: kamchihau   发布时间: 2014-06-15

Control, 最简单解释系 Input + Control algorithm (个program) + Output.
楼主据称问中间, 个 program点写.
但太简单了, too trivial. (14# : "24度 kick heater ; 26度 kick cooler.")

反而以 pc而言, pc只有keyboard/monitor/mouse/printer/barcode_reader/etc/etc, 手头无input / output for thermometer/heater 先系问题.

此题是 hardware sourcing & integration 的问题.

作者: 111x111=12321   发布时间: 2014-06-15

最最土炮简单方法系,
买个 热敏电阻做 thermometer, 用电阻数做 pc input (需要做 calibration).
买个 heater/cooler, 买个 relay(继电器), 用 serial port data line 做output, 用1V/5V之类去 kick 个relay, 个relay於是开著个220V既heater/cooler.

不过我重未谂到 pc 点 read 电阻/电压, Apple II 就得.

作者: 111x111=12321   发布时间: 2014-06-15

引用:原帖由 111x111=12321 於 2014-6-2 12:20 AM 发表
唔得.
唔系用 timer 定时控制.
系用感知温度去控制. Negative feedback mechanism.
这个我知道,我是说,把SENSOR放入TIMER中,SENSOR会运作得流畅一些,我朋友说过的。

8092的好处就是,他内置了3个SENSOR和6个TIMER,就是给我们这样用的。

作者: 111x111=12321   发布时间: 2014-06-15

引用:原帖由 kamchihau 於 2014-6-2 12:20 PM 发表


这个我知道,我是说,把SENSOR放入TIMER中,SENSOR会运作得流畅一些,我朋友说过的。

8092的好处就是,他内置了3个SENSOR和6个TIMER,就是给我们这样用的。
Why?

坏处example:
TIMER定义系 3min(e.g.)后sensor开动.
但依家23度, sensor没开动不知道要加热.

呢个系坏处唔系流畅喎.

作者: kamchihau   发布时间: 2014-06-15

驶咩咁麻烦,一块arduino board,一只relay,一支heater,一块温度计board,如有需要加埋制冷, 简简单单

作者: 111x111=12321   发布时间: 2014-06-15

引用:原帖由 wok12345 於 2014-5-29 01:04 AM 发表
你讲果D一可唔可以一set买返尼?,
我试过用8051控制发热器最后都失败.
即系你唔识program粒8051.
其实最易之一, 系呢part.

8051有4个port共 32条线 (可单独定址),
你是旦找条线驳去relay, relay负责开关 heater. 控制发热器就系咁简单.


你未搵既温度计, 可买 DS1821 (Digital, 三脚, -55 to 125度C, When 0-85 +/- 1度)

作者: yahoohung   发布时间: 2014-06-15

引用:原帖由 wok12345 於 2014-5-29 02:51 PM 发表
我所讲o既系硬件方面输出,例如w
如果你用 MCU 或 embedded system 的话,或者你的问题是不懂得如何驳 relay 或高 power 的东西。

基本上你要了解 output 的 digital signal level 是什么范围。
high 不一定是最高 VCC , low 亦不一定是完全 0 V 。
两者都有个 range 的。

跟住要了解 output 的 current 有几多。
不过按你的要求,看来就一定要利用一些 transistor 放大电流。
要知道 relay 或你想用的 device 要多大电流。

最普遍的类似电路设计,应是用一粒 NPN BJT , base 连一个 resistor 驳 MCU output , emitter 驳 ground , collector 连 relay 或你想用的 device 再驳到 VCC 。
relay 应有 diode 适当地并联。
想好 schematic 后,就是选用某一款 transistor 。
然后按 parameter ,计算电路中 resistor 应用什么数值。
进阶一点,可以做下 simulation 看结果是否如想像般。
LTspice IV 是个很好的免费工具。
http://www.linear.com/designtools/software/

[ 本帖最后由 xianrenb 於 2014-6-5 10:27 AM 编辑 ]

作者: 111x111=12321   发布时间: 2014-06-15