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

制作教程:

材料:

成品:


效果演示:

控制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. 【WP7】对象序列化
  2. 我的中年危机来得很自然
  3. Python技术分享:教你如何爆破隔壁WiFi密码
  4. 解决点击MDI父窗体下拉菜单,子窗体重复出现的问题
  5. 中科大开源镜像使用帮助列表
  6. 如何使用Docker轻松集成OnlyOffice和NextCloud--快速搭建私有云办公系统/私有云盘/私有OfficeOnline
  7. antdesignpro 重定向到登录页面_URL重定向跳转绕过
  8. Github使用之git回退到某个历史版本
  9. 聊聊flink的RestartStrategies
  10. 关于NSStringFromClass的一点见解
  11. 进销存管理系统源码VS2015
  12. 计算机三级网络技术 = =
  13. postman更换皮肤
  14. 汽车行业大数据解决方案的应用案例详细分析
  15. 机器学习公开课笔记第一周
  16. 论简历解析及其步骤(一)步骤及理论
  17. 推出 BlazePose:实现设备端实时人体姿态追踪
  18. USACO健康的荷斯坦奶牛(DFS,二进制暴力枚举)
  19. IC618的资源分享及IC618电路显示黄色问题
  20. 008年杀毒软件排行榜以及排行对比图

热门文章

  1. BUUCTF--[第二章 web进阶]死亡ping命令
  2. matlab可靠性优化,齿轮减速器可靠性优化的MATLAB实现
  3. python依赖如何打包_python 打包依赖包安装
  4. npm安装项目所有依赖包
  5. xp系统做无盘服务器,锐起无盘网吧系统无盘XP系统特点
  6. 网页在线沟通工具,网页即时聊天工具-ttkefu完全免费电话呼叫流程图
  7. 嵌入式系统作业12(SD卡读取)
  8. Python导入模块,Python import用法(超级详细)
  9. 设置电脑的保护色(绿豆沙色)
  10. 行业大数据产品发展趋势