Don't burn your kitchen down

中秋日临近, 要回去看看的感觉, 愈发的增加

[掐指状] 莫非家中有事?

看看日历, 不知觉, 在外面已经两年了.


好吧!


---- 2015-09-20

------ ✈


# I am back

什么 ? 家里着火了 ??

两次 ?

 

很久没有回来了, 进门感觉还是跟几年前将离开时候一样.

一样亲切.

晚饭很快弄好了,

吃饭时, 聊着这两年家里的一桩桩一件件.
原来, 家里失火了,

两次.

而且每次都是因为因厨房而起,

Case 1: 第一次是厨房煮了东西, 然后不记得了, 人就上班去了.

Case 2: 第二次是厨房煮着东西, 然后人看电视, 看着看着睡着了.

吃完饭, 一边重新布了厨房所有的电线(照明灯和消毒柜),

换了开关,

换了排气扇,

清理了燃气灶上的油渍残渣

(本人现场勘察, 实际测试, 现场重现, 得出结论: 锅烧干后, 燃气灶上逐渐高温, 首先就是这里的油渍先起火).

一边在想, 这么干可不乐观啊, 弄不好就把楼给点了.

有什么法子呢?

  1. 天花板装消防喷头?
    不行!
    等它喷起来, 就表示已经烧起了! (天花板上的喷头是烟雾探测器. 再者, 厨房难以完全的杜绝烟雾)

    再者, 这个的安装实现涉及很多实际操作中不容易实现的,

    如消防水管安装就是一个大障碍.
  • 厨房高温警报? 然后切断燃气?

    可以考虑.

    看看还有没有更好点的

# Idea!

第二天早,

要出门,

忽然看到门后贴着一张A4纸, 上书:

"出门前检查火源是否关闭!"
 

我: 这干嘛用的?

父: 哦, 这个啊, 第一次厨房事故后, 专门到办公室打印好. 贴在门上, 出门警示用的.

我: 呵呵 不错哦 有效吧

父: 嗯 不错

母: 什么啊, 后来(厨房)还不是又烧了一次.

父: ...

我: ...

父: 后面那次不一样, 那次是没出门(所以并没有看到警示牌), 在屋里睡着了...

我: ...

[片刻后]

我: 让我来弄吧! 我想到怎么来了!


# 思路

  1. 门上安置一个报警器 ("从机", 接收端).
    业务逻辑:
    1. 当厨房有火的时候, 报警器的闪灯自动亮起.

      [解决 case 1: 出门忘关火]
    • 当厨房有火的时候, 报警器每3分钟警报声响起.

      [解决 case 2: 睡着忘关火]
      1. 报警声持续响起不停止, 直到有人进入厨房一次
      • 如果报警声响起, 一直到9分钟(追加备注: 在使用了一周后, 依据用户建议, 由原定的9分钟缩短为6分钟. 理由是 "6分钟, 锅里菜还有救", 这是后来的故事了) 还没有人到厨房的话,

        自动切断燃气供应.

        [补充解决 case 2 的未知情况, 比如: 连报警声都闹不醒的熟睡情况]

  • 厨房安置一个主机 ("主机", 发送端)
    业务逻辑:
    1. 当燃气打开的时候, 主机上的温度传感器感应到温度. 发送指令{1}给接收端.

      [告知门口报警器, 此时厨房正在用火]
    • 当燃气打开, 并且厨房没有人的时候, 则主机开始计时.
      1. 计时达到3分钟, 发送指令{2}

        [告知门口报警器, 厨房无人监管, 已超过3分钟]
      2. 计时达到9分钟, 不再发送指令, 而是直接切断燃气.
      3. 计时在3-9分钟内, 如果有人进入厨房, 则重新开始计时.
    • 当燃气打开, 但是厨房有人, 则主机无需计时.

我: 怎么样

父: 听起来不错哦, 要是能做这个, 那就好多了!

我: 那就开动!

父: 啊? 现在?

我: 是啊, 现在下单, 过两天零件就到了

父: 在这边现做啊?

我:

父: 会不会不好做啊? 太耽误你正事时间

我: 不会的啦, 零件一到, 借用办公室电脑调试一下程序, 顺利的话, 过几天就可以用上了


(其实, 此时心里的话是:)

我: 换别个就不知道要做多久了, 你的儿子我嘛, 碰巧兼了软件硬件... 零件都齐了, 一天就做给你咯

(实际情况是这样的么? 呵呵 当然不是咯 开发环境跟生产环境差异带来的影响不是一点点, 后面提到几个)

# 开始调试

漫长的等待, 零件陆陆续续的 都赶到了.

List:

从机:

No. Name Amount Desc.
1 Arduino Nano 1 Microcontroller 门口从机用
2 BLE 4.0 module 1 蓝牙模块,主从机无线通讯用
3 Buzzer module 1 蜂鸣器, 声报警用
4 Full color LED module 1 全彩 LED, 光报警/状态指示用
5 Power suply DC 5V 1 5V 电源及 3 米长 USB 线

主机:

