ブログアーカイブ

基于树莓派的智能报警器设计

Overview 本文将介绍如何用树莓派、防震传感器模块和有源蜂鸣器模块设计智能报警器。当防震传感器模块检测有震动的时候,会输出高电平,没有震动输出低电平,利用这一特点,树莓派通过中断的方式查询防震传感器模块输出的电平信号,当检测到高电平(即有震动时候),蜂鸣器报警;否则不报警。可以将自己设计的防盗报警器安装在自己家的窗户上,如果有小偷破窗而入,就会报警。 Experimental Parts 为了完成设计需要用到一下器件 Pi3 x1  有源蜂鸣器模块 x1 防震模块 x1   面包板 x1 公对公跳线 x若干  公对母跳线 x若干 Hardware 本中只需要用到两个传感器模块,防震传感器模块和有源蜂鸣器模块。防震模块工作在3.3V-5V电压下,在本项目中采用3.3V供电。在不震动情况下呈常闭状态,输出低电平,开关信号指示灯被点亮;震动时候输出高电平,开关信号指示灯熄灭。其原理图和外形图分别如下图所示。 有源蜂蜜器模块,工作在3.3V-5V电压之间,本项目中同样采用3.3V供电。模块是低电平有效,即控制器给一个低电平,蜂鸣器响,给高电平不响。 与树莓派具体连线参考下图 在接线的时候请认清模块正负极,不要接反了,否则会烧坏你的Pi和模块。模块的上的GND接Pi上的0V;模块上的VCC接3.3V。将蜂鸣器接到20号引脚(BCM编号方式),防震模块接到21号引脚上(BCM编号方式)。关于如何识别Pi的IO口请参考这篇文章: How to read Raspberry Pi i/o pin diagram (GPIO pin graph) Software 可以把pi直接接到显示器上,也可以通过SSH方式远程登录Pi。 1)编写代码 在/home/pi路径下用nano新建一个vibration.py(名字随意,你喜欢就好!) sudo nano vibration.py

カテゴリー: 测试

基于树莓派的触摸开关

Overview 本文介绍如何用树莓派设计数字触摸开关,并通过这个数字触摸开关控制继电器通断。程序启动树莓派不间断检测TTP223数字触摸传感器模块输出信号,当检测到有触摸动作发生时候,继电器闭合,并且在触摸时候蜂鸣器会响一声,代表被触摸。该模块是一个基于触摸检测ICTTP223B的电容式点动型触摸开关模块。常态下,模块输出低电平,模式为低功耗模式;当用手指触摸相应位置时,模块会输出高电平,模式切换为快速模式;当持续12秒没有触摸时,模式又切换为低功耗模式。 Experimental Parts 为了完成设计需要用到一下器件 Pi3 x1  有源蜂鸣器模块 x1  数字触摸开关TTP223 x1  2路继电器模块 x1  面包板 x1  公对公跳线 x若干  公对母跳线 x若干 Hardware 本文中用到了三个传感器,分别是数字触摸开关TTP223模块、有源蜂鸣器模块和2路继电器模块。数字触摸开关TTP223模块工作在DC2—5.5V,本文中采用3.3V供电,检测到有触摸动作时候输出高电平,否则输出低电平;有源蜂鸣器模块采用2TY三极管(S8550)驱动,工作在3.3V-5V之间,本文将其接到3.3V电压上,模块低电平触发;2路继电器模块低电平触发,同样用3.3V供电。 与树莓派具体连线参考下图 在接线的时候请认清模块正负极,不要接反了,否则会烧坏你的Pi和模块。模块的上的GND接Pi上的0V;模块上的VCC接3.3V。对于如何识别Pi的IO口请参考这篇文章: How to read Raspberry Pi i/o pin diagram (GPIO pin graph) Software 可以把pi直接接到显示器上,也可以通过SSH方式远程登录Pi。 1)编写代码 在/home/pi路径下用nano新建一个touchsensor.py(名字随意,你喜欢就好!) sudo nano

カテゴリー: 测试

用树莓派实现声光控开关

