** 大学宿舍因为大家都睡在上铺,有时候舍友没带钥匙需要下去开门,非常的费劲,如果能通过手机控制自动开门就方便多了。**

制作教程:

材料:

成品:


效果演示:

控制led:

控制开门:


#舵机是通过绳子连接到锁栓上的,绳子和锁栓用热熔胶固定,整个装置也是用热熔胶固定在门上的。如果你的门锁拉不开,试试给锁栓缝隙上润滑油,同时调整舵机的力矩。
#自动开门效果演示视频
#app、烧录程序、hex代码资源下载连接
#资源下载备用链接

1.材料清单和说明:
材料(以下材料都可以在某宝中买到):
51单片机或52单片机x1
(51单片机和52单片机是同一个系列,完全可以通用)
51最小系统板x1
STC单片机下载器
HC-06蓝牙模块
(此型号比较贵,可以用其它的蓝牙模块代替)
金属齿轮舵机(MG90S) x1
(为保证舵机的力量足够大需要选择金属齿轮舵机,推荐MG90S)
5V升压板x1
(这个可以不要,18650锂电池4.2v也能带动板子和舵机)
18650电池x2
18650电池壳x2
导线若干
ABS板(热可塑塑料板)x2
(ABS板用于制作外壳,直接加热需要弯曲的部位然后弯折)
2.电路连接图:

#舵机通电时不要用手转动,否则会损坏舵机,其实不通电也尽量不要用手转动。舵机信号线连接的端口可以在程序中修改。
#舵机供电问题:数据线给单片机供电没问题,但是给舵机供电不行,舵机启动瞬间电流会比较高,因此舵机需要单独的锂电池供电(3.7-4.2就可以)。方法:舵机有3根线,两根是供电(正负极),一根是控制线(接收PWM信号),舵机的两条电源线单独接一块锂电池,然后舵机供电的负极和电路板供电的负极接起来构成回路。如果还不行就把舵机供电正极也接到最小系统板正极(注意舵机还是需要这个锂电池的,并非没有发挥作用,当舵机启动瞬间需要大电流时从这节锂电池中获得所需电流)。
#最小系统板记得插晶振(无源晶振不分正负极),下面这个:


3.源程序:

#include <reg52.h>
#define uint unsigned int
unsigned char data;
sbit M=P3^5;//此引脚接舵机信号线
sbit N=P2^0;//或此引脚接舵机信号线
sbit led=P3^6;
void delayms(uint);//延时函数void UsartInit()//串口初始化
{TMOD=0X20;//工作方式控制寄存器TH1=0xF4;//Timer寄存器的高八位TL1=0xF4;//低八位PCON=0x80;//PCON 电源管理寄存器TR1=1;//T1计数器控制位SCON=0x50;//串行口控制寄存器ES=1;//串口中断开关EA=1;//中断总开关
}void main()
{UsartInit();//调用串口初始化while(1);//等待串口中断
}void Usart() interrupt 4 //中断处理函数,中断号为4
{  data=SBUF;//发送接收数据缓存空间RI=0;//接收中断标志位SBUF=data;//原样返回接收的数while(!TI);//如果发送了数据则继续向后运行TI=0;//发送中断标志位if(data=='D')//(door)如果接收到数据D,让舵机转动{ int b=0;//用于控制产生的pwm信号段长度,每个不同的pwm段对应一个舵机角度,因此控制了舵机在某角度停留的时长while(b<30)//产生pwm信号,控制舵机转动到起始角度{M=1,N=1;delayms(1);M=0,N=0;delayms(19);b++;}b=0;while(b<200)//产生pwm信号,控制舵机转动到中间角度并保持2s{M=1,N=1;delayms(2);M=0,N=0;delayms(18);b++;}b=0;while(b<30)//产生pwm信号,控制舵机回到初始位置{M=1,N=1;delayms(1);M=0,N=0;delayms(19);b++;}}if(data=='L')//(led)如果接收到的数据L,让LED反转{led=~led;}
}  void delayms(uint xms)//延时函数,参数为X毫秒
{uint i,j;
for(i=xms;i>0;i--)for(j=110;j>0;j--);}

