0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

简易无线运动传感器设备的制作

454398 来源:网络整理 作者:佚名 2019-11-11 10:48 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

第1步:材料

我从墨西哥的sparkfun发行订购我的资料,因为这是我的住所,但是如果您在美国居住,您几乎无法从Sparkfun订购所有材料。

1个Pir传感器

http://www.sparkfun.com/products/8630

9.95 d olar

1 rf接收器315mhz

http://www.sparkfun.com/products/10533

4.95 dolar

1 rf发射器315mhz

http://www.sparkfun.com/products/10535

3.95 dolar

1 attiny85

http://www.sparkfun.com/products/9378

2.84 dolar

1 arduino uno

1开关

4电阻180ohm

1电阻10k欧姆

常开按钮(可选)

1 8欧姆扬声器(可选)

1 ic 8引脚基座

1pnp晶体管(您可以使用2n2222,只需检查一下集电极和发射极引脚在正确的位置)

1 lm7805(5V稳压器)

3个电解电容器10uf 50v

步骤2:硬件

正如您在图像中看到的那样,电路中的所有电路都可在5V电压下工作,而pir传感器可在9至12V电压下工作。要解决此问题并节省将电路连接到2种不同电压的工作和花费的时间,我使用lm7805(即5V稳压器),并将所有电路都连接到9V(方形)电池。

如果要制作一个pcb以更干净的方式包含所有连接,我将在下面放置一个pdf文件,以便您可以打印它并使用所需的方法进行传输。

2连接不适合设计,因此请用电线放置它们。 (第二个连接中的两个连接是黄色的)。对于接收器,我也打算使用attiny85设备,但是时间很短,所以我最终用扬声器制作了arduino屏蔽。 (如果有人要购买attiny85接收器的PCB,我已经处于半生产阶段,稍后我将上载。感谢您的理解。)

如果打印arduino接收器护罩,请务必小心,底部铜质端在顶部向上,引脚也放置在底部,并通过PCB上的孔进行焊接,但是所有其他组件都是从上部直接将引脚弯曲的焊料。您可以在5到8张图像中拥有更好的外观。

步骤3:软件