Overview 本文介绍如何用树莓派实现声光控开关设计,声光控开关是通过声音和光照度控制的开关,当环境的亮度达到某个设定值以下,同时环境的噪音超过某个值,这种开关就会开启。在本文中通过树莓派采集声音检测模块和光敏电阻模块输出的声音和光照度信号,通过采集到的声光信号控制开关通断,这里的开关是软件开关(用软件实现),当开关闭合时候,蜂蜜器响起。 Experimental Parts 为了完成设计需要用到一下器件 Pi3 x1  有源蜂鸣器模块 x1  声音检测模块 x1  光敏电阻模块 x1  面包板 x1  模数转换器 x1  公对公跳线 x若干  公对母跳线 x若干 Hardware Raspberry Pi是一个出色的微型计算机,你可以使用它来控制数字输入和输出。但是当你想用它来处理模拟信号,例如像热敏电阻、电位器等模拟传感器输出时候,Raspberry  Pi就有些力不从心了,就需要借助模数转换芯片将模拟信号转换成数字信号。本项目中利用MCP3008把光敏电阻模块输出的电压信号转换成数字信号,Pi根据转换后的数值大小以及声音检测传感器输出的信号控制蜂鸣器鸣叫。MCP3008是一款8通道10位精度的模数转换芯片。 声音检测模块可以检测周围环境的声音强度 , 此传感器只能识别声音的有无 , 能识别声音的大小或者特定频率的声音; 灵敏度可通过模块上的蓝色电位器调节;工作在3.3V-5V,因为树莓派GPIO口一般工作在3.3V电压,所以采用3.3V供电;模块输出数字'0'和数字'1'信号,模 块在环境声音强度达不到设定阈值时, DO 口输出高电平,当外界环境声音强度超过设定阈值时,模块D0输出低电平 ,阈值通过调节电位器设定。器原理图如图所示。 有源蜂鸣器模块采用2TY三极管(8550)驱动,工作在3.3V-5V之间,本文将其接到3.3V电压上,模块低电平触发。 各模块之间与树莓派具体连接请参考下图 在接线的时候请认清模块正负极,不要接反了,否则会烧坏你的Pi和模块。模块的上的GND接Pi上的0V;模块上的VCC接3.3V。对于如何识别Pi的IO口请参考这篇文章: How to

カテゴリー: 测试

基于Raspberry Pi的简易安防系统

Overview 本文主要介绍如何用树莓派实现简易防人体入侵安防系统,树莓派周期性检测人体红外检测模块输出的高低电平,当有人入侵时候蜂鸣器报警. Experimental Parts Pi3 x1 人体红外感性模块 x1 有源蜂鸣器 x1 杜邦线 x3 Circuit Graph 硬件连线很简单,如图。 在连接电路的时候特别注意不要把电源正负极接反,否则会烧毁Pi和传感器模块,上图中蜂鸣器模块引脚顺序可能跟实物引脚顺序不一样,在接线的时候需要对照实物连线。 其中蜂鸣器是低电平有效的。 下面给出人体红外检测模块、继电器模块的原理图。 Motion sensor Schematic Motion sensor Interface Layout The two potentiometer can adjust delay time and sensitivity, as the follow picture: Software 1)在/home/pi路径下用nano新建一个motionsensor-test.py文件

カテゴリー: 测试

树莓派读取DHT11

Overview 在本文中将介绍如何用树莓派读取温湿度传感器DHT11 温湿度数据。温度湿度模块看起来简单,只有三个引脚(实际4个接口,有一个脚悬空),但仔细一想,3个引脚分别作为VCC、GND、DATA用,因为传给树莓派GPIO的只有高电平、低电平,那么怎么来读取温度数字和湿度数字呢?这么一想,并不简单!因为引脚少,它需要高低变化的时序信号来表达数值,还有一些其它信号如开始信号等等。所以得先深入了解一下DHT11模块了。 DHT11时序介绍 1)数据帧格式 DHT11会向主机发送40位(5子节)数据,第一二个子节数据表示温度值;第三四个子节数据代表湿度值;最后一个子节是校验码。如果数据无误的情况下,前4个子节的和等于校验码。 2)握手阶段 默认状态下DATA脚为高电平,主机端GPIO发送开始信号,首先拉低DATA脚至少18ms,然后拉高DATA脚20-40us等待DHT11的响应信号 一旦DHT11收到开始信号,DHT11将向主机发送响应信号,同时将DATA脚拉低80us作为响应,然后DHT11拉高DATA脚80us,握手完毕。 3)数据发送阶段 一次的湿度和温度数据,DHT11需要发送40bits数据,每一位数据之前都以50us低电平开始,随后的高电平时序信号,持续26us-28us的表示这一位是0,持续70us表示这一位是1,然后继续50us低电平,紧接着下一位的高电平开始。 数据 '0': 数据 '1': Parts 为了完成本项目需要用到如下器件 Pi3 x1 DS18B20 x1 杜邦线 x3 Hardware 硬件连接很简单,将DHT11的VCC接到Pi的3.3V;DHT11的GND接到Pi的GND;DHT11的DATA接到Pi的GPIO14(BCM编码方式),关于GPIO的识别请参考: How to read Raspberry Pi i/o pin diagram (GPIO pin graph) Software 本文将介绍2中方式读取DHT11数据,一种是Python方式读取,一种是C语言方式读取。 1)Python方式 在任一路径下(如/home/pi)用nano新建一个dht11-test.py文件