No. Name Amount Desc.
1 Arduino UNO 1 Microcontroller 厨房主机用
2 BLE 4.0 module 1 蓝牙模块,主从机无线通讯用
3 Buzzer module 1 蜂鸣器, 声报警用
4 燃气热电偶 1 燃气热电偶. 探火焰温度用
5 K型补偿线 4 米 1 K型热电偶专用延长线
6 K型补偿线插头(公) 2 K型热电偶延长线用
7 K型补偿线插座(母) 1 K型热电偶延长线用
8 K型补偿线插座(面板) 1 K型热电偶延长线用
9 K-热电偶 module 1 配合燃气热电偶使用. K型
10 4位数码管 1 4位 LED 数码管. 显示温度和报错用
11 红外感应模块 1 红外感应模块, 人体侦测感应用
12 时间模块 1 断电保存时间用
13 5V 降压稳压模块 1 12V转5V给 Arduino 供电用
14 12V 直流电源 1 主机供电以及提供电磁阀控制电流
15 Gas solenoid valve 12V/2A 1 燃气电磁阀. 切断燃气用.12V 供电
16 电磁阀控制延长线 1 耐压12V/2A的二芯铜导线
17 继电器 1 继电器. 控制电磁阀状态
18 接线柱 2 5*2.1mm 接线端子
19 直径6mm 耐温管 1 1米
20 直径3mm/5mm/6mm 热缩管 1 各1米
No. Name Amount Desc.
1 电脑一部 1 安装有 Arduino IDE 的电脑一部.

Note:
1. 遇到了 Mac 10.11 不认 Arduino Nano.
2. 遇到了 Windows 10 不认 Arduino Nano.
3. WindowsXP/8(另外安装驱动) 可以认 Arduino Nano.
1 合适的外壳两个 2

封装从机和主机用.
我这里用的分别的是,
从机: 电话分线器盒.
主机: 空调温控器控制器盒.
如果有条件自己制作就更好了.
比如 3D 打印什么的.

2 刀枪棍棒 n 螺丝刀
电烙铁
手电钻
砂轮
刻刀
覆铜板
导线若干

Wol! 好长的清单!

实际过程中测试过的东西, 比这里要多.
比如还包括:

  1. 一个红外火焰探测模块.
    • 这个成本最低, 3块. 如果能用, 是比较理想的. 因为这里没有太高的精度要求.

      但是实际测试, 发现误报率太高, 可见光对它的干扰非常严重. Pass

  • 红外非接触测温模块

    • 成本70块. 非接触式测温. 精度高.

      测试发现探测的距离达不到想要的要求.

      需要另外安装光学透镜来加强. 然后发现红外光学透镜的调试以及安装固定比较繁琐, 并且使用透镜后依旧不理想(1米可以探测到温度 但是准确度很差, 温度显示60多度, 而此时测试是对着800度以上的火焰测试的).

      测试过程中, 发现另外一款更远距离的红外测温模块(自带安装好的透镜. 没有具体的试用测试, 因为觉得价格偏高了. 180块).

      况且光学透镜的, 对使用环境一般要求比较高. 厨房油烟环境下,

      长时间工作下, 稳定性难以得到保障.

  • 最后用了什么方案呢? 用了有线的测温方案.

    • 燃气热电偶测温. (此时想起, 燃气灶里普遍使用的熄火开关, 就是K型热电偶. 成本 4-15块)
    • 搭配一个 K型热电偶模块(将热电偶的微弱的毫伏级电信号转化为 Arduino 可读的具体温度值. 成本 45块. 目前能买到的最贵的, 也是最快的).

  • 可燃气体检测模块

    • 当汤水溢出, 浇灭了火焰的时候, 燃气发生了泄露

      (当然现在多数燃气灶都配置有熄火保护开关了),

      此时, 需要一个探测器来检测到这个情况,

      空气中燃气浓度达到设定值时, 切断电磁阀.

      (这个已经拿到了, 但是在本次版本中没有安装使用, 让用户先反馈一下第一版使用情况. 下一版本考虑加入)

  1. 一个 5V电源和一个12V电源. 为什么要用那个 12V电源?
    • 因为那个买到的电磁阀的工作电压是 12V(1-2A).
    • 连带的需要买一块 12V转 5V的降压模块,降压给 Arduino UNO 供电

      (虽然 Arduino 官网说 UNO 的 Vin 范围可以是 5-12V. 但是为了防止意外情况, 还是选择了降压)
    • 为什么不直接买一个5V 升12V 升压模块, 来驱动电磁阀?

      (一般的5V 电源电流都比较小(2A以下). 在电磁阀闭合瞬间, 消耗掉大量的电流,

      足以让 Arduino 欠压重启了. 而现在配置的电源是 12V/5A)
  • 为什么是这些零件不是别的? 为什么选用 Arduino? 为什么选用蓝牙?
    • 思路清晰后, 其实很多实现方案. Raspberry Pi | Arduino 都行. 或者直接摆一台家用电脑主机在厨房都是可以的.
    • 选型, 选择使用 Arduino + BLE, 主要原因有:
      1. 低功耗, 因为设备要长时间(基本是全天候)开机, 功耗问题不能不考虑.
      2. 稳定. 设备工作环境是厨房(温度变化, 湿度变化, 空气烟尘), 不能恶劣环境下罢工的情况.
      3. PC 功耗大, Raspberry Pi 功耗合适, 但是因为有一个可插拔的存储卡. 而这种结构在恶劣环境下, 往往是最先开始出现问题的(触点氧化, 接触不良等). 所以选 Arduino.
      4. 为什么选用蓝牙? 为什么不是WIFI, 要稳定可靠, 为什么不是有线? 因为蓝牙连接的是从机和主机的通讯, 而即便蓝牙忽然失效了, 也不会影响主机的正常工作. 所以 无线方案即可. 至于为什么是蓝牙, 因为 BLE 4.0 的功耗小于 WIFI.