attiny85可以将arduino uno用作isp程序员。您可以查看此链接(http://hlt.media.mit.edu/?p=1706),以获取有关此过程的更多信息,但您无需这样做,因为我将详细解释所有内容。

我使用attiny是因为它比使用arduino便宜。您可以以2.84USD的价格购买attiny85,相比之下,arduino的价格约为38美元。使用attiny通过rf链接进行通信代表了一个挑战,因为attiny默认情况下没有rx或tx串行通信。我要感谢这个博客(http://mchr3k-arduino.blogspot.mx/)制作的程序,可以与attiny进行通讯。

好。因此,请逐步进行编程

1。转到arduino官方网站并下载arduino-0022软件。 (不要使用arduino 1.0,它不起作用)。解压缩文件。您应该看到一个文件夹名称arduino-0022。

2。转到此链接。

http://mchr3k-arduino.blogspot.mx/2012/01/wireless-sensor-node-part-2.html?showComment=1338749638806#c853067277980266192

下载 attiny45_85 .zip 和 manchester.zip 文件。结果3。解压缩attiny45_85.zip文件。复制文件夹。

打开arduino-0022文件夹。打开硬件,然后将attiny45_85文件夹粘贴到其中。

4.解压缩manchester.zip文件。打开那个曼彻斯特文件夹,您应该看到另外两个文件夹。核心和MANCHESTER。

复制DE MANCHESTER文件夹。

再次打开arduino-0022文件夹。但这次打开库文件夹。将MANCHESTER文件夹粘贴到此处。

现在,您可以进行编程了。

5。启动arduino-0022程序。单击弹出箭头(打开),然后打开ArduinoISP示例。单击工具》面板》 arduino uno。 (现在您已经拥有了所有的权限)。

上载程序。

6。将attiny85放置在原型板(面包板)中,并将所有图像都连接到arduino。请确保以正确的方式放置Attin,否则将要烧掉它。 (发生在我身上:P)。

7。在arduino程序上,转到“工具”》“板”》“ attiny85”(使用Arduino作为ISP)。再次单击工具》刻录引导程序》带Arduino的ISP。 (您可能会看到一个错误,但是没关系)。

好,让我们为发送器编写程序。

第4步:发送器

这是发送器的程序。如果您现在按顺序进行最后一步,则只需将代码放在arduino程序中并上传它即可。

#include//包括用于通信的库

#define TxPin 2//使用的引脚发送数据

unsigned int Tdata = 0;//从0

int TRANSISTOR_PIN = 1开始数据;//将晶体管导通和截止的引脚

int PIR_SENSOR_PIN = 0;//运动传感器引脚

void setup()

{

MANCHESTER.SetTxPin(TxPin);//设置通信的引脚

pinMode(TRANSISTOR_PIN,OUTPUT);

pinMode(PIR_SENSOR_PIN,INPUT);

}

无效循环()

{

int pirVal = digitalRead(PIR_SENSOR_PIN);//读取运动传感器的状态

if(pirVal == LOW)//如果运动传感器检测到运动,则

{/*动作,在这种情况下,将晶体管导通以给发射器供电,然后发送消息,关闭晶体管*/

digitalWrite(TRANSISTOR_PIN,HIGH);//打开晶体管

delay(1000);

Tdata = 50;//我使用50作为sensor1警报编号,但是您可以使用所需的编号

//请确保在发送方和接收方中使用相同的编号

MANCHESTER.Transmit(Tdata);//发送信号

delay(100);

digitalWrite(TRANSISTOR_PIN,LOW);//关闭晶体管以节省电池

}

delay(2000);

}

第5步:接收器

《对于接收器,您只需要对arduino进行编程。因此,转到“工具”》“主板”,然后选择“ arduino uno”。

复制此代码。并上传。

#include//包含通信库

#define RxPin 6//定义接收器引脚

#define扬声器9

#define sensor1alarm 12

#define sensor2alarm 11

#define sensor3alarm 10 void setup()

{ MANCHESTER.SetRxPin(RxPin);//用户将rx引脚设置为默认值6

MANCHESTER.SetTimeOut(1000);//用户设置超时默认块

Serial.begin(9600);//仅调试

//在arduino中设置引脚

pinMode(sensor1alarm,OUTPUT);

digitalWrite(sensor1alarm,LOW);

pinMode(sensor2alarm,OUTPUT);

digitalWrite(sensor2alarm) ,LOW);

pinMode(sensor3alarm,OUTPUT);

digitalWrite(sensor3alarm,LOW);

pinMode(speaker,OUTPUT);

digitalWrite(speaker,LOW);

}//设置结束

void loop()

{

unsigned int data = MANCHESTER.Receive();

if(data == 50)//将此数字与传感器编号匹配

{

digitalWrite(sensor1alarm,HIGH);//打开sensor1alarm led

for(int i = 0; i 《500; i ++){//产生1KHz音频持续1/2秒

digitalWrite(speaker,HIGH);

delayMicroseconds( 500);

digitalWrite(speaker,LOW);

delayMicroseconds(500);

}//扬声器的结尾

digitalWrite(sensor1alarm,LOW);//关闭sensor1警报led

delay(500);

}//如果结束

//如果有另一个变送器,请粘贴到此处

}//循环结束

/*如果您有多个发送器,则只需给发送器提供一个不同的编号,然后将其从if(data == 50)复制到if的末尾,然后将其粘贴到指示中。并将数字50更改为另一个发射机中的数字。*/

步骤6:结论

您可以在每种情况下放置传感器。我把我的饮料放在汽水罐中,因为我认为没有人会检查汽水罐是否有问题。而且您可以放置在任何地方,而且看起来并不奇怪。因此,享受成为秘密间谍的乐趣,或在夜间保护您的房子不受陌生人的侵害。使用无止境,您只需要稍微发挥自己的创造力即可。

p.d. (您可以更改运动传感器,而对于其他许多传感器,只要在设计上稍作改动,就可以以低廉的价格获得温度传感器,声音传感器,超声波传感器,气体传感器,红外线传感器以及许多其他传感器可以从安全距离感知事物)。

我希望您喜欢这个可指导的方法:),抱歉,如果我的英语不是最好的话。

