话说, 用了自己半辈子的积蓄加上老婆家人一辈子的积蓄, 再加上我老爸老妈一辈子的积蓄,终于在上海买了一间一亩三分地的房子,砸锅卖铁装修完后, 还没有搬进去, 通风透气了快半年了,可老婆总是说家里还是有味道,我也想检测一下,但是市面上甲醛检测仪器的价格都比较贵, 也不经常会用到,这个市场有时候很小众, 现在的很多新风系统上就能够检测, 但是又不想买新风系统, 不是不想买,是没钱.....反正是各种没钱, 没钱怎么办? 很快要搬家,最近收拾东西的时候, 突然发现角落里面一个不起眼的盒子里藏着一个没开封的 mq138有机气体传感器模块, 还有一堆1602啊, Nokia5110也有一个,但是从来没有用过...突然想到是否能用现有的硬件组一个甲醛测试仪呢?(实际上做出来没有检测到甲醛, 因为不知道怎么写算法...
先去搜一下各种传感器的 datasheet,了解一下特性,然后就有了下面这些 datasheet.
新的社区不知道哪里上传文件,所以只好给你们看看名字,自己搜索啦..
原理图看完了就准备画图了...中间遇到很多问题, 首先是,我的苹果电脑上无法安装 AD, 跑虚拟机又觉得 windows 不习惯...
所以就安装了 eagle 这个开源的软件,其实还挺轻量级的,就是里面的封装和库都太老了... 很多都是直插...搞得我很多东西都要自己画封装...
中间省去各种折腾...终于原理图画好了!
原理图:
其实很简单的.你们应该一眼就看懂了.哈哈,没错~我就是用的 Atmel 的328p 的拆机芯片...
接着是 layout:
比较丑, 各位高手, 大神手下留情,不要吐槽的太狠,这是第一版, 请别让我没有开发第二版的勇气...
我这个全开源哦,大家有兴趣都可以试着做做看..
然后各种焊接...慢工出细活儿...
话说这次打板花了我快一周的时间才拿到....之前元器件涨价比较凶..特别是电容..电阻...
还有一些瑕疵需要继续改进改进啊..
然后就是焊接....原则是,先焊小的,再焊大的,最后焊接直插件....哈哈
焊接完一定要用万用表测试一下是否短路, 一定, 一定, 一定要测试后再上电.
不然有可能遇到蘑菇云, 猛一点儿的直接一上午的工作白做了...
我使用 USB-ASP 直接下载到板子上的,没有安装 BootLoader, 因为没有引出串口.
焊接了两个,但是只有一个 Nokia5110, 回家再找找,也准备去网上淘一下,估计价格低的出奇.
你你如果想更小巧还可以试试 oled 的屏幕,那个看上去更高大上一些,当然了, 如果用 oled 成本也上去了.看个人的喜好了!
背面一个18650的大电池盒..
屏幕上去了,除了颜色有点儿不搭,其他的感觉还是很不错的..
再来点儿别的地方的谍照,背面看看效果,这个 mq138的传感器像不像测试酒驾的啊?
侧面也来个特写
顶部的特写,位置刚刚好,简单粗暴,还不带套~
两节之前笔记本电脑的电芯, 拆出来就是18650, 平时做树莓派小车的供电电源,今天来给我捧个电场...
开机后,需要稳定大概10秒的样子,然后读数就比较稳定了, 这个数值是我直接读取到的模拟值, 并不是甲醛的具体含量, 我查资料说 mq138品种好多..不知道这个模块是什么品种的, 我淘宝上淘来的,估计当时花了没几块钱...这个应该是最便宜的那种...
代码也非常简单:
/***************************************************************************
Created by: 骑驴玩儿漂移
License: GPL? No, 全开源! 随便你怎么折腾!
电路图和 bom 表回头放在 github 上(稍安勿躁)
***************************************************************************/
#include <Wire.h>
#include <LCD5110_Basic.h>
LCD5110 myGLCD(3, 4, 5, 6, 7);
extern uint8_t SmallFont[];
extern uint8_t MediumNumbers[];
extern uint8_t BigNumbers[];
float mq138 = A0;
void setup(void)
{
pinMode(mq138, INPUT);
myGLCD.InitLCD();
}
void loop(void)
{
int a = 70;
myGLCD.clrScr();
myGLCD.setFont(SmallFont);
myGLCD.setContrast(a);
myGLCD.print("YOYOJACKY TECH", 0, 0);
myGLCD.print("Formaldehyde" , 0, 8);
myGLCD.print("CH2O Concent:", 0, 16);
float data = analogRead(A0);
if (data < 300.0)
{
myGLCD.printNumF(data, 2, 0, 24);
delay(200);
}
else {
myGLCD.print("Warning!!!", 12, 32);
delay(200);
}
}
回家后给老婆一看,被吐槽的体无完肤:
1. 老婆: 你前面那个红灯什么意思? 我: 电源灯啊.
2. 老婆: 电源灯那么亮有什么用? 我: 就这个亮度啊.
3. 老婆: 你应该用红色灯表示甲醛超标, 黄色表示还行, 绿色表示空气质量良好!! 都不懂得用户体验还装什么产品经理? 我: ....下次改还不行么?
4. 老婆: 你为啥不搞个外壳让我好拿着.... 我: 3D 打印机你回家看电影嫌吵又不让开,白天开着猫主子没事儿就老去捣乱...晚上又不能打...
.....
不过, 虽然对我吐槽了很多,但是她还是拿起来仔细研究了一会儿,左一个造型,右一个造型,发朋友圈去炫耀了......
大家也可以尝试一下,有空多玩儿起来啊!
我是骑驴玩儿漂移, 菜鸟中的小白,小白中的战斗机.... 你们谁知道怎么计算和校准MQ138传感器的方法,请不吝赐教哈!
原创作品,未经权利人授权禁止转载。详情见转载须知。 举报文章
我要举报该内容理由
×