其它实际环境(可能)遇到的问题

开发环境, 就是物理实验室里模拟的无摩擦力的理想状态.

  1. 红外非接触测温模块在厨房环境的使用问题.
  • 热电偶的干扰问题.
    • 热电偶两端金属产生的电压极其微弱, 很容易受到周边的干扰.

      引起电压波动, 引发无法读数(或者无法准确读数)的问题.

      比如, 手或者金属接触到探头, 就会偶发性的引起读数错误.

      这在电脑前调试的时候, 居然一切都是正常的(是的, 包括用手无论怎么去触摸探头).

    • 调试完毕, 拿到厨房测试的时候, 问题就来了.

      无法读数, 不管是手碰倒探头 还是探头碰到燃气灶上的金属, 都会触发错误(为了这个莫名的错误, 检测了好几个钟头, 还以为是接线松动, 然后全部重新接了一遍)

    • 如何解决?

      • 选用带屏蔽层的测温补偿线(线材的成本直接从 0.8块/米, 变为 10块/米)
      • 选用 K型补偿线专用的插头插座.
      • 屏蔽层接地(这个没有做, 因为没有合适的接地编织线, 而且地线让普通用户在厨房安装设备的时候顺便做好接地, 颇有难度. 经过改良后, 探温错误率大大降低. 基本满足本系统的需求了)
  • 停电问题
    • 实际环境中, 难以预料会不会中途停电(或者因为市电波动, 导致设备 reset 重启), 电压不稳.
    • 理论上, 计时到9分要求切断电磁阀.

      如果在计时到8分50秒 忽然重启了, 则计时器又会从零开始了(Arduino 变量都是内存中存储, 断电即会失效),

      那就表示要再计时9分钟才能切断燃气了, 后果不好预测.

      怎么办? 加一个时间模块(自带纽扣电池, 掉电保持记录)
    • 如果不是重启, 而是彻底停电呢?
      • 这个只能靠加一块电池给整个系统供电了(包括驱动电磁阀. 一个 3000mAh的锂电池足够应急用个把月了. 不过, 目前版本并没有电池盒, 下一版考虑)

# Test

模拟客户角色, 该设备在厨房24小时开机 使用了一周 (7*24小时开机工作).
第一道测试通过!

# Package

打包, 发货!

(因为, 在中秋回家预定返程时间到了的时候, 有几个后期追加的零件还没有到, 所以只好先回程, 回程后继续制作了, 做好了, 快递发回, 客户按图安装.
呵呵, 这当真不是简单到一天可以做完的事情啊, right?
Anyway, 没有什么比性命安全更重要. 厨房都点了, 那还怎么愉快的做美食呀 : )


设备图

主机
alt

主机 + 从机
alt

主机 + 从机 (带壳)
alt

从机
alt

温度探头 和 专用补偿导线
alt

主机 (圆顶的是人体感应传感器. 方形的是主机显示屏)
alt

主机 (顶部接口)
alt

从机
alt

全家福
alt


主机外壳, 来自一个拆下的中央空调温控器外壳.
从机外壳, 外壳看上去相当专业, 尺寸也刚刚好. 来自一个旧的电话分线盒, 经过开孔, 打磨抛光. 在没有 3D 打印外壳的支持下, 能出这样一个外壳, 相当了不起了.
温度补偿线和专用插头(图中黄色的线和插头), 内置屏蔽网, 质量非常棒, 手感还很柔软.

收到包裹后, 用户来电:

父: 啊? 你买的原装的啊?
我: 呵呵 很像么? (呵呵 这定制的设备哪有原装的呀, 当然是你儿子我做的啦)
父: @@


附带的安装图解

alt

 

alt

 

alt

 

alt

 

alt


# Epilogue

< 河夜 >

距离上一次在家乡过中秋夜, 算算有十年了.


入夜,
白天积的, 火辣辣的热气, 依旧不愿散去.

小船徐徐前进, 夜里的河面上, 清风拂面而过, 居然是水草味的风.

嗯~~~~


好清凉啊!


闭上眼睛...



突突突突...


静静的河夜 伴着身后微微的马达声



突突突突... ...








---- 记录自南方的水乡之夜


Don't burn your kitchen down
Share this