步骤7:如何在一个接收器上使用3个发射器

这是使用一个接收器使用3个运动传感器的代码:

//将其用于接收器

//************* ************************************************** ************************************

#include//包括通讯库

#define RxPin 6//定义接收器引脚

#define扬声器9

#define sensor1alarm 12

#define sensor2alarm 11

#define sensor3alarm 10 void setup()

{

MANCHESTER。 SetRxPin(RxPin);//用户将rx引脚设置为默认值6

MANCHESTER.SetTimeOut(1000);//用户设置超时默认块

Serial.begin(9600);//仅调试

//在arduino中设置引脚

pinMode(sensor1alarm,OUTPUT);

digitalWrite(sensor1alarm,LOW);

pinMode(sensor2alarm,OUTPUT);

digitalWrite(sensor2alarm) ,LOW);

pinMode(sensor3alarm,OUTPUT);

digitalWrite(sensor3alarm,LOW);

pinMode(speaker,OUTPUT);

digitalWrite(speaker,LOW);

}//设置结束

void loop()

{

unsigned int data = MANCHESTER.Receive();

if(data == 50)//将此数字与传感器编号匹配

{

digitalWrite(sensor1alarm,HIGH);//打开sensor1alarm led

for(int i = 0; i 《500; i ++){//产生1KHz音频持续1/2秒

digitalWrite(speaker,HIGH);

delayMicroseconds( 500);

digitalWrite(speaker,LOW);

delayMicroseconds(500);

}//扬声器的结尾

digitalWrite(sensor1alarm,LOW);//关闭sensor1alarm led

delay(500);

}//if if

else if(data == 100)的结尾//将此编号与传感器编号

{

digitalWrite(sensor2alarm,HIGH);//打开sensor1alarm led

for(int i = 0; i 《500; i ++){//产生1KHz音频持续1/2秒

digitalWrite(speaker,HIGH);

delayMicroseconds( 500);

digitalWrite(speaker,LOW);

delayMicroseconds(500);

}//扬声器的结尾

digitalWrite(sensor2alarm,LOW);//关闭sensor1alarm led

delay(500);

}

否则if(data == 150)//将此编号与传感器编号匹配

{

digitalWrite(sensor3alarm,高);//打开sensor1alarm led

for(int i = 0; i 《500; i ++){//产生1KHz音频持续1/2秒

digitalWrite(speaker,HIGH);

delayMicroseconds( 500);

digitalWrite(speaker,LOW);

delayMicroseconds(500);

}//扬声器的结尾

digitalWrite(sensor3alarm,LOW);//关闭sensor1警报指示灯

delay(500);

}

}//循环结束

//***************** ************************************************** **************************************

//将此用于发射器之一

//发射器1 。

#include//包括用于通信的库

#define TxPin 2//用于发送数据的引脚

unsigned int Tdata = 0;//从0

int TRANSISTOR_PIN = 1开始数据;//将晶体管导通和截止的引脚

int PIR_SENSOR_PIN = 0;//运动传感器引脚

void setup()

{

MANCHESTER.SetTxPin(TxPin);//设置通信的引脚

pinMode(TRANSISTOR_PIN,OUTPUT);

pinMode(PIR_SENSOR_PIN,INPUT);

}

void loop()