4.将程序烧录到单片机:
#下载器USB端插电脑,TTL端连接单片机最小系统板,Vcc(正极)连板子Vcc,GND(负极)连板子GND,RXD连接板子TXD,RXD连接板子TXD。打开烧录程序:

插上下载器就会识别到串口号(如果识别不到则需要安装驱动)

STC89C52单片机就选这两种,一个不行就试下另一个

波特率选下载器对应的波特率,我的下载器默认波特率为9600

打开“要烧录的程序.hex”,点击程序下载,成功效果如上图所示

#hex文件是源程序.c文件在软件keil4中编译后生成的,是单片机能读取的格式。(如果资源链接失效则需要下载keil4对.c源程序进行编译生成.hex文件。下载keil4和编译生成hex教程)
5.调试效果
#首先在我后面的资源链接中或者去应用市场中搜索下载这款蓝牙串口app,其他的蓝牙串口app也是可以的。

#程序烧录到单片机了,电路也连接好了,下一步就可以打开app连接我们的蓝牙模块进行调试了。蓝牙模块要设置密码和波特率,波特率保证和手机app的正确通信,密码保证开门的安全。HC06模块设置方法:hc06模块设置密码和波特率方法。HC06模块的默认密码为1234,默认波特率为9800。
#蓝牙串口APP通过HC06模块和单片机正确通信示例(单片机将收到消息返回):

#程序中写了将收到的信息返回回去的代码,用来测试蓝牙模块和单片机中的程序是否正常工作。发送L为开关灯,发送D为开门,如果收到单片机通过蓝牙传回相同的信息,则系统工作正常,如上图所示。
#如果什么都不返回,则需要检查蓝牙模块的连线是否正确,TXD和RXD是否连反了,还有就是程序是否成功烧录。如果有返回值但返回的是乱码,则是app发射信息的波特率和蓝牙模块设置的波特率不相符的原因,需要更改蓝牙模块的波特率,建议改为4800或9600,我这里测试时蓝牙模块设置的波特率是4800。
#连接好舵机的情况下发送D舵机就会转到90度角,3秒后复位(用来给人推门进入的时间)。舵机臂通过绳子连接到门栓就可以开门了。

6.扩展:
#如果想用手机控制led灯,则led的正极接Vcc,负极接板子的P3.6接口(程序中可以修改)。(如果想让单片机控制一个台灯亮灭,则用Vcc和P3.6接一个电磁继电器,再用继电器连接台灯电路)
# 如果是其他类型的门锁,例如需要拧把手的门锁,可以尝试买下面这种带齿轮组小电机代替舵机,有更强的拉力并可以持续旋转,需要自己改下程序和电路连接。

#改进后的版本:
放弃了5v升压板,使用更小的最小系统板,供电改用USB-DC电源线方式,体积和成本大大减小:




觉得不错的话请点个赞吧,感谢!