カテゴリー: 测试

树莓派读取DS18B20温度值

Overview DS18B20是一个比较常用的温度传感器,采用单总线控制,以前用单片机编程控制时严格按照单总线的时序控制,今天来看看在树莓派Raspbian系统下如何控制DS18B20,体验一下在linux世界,一切都是文件。读取DS18B20温度也是对文件的操作。 Parts 为了完成本项目需要用到如下器件 Pi3 x1 DS18B20 x1 杜邦线 x3 Hardware 将DS18B20温度传感器模块的"S"引脚接到树莓派的4脚(BCM编码方式);"-"接到树莓派的GND引脚;DS18B20中间应交接到树莓派5V电源处。如图 加载内核单总线模块 Raspbian支持单总线协议,能挂接如DS18B20之类的单总线设备,并读取其数据。但是需要加载这个模块 在命令行输入如下命令 sudo nano /boot/config.txt 将光标移动到最后添加下面一句话 dtoverlay=w1-gpio 按下键盘上的Ctrl X后按照提示保存退出 查看模块是否启动 重启树莓派是上面的配置生效 sudo reboot 待树莓派启动起来后,命令行输入 lsmod 如果如发现红色方框所示说明模块已启动。 如果没有发现,也可以运行如下命令加载模块 sudo modprobe w1-gpio sudo modprobe w1-therm 读取温度 如果一切顺利,在/sys/bus/w1/devices中发现一个28-XXXX开头的文件夹,这个就是DS18B20的ROM,每个DS18B20都一样,在这个文件夹中读取w1_slave文件则会返回当前温度值。 sudo modprobe

カテゴリー: 测试

在Raspberry Pi用Python实现蜂鸣器的按键控制

Overview 本项目用Raspberry Pi连接按键和蜂鸣器,当按键按下,蜂鸣器响起;按键再按一下蜂鸣器停止响。在本项目中,将分别采用查询方式和中断方式检测按键信号。查询方式就是程序不停的检测按键是否别按下,这种做法很消耗CPU,如果在循环增加 sleep(1000) 这样的调用,又很容易错过按键变化。较好的做法则是通过 中断 来实现,中断方式是在没有按键按下器件,CPU可以运行其他程序。当有按键按下时候,给CPU发送一个中断信号,执行中断服务程序,本项目中会给出两种方式的代码供您选择。 Parts Pi3 x1 有源蜂鸣器 x1 按键 x1 10K电阻 x1 面包板 x1         跳线若干 Hardware Software (1)在开始编写程序前需要对我们的树莓派Python库文件进行安装设置,此处要用到GPIO库,先安装GPIO库,打开终端,更新apt-get软件安装包列表(注意必须要在网络连接正常情况下),然后执行安装命令来安装raspberry-gpio-python包(如果已经安装请跳过此步),具体指令如下: 1)更新源 sudo apt-get update 2)安装python sudo apt-get install python-dev 3)安装python-pip(python-pip是一个管理python软件包的工具) sudo apt-get install python-pip 4)利用pip安装rpi.gpio sudo pip

カテゴリー: 测试

长夜漫漫,不再黑暗