{

int pirVal = digitalRead( PIR_SENSOR_PIN);//读取运动传感器的状态

if(pirVal == LOW)//如果运动传感器检测到运动,则

{/*动作,在这种情况下,将晶体管导通以给发射器供电,然后发送消息,请关闭晶体管*/

digitalWrite(TRANSISTOR_PIN,HIGH);//将晶体管ON

delay(1000);

Tdata = 50;

MANCHESTER.Transmit( TDATA);//发送信号

delay(100);

digitalWrite(TRANSISTOR_PIN,LOW);//关闭晶体管以节省电池

}

delay(2000);

}

//********* ********************************************结果//使用

//发送器2。

#include//包含用于通信的库

#define TxPin 2//用于发送数据的引脚

unsigned int Tdata = 0;//从0

int TRANSISTOR_PIN = 1开始数据;//将晶体管导通和截止的引脚

int PIR_SENSOR_PIN = 0;//运动传感器引脚

void setup()

{

MANCHESTER.SetTxPin(TxPin);//设置通信的引脚

pinMode(TRANSISTOR_PIN,OUTPUT);

pinMode(PIR_SENSOR_PIN,INPUT);

}

void loop()

{

int pirVal = digitalRead( PIR_SENSOR_PIN);//读取运动传感器的状态

if(pirVal == LOW)//如果运动传感器检测到运动,则

{/*动作,在这种情况下,将晶体管导通以给发射器供电,然后发送消息,请关闭晶体管*/

digitalWrite(TRANSISTOR_PIN,HIGH);//将晶体管ON

delay(1000);

Tdata = 100;

MANCHESTER.Transmit( TDATA);//发送信号

delay(100);

digitalWrite(TRANSISTOR_PIN,LOW);//关闭晶体管以节省电池

}

delay(2000);

}

//********* ***********************************************

//使用此用于发送器3

//发送器3。

//接收器2。#include//包括用于通信的库

#define TxPin 2//用于发送数据的引脚

unsigned int Tdata = 0;//从0

int TRANSISTOR_PIN = 1开始数据;//将晶体管导通和截止的引脚

int PIR_SENSOR_PIN = 0;//运动传感器引脚

void setup()

{

MANCHESTER.SetTxPin(TxPin);//设置通信的引脚

pinMode(TRANSISTOR_PIN,OUTPUT);

pinMode(PIR_SENSOR_PIN,INPUT);

}

void loop()

{

int pirVal = digitalRead( PIR_SENSOR_PIN);//读取运动传感器的状态

if(pirVal == LOW)//如果运动传感器检测到运动,则

{/*动作,在这种情况下,将晶体管导通以给发射器供电,然后发送消息,请关闭晶体管*/

digitalWrite(TRANSISTOR_PIN,HIGH);//将晶体管ON

delay(1000);

Tdata = 150;

MANCHESTER.Transmit( TDATA);//发送信号

delay(100);

digitalWrite(TRANSISTOR_PIN,LOW);//关闭晶体管以节省电池

}

delay(2000);

}

第8步:接收器2.0

有些人问我是否可以上传接收器pcb,用于使接收器具有attiny85像发送器一样,以避免使用arduino uno。所以在这里,它们是使接收器便宜的文件。我希望您喜欢它们。

我将3个led灯保留为arduino版本,但不要放置扬声器,而是放置继电器,以便您可以激活任何喜欢的设备。例如,您的房屋照明灯,警报器或您喜欢的任何设备。

警告:确保您使用的继电器用于要用于电路的电压。如果您使用的是12V继电器,请确保在BAT1位置使用12v继电器。

代码如下:

/********************** ************************************************** ***********/

#include//包括通讯库

#define RxPin 0//定义接收器引脚

#define继电器4

#define sensor1alarm 1

#define sensor2alarm 2

#define sensor3alarm 3

void setup()

