电动车无钥匙计划++长期更新进度
目前up的情况,是家里已经实现无钥匙进入全部是(指纹+手机开锁)。但是骑电动车还是要带钥匙有一些麻烦,所以想把电动车也修改成功篮牙,指纹,NFC(我的手机支持)的一种或者几种结合。
注意:
*/我在nfc方面还不行看看有没有技术牛指导下。*/:lol
头脑风暴一下::)
目前的方案是指纹方案。(控电门)
材料:
1:mcu:arduino nano
2:交互设备: 1.oled128*64 2.金属轻触开关(接在mcu中断口) 3.蜂鸣器 (给予开关锁 响应)4.指纹识别模块。
3:感应器:1.藿尔感应器(感应轮胎有没有动)2.原理传感器(感应座位上有没有人)3.继电器(控制电门)。
4:dcdc模块:主有是将电动车的60v或者72v直流转换为12v(给mcu与其他部件使用)。
ps:电动车其实本来有的,一方面是尽量少去修改原来的电路图。一方面也 这个模块的供电是电门控制的,我们最后需要控制的也是这个。所以我选择自己加一个DCDC模块。
程序设计方案
1.1日常使用: 控制逻辑
上车开锁:
指纹模块感应到已经录入的纹(2s内就一次),继电器得电闭合(控制电门合)。(oled显示结果,开锁成功 或者 指纹错误、如果传感器有故障、被屏蔽给予提示)
下车关锁:
轻触开关按下并且5s来电动车没有移动(藿尔感应器没有动作),继电器失电断开(控制电门断) 。
中途离开忘记关闭--保护性关锁:
压力传感器感应座位上有人但轮胎没有动(藿尔感应器没有动作)超过5分钟,继电器失电断开(控制电门断)。
压力传感器感应座位上没有人超过30s,继电器失电断开(控制电门断)。
1.2后台:主要用于新指纹的管理(录入、删除),传感器的屏蔽(防止在正常使用下传感器失效而导致没有办法正常使用)
菜单管理:
指纹模块感应到已经录入的纹(2s内有两次),进入菜单管理
轻触开关短按选择,长按进入。
菜单配置:
/*等待更新*/
目前先更新到这里,有什么意见的欢迎题点:lol 2020年7月7日 15:36:56
本帖最后由 z01228 于 2020-7-15 20:27 编辑
进度更新2020年7月15日20:13:59
最近在想供电问题 还有模块的选择,目前的想法是使用电动车的防盗器电源,为他是一直有电的。
ps指纹模块比较贵目前就先买了ic读卡模块进行试验
这个就是我选择的读卡器模块,就因为便宜。嘻嘻但是店铺没有技术支持。只能自己研究代码了 ,好在一天的时间没有白花。
https://gd3.alicdn.com/imgextra/i3/26614610/O1CN01lPPFPw1jvQRZAHtbA_!!26614610.jpg_400x400.jpg
目前是试验的 读卡的使用和读卡器的穿透试验。
muc使用arduino nano读卡器输出连接在nano的D5上
//串口接收数据,并且拼接成功字符串进行比较。
#include<SoftwareSerial.h> //软串口库
SoftwareSerial mySerial(5,6); //新建的串口mySerial(RX,TX);--(读,写)
String comdata = ""; //新建中间变量
String out01off="29119523511883"; //这个是用于比较的卡号
int Code; //用于存放读到串口数据
void setup()
{
Serial.begin(9600); //硬串口
mySerial.begin(9600); //软串口
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW);
}
void loop()
{
if(mySerial.available()>0){ //如果软串口有数据
delay(100); //等数据传输完毕
Serial.print("十六进制卡号:");
//数据拼接
while(mySerial.available()>0){ //这个是一个死循环,等串口的数据全部读取完才会退出
Code=mySerial.read(); //按位读取并且在读取完毕时删除
comdata += Code; //把卡号串接并且保存字符串十进制(中间)
Serial.print(Code, HEX); //打印十六进制的卡号
}
//while(Serial.read()>= 0){}//清空串口数据--这个可以不要,加进去也没有关系就是
Serial.println(""); //换行
Serial.print("十进制卡号:");
Serial.print(comdata); //打印完整的十进制卡号(中间变量)
Serial.println(""); //换行
if(comdata==out01off)
{
Serial.println("对--开灯");
Serial.println(""); //换行
digitalWrite(LED_BUILTIN, HIGH);
comdata=""; //清空字符串
} else {
Serial.println("不对--熄灯");
Serial.println(""); //换行
digitalWrite(LED_BUILTIN, LOW);
comdata=""; //清空字符串
}
}
}
我觉得用蓝牙就可以了,没有必要这么麻烦,蓝牙连到手机就自动解锁,断开连接就上锁。 kemppler 发表于 2020-7-27 11:26
我觉得用蓝牙就可以了,没有必要这么麻烦,蓝牙连到手机就自动解锁,断开连接就上锁。 ...
那你的手机蓝牙要一直开着,如果手机没有电了 或者在外面机蓝牙链接要问题就不好解决了。或者手机已经链接了耳机 z01228 发表于 2020-7-27 19:39
那你的手机蓝牙要一直开着,如果手机没有电了 或者在外面机蓝牙链接要问题就不好解决了。或者手机已经链 ...
只是提供个建议。
蓝牙一直开着也没什么,我的手机就是常年开着蓝牙。另外,蓝牙连接到耳机也可以连接别的设备。
或者,钥匙坠上挂一个纽扣电池供电的蓝牙设备也行,一节电池可以待机半年了。 学会BLE或者BT开发,当支架抬起,且蓝牙RSSI在一定范围内时自动开锁 kemppler 发表于 2020-7-28 11:10
只是提供个建议。
蓝牙一直开着也没什么,我的手机就是常年开着蓝牙。另外,蓝牙连接到耳机也可以连接别 ...
这个建议可以 XlinliY.Zhang 发表于 2020-7-28 15:13
学会BLE或者BT开发,当支架抬起,且蓝牙RSSI在一定范围内时自动开锁
这个可以有要学习好一段时间了 进度情况:目前语音模块、ic读卡器模块 已经调试完毕 在设计感应器与电路图。还有控制逻辑整理
电动车是64v的目前的想法是采用64v-12v-5v的dcdc降压情况 分别给座锁(12V)与各个模块(5v)供电
涉及到的模块单元:1、arduino nano (控制MCU)2、语音模块(语音播放)3、ic读卡器(读取卡号)4、霍尔传感器(测速)5、应变片(座位有无人感应)6、电门锁控制(固态继电器)7、座桶锁控制(电磁铁+固态继电器)。
控制逻辑
目前考虑IC卡解锁:
情况一卡不对:1次oled屏幕显示错误、3次程序闭锁10s之后每错一次时间+20s 在时间结束后才可以正常解锁。
情况二卡对:1.进入10s使用确认(10s内电动车没有测到速度或者座位上没有人--自动锁车)
2.停车模式:5分钟内没有测得速度--自动锁车
3.无人模式:30s内没有感应到座位有人--自动锁车
4.手动模式;通过编码器按键--锁车
继续更新 本帖最后由 z01228 于 2020-9-8 14:14 编辑
一个大概的程序流程图
https://shitu-query-bj.bj.bcebos.com/2020-09-08/13/82394c9dfa390df7?authorization=bce-auth-v1%2F7e22d8caf5af46cc9310f1e3021709f3%2F2020-09-08T13%3A47%3A31Z%2F300%2Fhost%2F2128bbd71de957486685a49afb646d83c8b1af40200262e008995a117747a9e4
页:
[1]
2