Overview 光敏电阻是是利用光电导效应的一种特殊的电阻,它的电阻和光线的强弱有直接关系,光强度增加,则电阻减小;光强度减小,则电阻增大。利用这一特性可以做很多东西,比如照相机、草坪灯、声光控开关、路灯自动开关等。本项目我们在树莓派上用光敏电阻、继电器等器件完成路灯自动开关制作。当光照比较暗的时候继电器闭合点亮LED灯;光照变亮的时候,继电器断开,LED熄灭。 Parts 光敏电阻 x1 Pi3 x1 LED x1 继电器 x1 10K电阻 x1 1K电阻 x1 跳线若干 面包板 x1 MCP2008 x1 (MCP3204 x1) Hardware Raspberry Pi是一个出色的微型计算机,你可以使用它来控制数字输入和输出。但是当你想用它来处理模拟信号,例如像热敏电阻、电位器等模拟传感器输出时候,Raspberry  Pi就有些力不从心了,就需要借助模数转换芯片将模拟信号转换成数字信号。本项目中利用MCP3008(or MCP3204)把光敏电阻输出的电压信号转换成数字信号,Pi根据转换后的数值大小控制继电器通断,从而控制灯亮灭。MCP3008是一款8通道10位精度的模数转换芯片;MCP3204是一款4通道12位精度的模数装换芯片。一路继电器模块是高电平有效,即控制器(Pi)给继电器一个高电平,继电器导通,继电器模块上的LED指示灯亮起;低电平断开,继电器模块上的LED指示灯灯熄灭。 MCP3008接线图: MCP3204接线图:   Software (1)在开始编写程序前需要对我们的树莓派Python库文件进行安装设置,此处要用到GPIO库,先安装GPIO库,打开终端,更新apt-get软件安装包列表(注意必须要在网络连接正常情况下),然后执行安装命令来安装raspberry-gpio-python包(如果已经安装请跳过此步),具体指令如下: 1)更新源 pi@raspberrypi ~ $ sudo apt-get update 2)安装python

カテゴリー: 测试

基于ESP8266串口WiFi扩展板上传数据到服务器和反向控制

一 准备工作 1.1 硬件准备 1) Arduino UNO一块,或者mega2560 2) ESP12E Shield(或ESP13 shield)一块 1.2 上传账号以及API Key 在doit的云平台上申请一个账号。申请地址:http://iot.doit.am。记住自己的账号(Uid)和密码(Passoword) 登陆可以看到默认界面 按照下图获取API的Key,用于上传数据。 新添一个设备,名为arduino。 1.3 阅读上传协议 平台基于TCP通讯,服务器IP: iot.doit.am, 端口:8810;平台采用key,进行用户验证,key通过 http://iot.doit.am 获得。 1.数据上传: cmd=upload&device_name=arduino&data=126&uid=demo&key=c514c91e4ed341f263e458d44b3bb0a7\r\n 应答: cmd=upload&res=1 通过 http://iot.doit.am可以实时查看。 2.控制设备: a)先订阅自己的用户id: cmd=subscribe&topic=demo \r\n 应答:     cmd=subscribe&res=1 b)通过 http://iot.doit.am发送控制命令。

カテゴリー: 测试

带测速装置的智能小车

1) 项目介绍 本项目是基于智能小车学习套件的,除了项目中用到的霍尔传感器模块外,其余部件均跟智能小车学习套件一样,因此,控制器采用的是arduino UNO。如果你没有智能小车学习套件可以购买,也可以根据自己实际情况参考本项目完成带测速装置的智能小车设计。 2) 测速原理 当有磁铁靠近霍尔测速传感器模块的时候,霍尔测速传感器模块就产生一个脉冲,即有磁场切割就有信号输出。可以利用这一原理测量小车的转速。在小车轮子上固定一个小磁铁,同时将霍尔测速传感器模块固定在小车底盘上,当小磁铁和霍尔测速传感器模块探头重合的时候,模块会输出一个高电平,利用Arduino的中断功能就可以记录模块产生高电平的次数,即小车的转数,再测量出旋转这些转数所用的时间,就可以计算出小车的转速了。 3) 器件清单 器件 qty 霍尔传感器模块 1 小磁铁片 1 跳线 若干 4) 接线 电机接线请参考智能小车学习套件 5) 代码 arduino_hall

カテゴリー: 测试

Meta