作者归档:老沙

准备制作PM2.5检测仪 资料

雾霾很严重

想买个PM2.5检测仪,网上一看都太贵,从400~8000。。。。。

然后查了查原理,很简单呀,就想做个PM2.5检测仪

晚上在网上逛了逛,发现了一个性价比很高的粉尘传感器,夏普的GP2Y1010AU0F

淘宝上卖27元,一下买了三个,做好了卖个试试,呵呵,加个有AD的单片机,一个锁存器,一个数显,成本应该50元之内

传感器PDF

gp2y1010au_e

下边的一些网上的资料

=====================================

使用夏普GP2Y1010AU0F灰尘传感器检测空气质量

夏普GP2Y1010AU0F灰尘传感器价格较便宜,能检测出室内空气中的灰尘和烟尘含量.

检测原理

其原理如下图,传感器中心有个洞可以让空气自由流过,定向发射LED光,通过检测经过空气中灰尘折射过后的光线来判断灰尘的含量。

pm1

pm2

pm3

pm4

 

 

 

根据电路图, 把Arduino和传感器连接起来:

  1. Sharp pin 1 (V-LED) => 5V 串联1个150欧姆的电阻(最好在电阻一侧和GND之间再串联一个220uf的电容)
  2. Sharp pin 2 (LED-GND) => GND
  3. Sharp pin 3 (LED) => Arduino PIN 2 (开关LED)
  4. Sharp pin 4 (S-GND) => GND
  5. Sharp pin 5 (Vo) => Arduino A0 pin (空气质量数据通过电压模拟信号输出)
  6. Sharp pin 6 (Vcc) => 5V

 

  1. /*
  2. Interface to Sharp GP2Y1010AU0F Particle Sensor
  3. Program by Christopher Nafis
  4. Written April 2012
  5. http://www.sparkfun.com/datasheets/Sensors/gp2y1010au_e.pdf
  6. http://sensorapp.net/?p=479
  7. Sharp pin 1 (V-LED)   => 5V (connected to 150ohm resister)
  8. Sharp pin 2 (LED-GND) => Arduino GND pin
  9. Sharp pin 3 (LED)     => Arduino pin 2
  10. Sharp pin 4 (S-GND)   => Arduino GND pin
  11. Sharp pin 5 (Vo)      => Arduino A0 pin
  12. Sharp pin 6 (Vcc)     => 5V
  13. */
  14. #include<SPI.h>
  15. #include<stdlib.h>
  16. intdustPin=0;
  17. intledPower=2;
  18. intdelayTime=280;
  19. intdelayTime2=40;
  20. floatoffTime=9680;
  21. intdustVal=0;
  22. inti=0;
  23. floatppm=0;
  24. char s[32];
  25. floatvoltage=0;
  26. floatdustdensity=0;
  27. floatppmpercf=0;
  28. voidsetup(){
  29.  Serial.begin(9600);
  30.   pinMode(ledPower,OUTPUT);
  31.  // give the ethernet module time to boot up:
  32.   delay(1000);
  33.   i=0;
  34.   ppm=0;
  35. }
  36. voidloop(){
  37.   i=i+1;
  38.   digitalWrite(ledPower,LOW);// power on the LED
  39.   delayMicroseconds(delayTime);
  40.   dustVal=analogRead(dustPin);// read the dust value
  41.   ppm=ppm+dustVal;
  42.   delayMicroseconds(delayTime2);
  43.   digitalWrite(ledPower,HIGH);// turn the LED off
  44.   delayMicroseconds(offTime);
  45.   voltage=ppm/i*0.0049;
  46.   dustdensity=0.17*voltage-0.1;
  47.   ppmpercf=(voltage-0.0256)*120000;
  48.  if(ppmpercf<0)
  49.     ppmpercf=0;
  50.  if(dustdensity<0)
  51.     dustdensity=0;
  52.  if(dustdensity>0.5)
  53.     dustdensity=0.5;
  54.  StringdataString=””;
  55.   dataString+=dtostrf(voltage,9,4,s);
  56.   dataString+=”,”;
  57.   dataString+=dtostrf(dustdensity,5,2,s);
  58.   dataString+=”,”;
  59.   dataString+=dtostrf(ppmpercf,8,0,s);
  60.   i=0;
  61.   ppm=0;
  62.  Serial.println(dataString);
  63.   delay(1000);
  64. }

把传感器和Ardiuno连接好后,可以连续打印出传感器的输出电压值。输出电压大小和灰尘含量的曲线入下图:

pm5

pm6

pmp1

pmp2

pmp3

pmp4

pmp5

E430 换高分屏全过程 1600×900屏

屏线我一共做了两次,第一次只是试验,屏线没有缠绕,有干扰下图