{ MANCHESTER.SetRxPin(RxPin);//用户将rx引脚设置为默认值6

MANCHESTER.SetTimeOut(1000);//用户设置超时默认块

Serial.begin(9600);//仅调试

//在arduino中设置引脚

pinMode(sensor1alarm,OUTPUT);

digitalWrite(sensor1alarm,LOW);

pinMode(sensor2alarm,OUTPUT);

digitalWrite(sensor2alarm) ,LOW);

pinMode(sensor3alarm,OUTPUT);

digitalWrite(sensor3alarm,LOW);

pinMode(relay,OUTPUT);

digitalWrite(relay,LOW);

}//设置结束

void loop()

{

unsigned int data = MANCHESTER.Receive();

if(data == 50)//将此数字与传感器编号匹配

{

for(int i = 0; i 《15; i ++)

{

digitalWrite(sensor1alarm,HIGH);//打开sensor1alarm led

delay(500);

digitalWrite(sensor1alarm,LOW);//关闭sensor1警报led

delay(500);

}

}//if

if(data == 100)的结尾//将此编号与传感器编号匹配

{(int i = 0; i 《15; i ++)

{

digitalWrite(sensor2alarm,HIGH);//打开sensor2alarm led

delay(500);

digitalWrite(sensor2alarm,LOW);//关闭sensor2alarm led

delay(500);

}

}//if

if(data == 150)的结尾//将此编号与传感器编号匹配

{(int i = 0; i 《15; i ++)

{

digitalWrite(sensor3alarm,HIGH);//打开sensor3alarm led

delay(500);

digitalWrite(sensor3alarm,LOW);//关闭sensor3alarm led

delay(500);

}

}//if

if(data == 200)的结尾//将此编号与传感器编号匹配

{(int i = 0; i 《15; i ++)

{

digitalWrite(relay,HIGH);//打开继电器

delay(500);

}

}//if

}的结束//循环结束

/********** ************************************************** ****************************/

