行业动态

了解最新公司动态及行业资讯

当前位置:首页>新闻中心>行业动态
全部 2425 公司动态 357 行业动态 1767

搭建一个物联网门禁系统(ChatDACS)含详尽教程——NFC门禁教程都上千赞我酸了我也要整一个(误

时间:2023-01-23   访问量:1111

2020/3/18:和智能机器人小夜联动加入傻屌聊天,实现最重要的聊天(Chat)

11/6:更新1.2.4,启动现代化前端分支(bootstrap+layui)

9/2:更新1.2.0稳定发行版本

6/16:考虑到新手有时难以找到源码位置,故明显化了源码位置

----------更新分割线----------

实装效果:

大门实装演示,已稳定运行1年+

http://192.168.1.154:2333 (二维码自动识别)

扫码开门

DEMO:

ChatDACS39.108.239.49/

-----------项目开源,源码在此分割线:-----------

Giftia/ChatDACSgithub.com/Giftia/ChatDACS

------------------源码在此分割线------------------

概览:本项目是一个使用Node.js创建的基于http://socket.io的由esp8266实现的全端物联网门禁系统,分为web端与硬件端。web端前后端强耦合,实现全端,可拆离作为独立聊天室运行;硬件端由esp8266或可替换的mcu实现,自建局域网服务器实现本地开锁,ide可选NodeMCU或Arduino等;由酱菜物联提供物联服务。
//本项目没有技术难度,ifelse撑起大半代码行,上不了台面,只是作为个人小半年的学习展示,顺便也是作为本项目的完整开发文档和给小白的创建教程了,大佬勿喷。

副标题无恶意,真的只是酸了,想想自己长那么大了没有做出一个能展示出来的成品,有点卑微(嘤嘤嘤)。 先在最开头放上这个让我酸的罪魁祸首

@夏风
(x(啊是大佬我死了(因本人排版死早,本文有参考借鉴该文格式,谢谢作者优秀的排版
夏风:自制宿舍NFC门禁教程——当你老是忘带寝室钥匙,并且有一个闲置的充电宝的时候8454 赞同 · 624 评论文章

0x00 介绍与准备

硬件方面,esp8266是一块非常优秀的物联网解决方案mcu,性价比高(~10R/pcs),拓展性强,文档完善,可选IDE多,非常适合新手学习,老手玩耍。可替代选择有esp32(wifi蓝牙一体),cc2xxx系列(蓝牙)等。

语言方面,nodejs大法好!(因为脚本语言相对容易上手,且JavaScript大法好!)

关于电子门锁的选择,其实原理都是一样的,由上位机对门锁进行开关操作,一般有电磁锁(本项目采用该方案,适合可以进行大改的内开外开门,无需改动锁,需要改门)、舵机拉动锁(夏风大佬选择的无损方案,适合老式横拉锁的门)、电子液压推杆(直接更换锁芯,比较有破坏性,且万一断电了就凉凉)、磁性推杆(原理与电子液压推杆类似,有破坏性,但是不像电子液压推杆一次行程后会自锁,磁性推杆其实像电磁锁,需要持续供电以续锁)等方案。大家可以看自己情况选择。

为了实现本教程,所需准备的基础材料有:

wifi环境,万物之源。(esp8266仅可使用2.4GHz频段的wifi)esp8266一块,约10元。(建议选择全引脚引出和自带串口转USB的开发板,方便且可用充电宝供电)继电器一只,约2元。(注意需要选择可由3.3v驱动的5v继电器,部分5v继电器无法被mcu的3.3v带动)电磁锁一套,约30元。(可自由选择门锁类型,上面有介绍,本教程选择220v转12v的小吸力电磁锁)杜邦线若干,约2元。(连接用的导线)灵活细致且小心的双手,无价。(安全第一!)
杜邦线,esp8266开发版,继电器

*完整实现还需要:

服务器或主机一枚,约114元。(为了运行web服务端以实现远程开锁,114元为阿里云学生机优惠价,贵的可能是514元还可能是1919810元就不推荐了)开关一只,约1元。(门里的人想出去,室内按开关开门更方便)小型UPS一坨,约200元。(UPS为了防止断电大门失守,可以用充电宝代替)
阿里114元学生机(要素察觉

0x01 硬件组装

组装示例

根据你所购买的电磁锁卖家提供的教程安装电磁锁,此处不再赘述。确保门锁能正常工作吸合,且吸力足够。可选:接驳UPS。

在继电器控制端,使用母对公杜邦线将继电器的VCC和GND与esp8266的5V(或3.3V)和GND相连,通过板载电源输出供电。使用母对公杜邦线将esp8266的D0口与继电器IN口相连,如继电器有触发模式选择则将触发模式设置为高电平触发(HIGH)。TTL控制信号将由d0口发出,选择d0口的原因是开发板载led指示灯也由d0口触发,方便查看运行状态。

在继电器另一端(即工作端),使用公对公杜邦线将电磁锁驱动盒内12V+供电电源线与继电器公共端COM相连,电磁锁12V+与继电器常开端相连。

使用普通电源或充电宝给esp8266供电,现在已完成硬件端连接。将各种线整理好,能放的放入驱动盒内,注意不要短路。可选:连接室内开关,以类似继电器的连法串联电磁锁驱动盒内12V-供电电源线。

0x02 esp8266端代码烧录(本地服务器版)

电脑端访问:

Giftia/ChaosNodeMCUgithub.com/Giftia/ChaosNodeMCU

点击Star给我一个小红花(感谢),然后下载整个zip包,解压后,进入Tools文件夹内:

CH341SER.EXE 为USB转串口驱动,运行安装即可。ESP8266Flasher_x32(x64).exe 为NodeMCU烧录软件,选择适合自己系统的运行。nodemcu_float_0.9.6-dev_20150704.bin 为本程序所基于的板子固件(若板子无固件则必需),若板子没有固件,使用第2条所示软件刷入该固件。现在,将esp8266连接电脑,应该能在设备管理器内被正确识别。若没有正常识别,需要安装第1条所示驱动。ESPlorer.zip 为NodeMCU IDE。现在,解压它,然后运行run.bat。若无法运行需要安装java jdk,网上自行搜索下载。点击窗口左侧上方功能栏open,选择最开始的zip包解压目录下的init.lua,在代码中更改wifi的ssid和password为你环境wifi的名字和密码,保存一下。窗口右侧上方com选择相应com口并连接,console应该会提示板子版本和no init.lua。点击窗口左下角的upload,选择刚刚打开的init.lua,将代码上传至esp8266。进度条走完后,按一下esp8266的reset按键重启板子,此时窗口console应该会显示wifi连接状态,等待提示连接成功并显示板子现在的ip为http://192.168.xxx.xxx,打开连着wifi的手机浏览器,访问这个ip,你应该能看到一个简单的网页,试着点击开门,板子上的led应该会亮起三秒并熄灭,同时继电器会吸合,门锁会打开。现在,恭喜你完成了本地服务器版的局域网门禁配置。此后你可以通过:连接wifi、浏览器访问板子ip、点击开锁的方式来开门。

0x03 进阶:esp8266端代码烧录(无线物联网版)

在0x02,你成功搭建了一个无线局域网下的门禁系统,它完全由esp8266自己来建立本地服务端,作为一个有wifi功能的mcu,自行处理所有工作。优点是便捷易维护,一般出现问题都是在wifi断连,解决容易。但是缺点也显而易见,它的web前端受限于mcu的处理能力,只能提供非常简陋的静态网页,且显示网页速度慢;为了开个门一定要连wifi并且知道板子的ip才行,麻烦。所以更理想一些的实现是:用户手机无需连接wifi,直接在任意网络环境下开门。为了达到这种无线物联网实现效果,这需要一个独立的前端处理用户输入,负责将开门关门指令发送给esp8266,esp8266只需作为后端,负责开门关门即可,同时本地服务端仍然开启,作为备用开门手段,尽到它作为mcu的作用。

那么如何实现前后端的通信呢,大家知道,在互联网上,两台设备之间通信需要知道对方的公网ip地址,而现在由于运营商的原因,大家一般都是拿不到公网ip的,所以就需要内网穿透或者别的实现方法,而内网穿透实现繁琐且不稳定,这里我曲线救国,用到了一个物联网平台 酱菜物联:

酱菜物联-会学习的物联平台www.jcckiot.com/

酱菜物联的优点是只需一句post就可以控制设备,没有其他繁琐的各种操作,实现相当友好,对比过很多iot方案,还是选择了酱菜,可以说是最友好的方案了。我吹爆酱菜!

注册账户并获取apikey,在本地服务器版代码基础上,填入到init.lua相应位置并保存

用户界面获取apikey

回到主页,添加开关,电灯开关或者门开关都可以,这里我选了电灯开关,其实都差不多

感觉电灯开关的icon更适合做门禁开关

获取设备的sid和nid,填入到init.lua的相应位置并保存

upload代码到esp8266,reset一下板子,console应该会出现jcck绑定成功的反馈,现在板子已经成功和酱菜物联建立连接,你可以参考酱菜通信协议向酱菜物联发个post就可以控制门禁了

酱菜创客--通信协议|酱菜创客-通信协议 - 酱菜创客 - Powered by phpwindwww.jcckiot.com/phpwind/read.php?tid=2

接下来才是最重要但也是最简单的web前端的搭建

0x04 搭建ChatDACS(web端)

在服务器或者你自己的电脑上下载安装nodejs运行环境,lts版即可,戳这个 Node.js。戳这个 https://github.com/Giftia/ChatDACS,点击Star给我一个小红花(感谢),然后点release下载最新版本1.2.0即Latest release最新发行版,(下面的1.0预发行版已过时,除非学习需要,否则不建议下载),并解压。编辑解压后目录下的index.js,将apikey改为你自己的apikey并保存。在目录下运行cmd(Windows可以shift+右键资源管理器空白处,在此处打开cmd),输入
npm i

来安装依赖,等待依赖安装完成后,输入

node .

把它跑起来,窗口应该会显示系统启动和绑定成功的反馈

。现在,打开浏览器,访问架设机的ip(用自己电脑搭的可以直接访问127.0.0.1)并测试开门指令,门禁系统应该可以正常工作了。webUI是花了一晚上模仿的6.x老版本的微信界面,只对移动端进行了优化,PC端访问建议开发者工具模拟成手机访问获取最佳效果。

至此,ChatDACS搭建成功,项目架设完毕。

0x05 其他

这个项目还在开发中,现在已迭代到1.7.0,步入稳定阶段,部分功能仍将长期处于初级阶段,欢迎大家提issue来反馈和建议,再次感谢

@夏风
大佬给我带来写这篇教程的动力 ,下次将为大家带来如何做一个智能车锁的详尽教程,菜鸡缇娜鞠躬b( ̄▽ ̄)d~
ESP8266开发板 有钱快上车
淘宝
¥159.00
去购买

上一篇:门禁系统功能都包括什么?

下一篇:门禁基本功能的概述

发表评论:

评论记录:

未查询到任何数据!

在线咨询

点击这里给我发消息 售前咨询专员

点击这里给我发消息 售后服务专员

在线咨询

免费通话

24小时免费咨询

请输入您的联系电话,座机请加区号

免费通话

微信扫一扫

微信联系
返回顶部