忘说了,屏是三星LTN140KT07,屏是tb上买的180块,邮费22,用的是顺丰

为什么要自己做线?

因为上淘宝买线遇到了骗子,单6位的线,非告诉我支持高分辩率,无语

和骗子的对话在最下边

 

E430主板接口引角定义:

e430主板口

LVDS定义

lvds口

 

主板口和lvds新加的8条线的对应该关系

 

IMG_20140308_134730IMG_20140308_153416IMG_20140308_153454

效果,因为没有缠绕,看到屏中图那些角纹了吗?,是干扰

 

IMG_20140308_161410IMG_20140308_161416 IMG_20140308_161434 

===================================

于是,我又重做了一次:

本来线用IDE DMA133的线,后来一看太粗了,放弃了…..

IMG_20140309_104540

 

 

 

 

用漆包线0.10mm的

IMG_20140309_113214

 

线太细,用手缠绕太费劲了,改用转了,呵呵。

IMG_20140309_114358

LVDS加了8条线和3条地线

IMG_20140309_143542

IMG_20140309_143559

IMG_20140309_144701 IMG_20140309_144706

焊线前边的灯和摄像头,还有麦

IMG_20140309_150341

IMG_20140309_150345

 

安装本。。。。拆了N回了,太熟练了。。。。。。。。

看看吧12G内存,i7的U,ssd 128G

IMG_20140309_151203 IMG_20140309_151458 IMG_20140309_151608 IMG_20140309_152402

无线网卡是锁定的,不能换我自己改过bios,用编程器刷上的。回头还要写另一个贴子

链接:…………………………..留地方

IMG_20140309_152418

换完了,看效果

IMG_20140309_152950 IMG_20140309_153017

 

============================================

如何拆,借用中关村在线的一个贴子,大家看这个贴子

http://nbbbs.zol.com.cn/41/32108_404595.html

 

============================

旺旺号:xiaowu0705

http://xiaouwu0705.taobao.com/shop/view_shop.htm?spm=a1z09.2.9.18.xnQzQa&user_number_id=26571954

大家去他家买要小心了。。。。

这是我们的对话:

——— (14:44:31):
老板好,我的是e430的本,要换LTN140KT04这个屏,用这个e430的高分屏线可以吗?
xiaowu0705 (14:44:33):
本店上架,都有现货。都可以直接拍下。白天下午6.30前都可以发出。默认快递申通 圆通 中通 天天快递,(以上快递可以留言指定)需要顺丰通知客服改运费(顺丰江浙沪12元,安徽14,其他地区22,新疆西藏24元。到付现付一致)
——— (14:44:45):
1600×900的
xiaowu0705 (14:44:55):
恩   可以的
25元的
xiaowu0705 (15:23:02):
在的
要发吗
原装的
——— (15:23:25):
一会儿下单
LTN140KT07这个屏可以用吧
我怕买错了
e430
xiaowu0705 (15:26:08):
恩 
E430 的机器肯定好用的
——— (15:26:37):
我是说,屏我没买错吧
——— (15:41:46):
付款了
xiaowu0705 (15:41:58):
——— (15:42:02):
记得发货,尽量上午送
xiaowu0705 (15:43:20):
62014/3/8
——— (9:22:47):
哥们
xiaowu0705 (9:22:47):
本店上架,都有现货。都可以直接拍下。白天下午6.30前都可以发出。默认快递申通 圆通 中通 天天快递,(以上快递可以留言指定)需要顺丰通知客服改运费(顺丰江浙沪12元,安徽14,其他地区22,新疆西藏24元。到付现付一致)
———(9:22:55):
在吗?
xiaowu0705 (9:23:25):
恩在的
——— (9:23:29):
线到了,我也换上了,换上之后和用我的原装的屏线效果是一样的
有竖条,并且颜色不对
xiaowu0705 (9:28:13):
你需要查下显卡和屏幕的
———(9:28:44):
查哪些东西?
能说详细一些吗?
xiaowu0705 (9:28:57):
显卡是否正常
你是维修的吗
——— (9:29:03):
不是
我本是好的
只是换个高分的屏而以
以前的屏也是好的
———(9:30:42):
高分线的型号是什么呀?
xiaowu0705 (9:31:18):
我们的 屏线支持高分屏幕的
——— (9:33:07):
可现在有角纹,并偏色,是不是线有断的地方呀?
xiaowu0705 (9:33:37):
不是的
——— (9:34:10):
我有照片
能帮着看看,是什么问题吗?
——— (9:54:38):
那是什么问题?
屏是刚买的新屏
——— (9:56:52):
要不我在本地店里去换一下高分的线,如果好了说明是线的问题,你帮我退了这条线,你出来回的邮费,如果是屏的或是其它问题,我马上给你确定付款,你看行吗?
xiaowu0705 (9:58:00):
好的
———(10:47:36):
你卖我的线
xiaowu0705 (10:48:00):
是这样的
——— (10:48:12):
我在本本换屏的群里,人家的线是这样的
现在竖行,每隔一行,就缺一行
——— (10:49:20):
我重安了驱动
——— (10:51:05):
你的线应该是改的吧,我真是不想折腾,老板想想办法吧,能弄好就行,要不我大周末的还要跑到中关村,很远的
你说要真换条线好了,我退了,你有损失,我也累,两人都不划算
xiaowu0705 (10:53:43):
哪个线不是每条都 必要接的
——— (10:55:01):
那您见过类似的问题吗?
xiaowu0705 (10:56:06):
你I屏幕有测试过吗
——— (10:59:45):
没没有另外的高分屏测了,不过我刚才算了一下,您的线和我原来的线,在屏的那头,线的跟数是一样的
。。。。。
只是有两条地的位置不一样而以
全是19条线
——— (11:03:30):
给你复制照片的,老兄,你是不是发错了?
xiaowu0705 (11:03:54):
这个不会错
我们的线支持高分的
———(11:05:26):
——— (11:53:22):
——— (11:56:45):
双6位,少3对,差分线
。。。。。。。。。。
——— (16:21:36):
你的线少了8根
还告诉我没错
我很佩服你
———(16:23:03):
你怎么说?
高分是双6位的线
你的是单6位线
——— (16:24:12):
好好看看
xiaowu0705 (16:24:35):
——— (16:24:37):
你说怎么处理?
——— (16:30:04):
你之前说的,你出往返邮费退了?
——— (9:56:52):要不我在本地店里去换一下高分的线,如果好了说明是线的问题,你帮我退了这条线,你出来回的邮费,如果是屏的或是其它问题,我马上给你确定付款,你看行吗?xiaowu0705 (9:58:00):好的