责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 运动传感器
    +关注

    关注

    9

    文章

    172

    浏览量

    31754
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    探秘XKP压力传感器:汽车与赛车运动的理想之选

    探秘XKP压力传感器:汽车与赛车运动的理想之选 在汽车和赛车运动领域,压力传感器的性能至关重要。今天,我们就来深入了解一款备受瞩目的压力传感器
    的头像 发表于 12-11 14:10 57次阅读

    ‌基于TE Connectivity LUMAWISE运动传感器的智能照明控制技术解析

    TE Connectivity (TE) LUMAWISE运动传感器不仅节能,同时还能保持照明区域的安全。该传感器具有一系列调光功能,即便关闭灯具时,检测到运动时可保持100%亮度两分
    的头像 发表于 11-07 17:03 548次阅读
    ‌基于TE Connectivity LUMAWISE<b class='flag-5'>运动</b><b class='flag-5'>传感器</b>的智能照明控制技术解析

    ‌LUMAWISE逻辑输出运动传感器技术解析与应用指南

    TE Connectivity LUMAWISE逻辑输出街道照明运动传感器是流行的LUMAWISE运动传感器的模拟版本,设计用于街道照明。当与联网照明控制
    的头像 发表于 11-04 09:33 256次阅读
    ‌LUMAWISE逻辑输出<b class='flag-5'>运动</b><b class='flag-5'>传感器</b>技术解析与应用指南

    无线倾角传感器:精准感知,守护工业安全与效率

    在工业监测领域,对设备、结构或平台倾斜状态的实时精准感知至关重要。无线倾角传感器通过高精度测量和无线传输技术,为风电、工程机械、智慧仓储、地质灾害预防等多个行业提供了高效可靠的解决方案
    的头像 发表于 09-24 10:40 1107次阅读
    <b class='flag-5'>无线</b>倾角<b class='flag-5'>传感器</b>:精准感知,守护工业安全与效率

    什么是照度传感器和接近传感器

    近年来,照度传感器和接近传感器在我们身边各类设备中的应用越来越广泛。除了单独使用照度传感器和接近传感器外,将这些
    的头像 发表于 08-22 14:46 2498次阅读
    什么是照度<b class='flag-5'>传感器</b>和接近<b class='flag-5'>传感器</b>

    无线振动传感器设备预设性维护

    方案介绍 LoRa无线振动传感器使用工业级振动传感器芯片,可采集设备实时的加速度信号/速度/位移/温度信号。支持振动数据的时域分析和频域分析,获得被测
    的头像 发表于 08-04 08:49 607次阅读
    <b class='flag-5'>无线</b>振动<b class='flag-5'>传感器</b><b class='flag-5'>设备</b>预设性维护

    无线水浸传感器‌ 的完整解决方案设计

    在变电站电缆层室、机房等场所,会经常出现因设备漏水或下雨而导致水浸的情况,从而给设备的安全运行带来了隐患。无线水浸传感器是又一安装应用,能够实时在线监测
    的头像 发表于 08-04 08:48 772次阅读
    <b class='flag-5'>无线</b>水浸<b class='flag-5'>传感器</b>‌ 的完整解决方案设计

    EtherCAT转CANopen转换机制:运动控制传感器数据交互的核心技术解析

    在某高端自动化制造工厂的生产线上,采用了先进的 Ethercat 运动控制作为主站设备,以实现对生产线各个环节的精确控制和高速数据传输。然而,现场的许多外部传感器
    的头像 发表于 04-29 14:41 560次阅读
    EtherCAT转CANopen转换机制:<b class='flag-5'>运动</b>控制<b class='flag-5'>器</b>与<b class='flag-5'>传感器</b>数据交互的核心技术解析

    运动测量传感器概述与原理

    关键技术——运动测量传感器。本文将带你从工作原理到实际应用,全面解析这项“运动感知”技术。 第一部分:运动测量传感器概述
    的头像 发表于 03-13 14:21 799次阅读

    无线传感器网络:智能监测的未来

    在当今快速发展的科技时代,物联网技术正以前所未有的速度改变着我们的生活和工作方式。其中,无线传感器网络作为一项核心技术,正在为各个领域的智能监测带来革命性的变革。 无线传感器网络是一种
    的头像 发表于 02-25 08:34 860次阅读

    低功耗无线温度传感器:适用于远程环境监测

    安科瑞无线测温收发可连接240路无线温度传感器ATE100/100M/200/400,可接收多台柜内的无线温度
    的头像 发表于 02-17 17:12 899次阅读
    低功耗<b class='flag-5'>无线</b>温度<b class='flag-5'>传感器</b>:适用于远程环境监测

    无线位移传感器的优势与应用

    无线位移传感器的优势 1. 安装灵活性 无线位移传感器的一个显著优势是其安装的灵活性。由于不需要布线,它们可以被安装在难以到达的位置,如高空、狭窄空间或移动
    的头像 发表于 01-19 09:57 1089次阅读

    ACE无线温度电流复合传感器

    产品概述:  ACE100无线温度电流复合传感器主要用于低压开关柜输电电缆的的温度和电流的检测。传感器采用内部电池和电磁取能的双供电方式,快速准确的测量低压电缆的温度及电流数据,通过无线
    的头像 发表于 12-20 15:27 791次阅读
    ACE<b class='flag-5'>无线</b>温度电流复合<b class='flag-5'>传感器</b>

    无线压力传感器的测量范围如何拓展?

    无线压力传感器的测量范围如何拓展?
    的头像 发表于 12-14 10:12 823次阅读

    无线压力传感器的未来发展趋势是什么?

    更高的性能 精度提升 :随着科技的不断进步,制造工艺和材料科学的发展将使无线压力传感器的精度不断提高,能够更准确地测量微小压力变化,满足对压力测量精度要求极高的应用场景,如航空航天、高端医疗设备
    的头像 发表于 12-12 13:17 869次阅读
    <b class='flag-5'>无线</b>压力<b class='flag-5'>传感器</b>的未来发展趋势是什么?