手机蓝牙连接51单片机自动开门相关推荐

  1. 手机蓝牙控制51单片机实现对led灯的开关

    根据蓝牙模块通过手机蓝牙实现对51单片机led灯的控制. 1.器材 2.连线说明 3.源码 4.操作过程 5.成果展示 1.器材 51单片机,本人选用的为亚博的51单片机,不同的单片机在引脚的定义上有 ...

  2. 2-51单片机ESP8266学习-AT指令(开发板51单片机自动冷启动下载原理)

    前言:了解就行,不必深究 上一篇链接 http://www.cnblogs.com/yangfengwu/p/8720148.html 源码链接:https://pan.baidu.com/s/1wT ...

  3. 最简单DIY基于蓝牙、51单片机和舵机的钢铁爱国者机关枪控制器

    51单片机物联网智能小车系列文章目录 第一篇:最简单DIY的51蓝牙遥控小车设计方案 第二篇:最简单DIY串口蓝牙硬件实现方案 第三篇:最简单DIY蓝牙PS2遥控器控制蓝牙智能小车 第四篇:最简单DI ...

  4. win7蓝牙怎么连接_蓝牙车载MP3播放器和手机蓝牙连接以后怎么不响呢?

    车载MP3播放器和手机蓝牙连接以后怎么不响呢? 车载MP3播放器和手机蓝牙连接以后怎么不响呢? 如果是安卓手机可能是手机的媒体音量没有打开.在播放音乐的时候按一下手机的音量键,调整手机的音量,将媒体音 ...

  5. c语言打铃器单片机程序,51单片机自动打铃C语言程序

    51单片机自动打铃C语言程序: #include "reg51.h" #include "intrins.h" #define uchar unsigned c ...

  6. 基于51单片机自动售货机设计全套资料

    基于51单片机自动售货机设计(原理图+PCB+文档+程序) 项目编号:0001 硬件构成: 本设计由STC系列单片机+12864显示+电源模块+按键模块+蜂鸣器报警模块等元件组功能介绍: 设有8个按键 ...

  7. 51单片机自动浇水系统/51单片机自动浇花系统/智能浇水系统

    51单片机自动浇水系统/51单片机自动浇花系统 整个设计由51单片机模块.湿度传感器模块(土壤湿度传感器或者温度传感器或者温湿度传感器,都可以).lcd1602液晶显示模块等组成,实现智能浇花和智能浇 ...

  8. 华为穿戴连接时显示连接不上服务器,华为穿戴配对失败,手机蓝牙连接正常,华为穿...

    提起华为穿戴配对失败,大家都知道,有人问华为手环B2怎么配对使用,另外,还有人想问第一次使用华为手环B3和手机无法连接怎么办,你知道这是怎么回事?其实怎样打开华为穿戴应用配对,下面就一起来看看手机蓝牙 ...

  9. 51单片机自动量程(3挡)0-30v直流电压表万用表CD4051 LCD1602显示 MCP3201

    实践制作DIY- GC0062-51单片机自动量程电压表 一.功能说明: 基于51单片机设计-51单片机自动量程电压表 二.功能介绍: STC89C52单片机+LCD1602+CD4051量程选择+1 ...

  10. 基于51单片机自动售货机实物设计

    基于51单片机自动售货机设计 ( 原理图+PCB+论文+程序+视频讲解) 采用实物设计: 程序编译器:keil 5 编程语言:C语言 资料编号:001 硬件构成:        本设计由STC系列单片 ...

最新文章

  1. windows NT的意义和各个版本
  2. 大话设计模式—桥接模式
  3. python中none是什么类型_如何在Python中”测试”None类型?
  4. TOP命令及参数解析
  5. 集群搭建在一台计算机上,服务器集群
  6. echarts java动态数据_[ASP.net教程]ECharts Java 动态加载数据,echartsjava
  7. KVM的概念和云计算
  8. mysql 首次连接慢_mybatis+mysql,第一次数据库连接很慢怎么回事?
  9. 《linux核心应用命令速查》连载十:ps:查看权限
  10. Spring Boot ES 实战,直接拿来用!
  11. Septentrio RAIM+接收机自主完好性监测实验
  12. BMW Trojan 样本分析
  13. STM32L4系列单片机如何使用RTC唤醒定时器进入Standby低功耗模式并唤醒+整机功耗测试
  14. 再回顾SGX初始化(一)——环境检查
  15. 程序员 -- 当我彻底放弃自私自利后,前途变得一片光明,不能过多的只是关注自己的功夫,生活不能只局限在方寸虚拟世界里
  16. H5手机QQ分享到手Q、QQ空间、微信好友、朋友圈础通用接口
  17. 智能语义搜索引擎:一站式检索服务、打通数据壁垒、充分挖掘数据价值 | 百万人学AI评选
  18. git学习记录/菜鸟教程(基于Gitcode)
  19. 打印机服务出现问题的解决方法
  20. Linux基础第二部分。done

热门文章

  1. 现代数字图像处理作业---对lena.bmp图像转成灰度图后,加入90%强度的椒盐噪声。尝试任何方法去恢复图像。
  2. 命令行查看硬盘序列号
  3. IT人员应该掌握的30种技能
  4. 【Java 随机数游戏】
  5. 产品读书《极致:互联网时代的产品设计》
  6. uploadify php使用,如何在ThinkPHP中使用Uploadify对图片进行上传
  7. java 学习资料总结
  8. C语言冒泡排序(升序)
  9. 焓湿图软件 android,焓湿图查询计算软件
  10. html静态模板资源,可下载源码