xiaowu0705 (16:31:28):
我问下吧

 

 

然后就没结果了。。。。。。。。。。。。。。。

MySQL数据库InnoDB和MyISAM数据引擎的差别

InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。

MyIASM是IASM表的新版本,有如下扩展:
二进制层次的可移植性。
NULL列索引。
对变长行比ISAM表有更少的碎片。
支持大文件。
更好的索引压缩。
更好的键吗统计分布。
更好和更快的auto_increment处理。

以下是一些细节和具体实现的差别:

1.InnoDB不支持FULLTEXT类型的索引。
2.InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含 where条件时,两种表的操作是一样的。
3.对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引。
4.DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。
5.LOAD TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用。

另外,InnoDB表的行锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,例如update table set num=1 where name like “%aaa%”

任何一种表都不是万能的,只用恰当的针对业务类型来选择合适的表类型,才能最大的发挥MySQL的性能优势。

改造锂电冲电器

现在冲电器的设计。。。。。。

单LED双色,红的是冲电中,绿的是冲满了。

问题是分不清颜色的人怎么办?

开始的想法是加个蜂鸣器,冲好了就响,不过原来LED的电驱动力太小了

蜂鸣器不响,如果从冲电的部分取电,由于是智通冲,就会影响冲电了。

也可以从220v取电,用4个in4004组成个全整流桥,变成220v直流

连蜂鸣器(3v阻抗16殴),220*16/3=1173.3串一个1200殴的电阻。

理论上就可以让蜂鸣器正常工作了。不过我觉得麻烦。把共阴极的双色LED

改成了两个LED了。在外壳上打了个孔。方的是原来的,绿色草帽LED是我加的

见下图:

IMG_20130819_223351 IMG_20130819_215006 IMG_20130819_215001 IMG_20130819_215014 IMG_20130819_222814

 

最后再说一下,关于封条的问题,封条的胶在60度左右会软化。

用吹风机或热风枪100度吹,把握好尺度。用裁纸刀可以把封条起下来:)

改造鼠标2节七号电池,改可充电锂电

原来买的雷柏的套装,鼠标太费电了。没钱买电池呀!!!!

手来用7号充电电池,也是没几天就要冲太麻烦。

后来有个想法,就是用闲置的手机电池来给鼠标用。

当时分析了一下电压,和理论的上最简单的解决方案。

见:http://www.kumouse.com/?p=869

今天实践了一下。

发现之前理论上有点问题。第一就是in4004二级管的压降只有0.5v左右

只用2个,电压为3.5。明显高于额定电压,所以我用了3个in4004串连。

打开鼠标测试,电压为2.5v,很理想。当锂电10%电量时,为3.75v.

串上3个二级管后电压为2.25,也是很理想的。

然后加上了网上买的锂电充电模块。可以冲电了。给鼠标后边打了个孔,不是太好看

OK

改造见下图:

IMG_20130819_205932 IMG_20130819_205938 IMG_20130819_205947 IMG_20130819_214017 IMG_20130819_214040

锂电,电量与电压对应该关系

锂离子电池开路电压与电池容量的对应关系分析

OCV电压对容量关系 550mA恒流放电电压对容量关系
  100%—-4.20V 100%—-4.20V
  90%—–4.06V 90%—–3.97V
  80%—–3.98V 80%—–3.87V
  70%—–3.92V 70%—–3.79V
  60%—–3.87V 60%—–3.73V
  50%—–3.82V 50%—–3.68V
  40%—–3.79V 40%—–3.65V
  30%—–3.77V 30%—–3.62V
  20%—–3.74V 20%—–3.58V
  10%—–3.68V 10%—–3.51V
  5%——3.45V 5%——3.42V
  0%——3.00V 0%——3.00V
  因为电池电压的影响因素实在太多,表中的仅供各位参考.
有套雷柏的无线键鼠,两节7号电池,太费电了,用不了几天就要充电,于要我要用锂电来代替。
找了一些稳压电路,不过还是觉得麻烦。最后决定用两个二级管来降压,1个PN节压降是0.6v硅管
两个串起来。4.2-1.2=3,3.5-1.2=2.3还有10%电压时,仍然可以工作,效果达到了,又极简单。
哈哈。OK了。

openwrt 挂载摄像头 mjpg-streamer 相关

AMCap

kmod-i2c-core、
kmod-usb-video、
kmod-video-gspca-core、
kmod-video-gspca-zc3xx;
kmod-video-pwc

build_dir/target-mips_r2_uClibc-0.9.33.2/mjpg-streamer-r148/ipkg-ar71xx/mjpg-streamer/etc/config/mjpg-streamer

====================================
config mjpg-streamer core
option enabled “1”
option device “/dev/video0”
option resolution “640×480”
option fps “30”
option www “/www/webcam”
option port “8080”

======================================
加密码
vi /etc/init.d/mjpg-streamer

service_start /usr/bin/mjpg_streamer –input “input_uvc.so \
–device $device –fps $fps –resolution $resolution” \
–output “output_http.so –www $www –port $port”

改成
service_start /usr/bin/mjpg_streamer –input “input_uvc.so \
–device $device –fps $fps –resolution $resolution” \
–output “output_http.so –www $www -c test:123 –port $port”

用户名为test
密码为123
=======================================
存图,不能有密码

wget http://localhost:8081/?action=snapshot -O /tmp/s.jpg

mjpg_streamer –input “input_uvc.so –device /dev/video0 -r 6
40×480 -f 30” -o “output_file.so -f /tmp/”
=======================================

mjpg_streamer -i “input_uvc.so -r 640×480 -f 30” -o “output_http.so -p 8080 -w /www”
UVC需安装的软件
opkg install kmod-video-core kmod-video-uvc
启动命令
mjpg_streamer -i “input_uvc.so -r 352×288 -y -f 15 -q 80” -o “output_http.so -p 8080 -w /www”
把option enabled “0” 改成1

openwrt 给没有usb的机子加入usb支持

#./target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr741nd.c

build_dir/linux-ar71xx_generic/linux-3.3.8/arch/mips/ath79/mach-tl-wr741nd.c
开头加入
#include “dev-usb.h”
找到函数
static void __init tl_wr741nd_setup(void)
里边加入
/* USB */
ath79_register_usb();

================================
build_dir/linux-ar71xx_generic/linux-3.3.8/arch/mips/ath79/Kconfig

config ATH79_MACH_TL_WR741ND
bool “TP-LINK TL-WR741ND support”
select SOC_AR724X
select ATH79_DEV_AP9X_PCI if PCI
select ATH79_DEV_ETH
select ATH79_DEV_GPIO_BUTTONS
select ATH79_DEV_LEDS_GPIO
select ATH79_DEV_M25P80
select ATH79_DEV_USB

加入了这个”select ATH79_DEV_USB”

===================================
Compile it for the first time, with the modules/settings you want.
For mounting USB drives, select kernel kmod modules:
USB support: usb2, ohci, storage
Filesystems: ext4, ntfs, vfat
Native language support: cp437,cp852,iso-8859-1, utf8.

If you want R/W NTFS support, select:
Utilities/filesystems/ntfs-3g

Then go to build_dir/linux-ar71xx_generic/linux-3.3.8/arch/mips/ath79
Edit this files:

mach-tl-wr741nd-v4.c
add #include “dev-usb.h” at the top of the file
add ath79_register_usb(); before ath79_register_m25p80(&tl_wr741ndv4_flash_data)

Kconfig
add select ATH79_DEV_USB under “config ATH79_MACH_TL_WR741ND_V4”

Now, run make again. Now the USB will work.