社区安防系统

项目名称:社区安防系统

设备:ADAM4150、烟雾传感器,火焰传感器,人体传感器、串口线

第三方库:新大陆公司的Analog4150库

实验现象:ADAM4150通过串口线连接到移动终端com6口。打开程序:当烟雾传感器检测到有烟雾时,界面提醒。当人体传感器检测到有人时会提醒。当火焰传感器检测到有火焰时,界面提醒同时出现火焰图片

步骤:

1、界面设计。在res/layout目录下的action_main.xml文件中进行修改。

2、新建一个BasePort.java调用新大陆提供的Analog4150库,实现串口打开和关闭功能。

  1. import com.example.analoglib.Analog4150ServiceAPI;
  2. public class BasePort {
  3. public int openADAMPort(int com,int mode,int baudRate){
  4. return Analog4150ServiceAPI.openPort(com, mode, baudRate);
  5. }
  6. public void closeADAMPort(){
  7. Analog4150ServiceAPI.closeUart();
  8. }
  9. }

3、新建一个ADA4150.java文件,实现ADAM4150的控制功能和获取状态功能

  1. import android.util.Log;
  2. import com.example.analoglib.Analog4150ServiceAPI;
  3. import com.example.analoglib.OnFireResponse;
  4. import com.example.analoglib.OnPersonResponse;
  5. import com.example.analoglib.OnSmorkResponse;
  6. import com.example.analoglib.ReceiveThread;
  7. public class ADAM4150 extends BasePort{
  8. //风扇开关命令,这些命名是根据协议的
  9. private final char[] open1Fan={0x01,0x05,0x00,0x10,0xFF,0x00,0x8D,0xFF};
  10. private final char[] close1Fan={0x01,0x05,0x00,0x10,0x00,0x00,0xCC,0x0F};
  11. private final char[] open2Fan={0x01,0x05,0x00,0x11,0xFF,0x00,0xDC,0x3F};
  12. private final char[] close2Fan={0x01,0x05,0x00,0x11,0x00,0x00,0x9D,0xCF};
  13. //创建ADAM4150类的构造方法,并实现人体、烟雾、火焰的实时取值,并用get方法返回
  14. public static int mADAM4150_fd=0;
  15. private boolean rePerson;
  16. private boolean reFire;
  17. private boolean reSmork;
  18. public ADAM4150(int com,int mode,int baudRate){
  19. //打开串口
  20. mADAM4150_fd=openADAMPort(com, mode, baudRate);
  21. ReceiveThread mReceiveThread=new ReceiveThread();
  22. mReceiveThread.start();
  23. //设置人体回调函数,人体传感器接入DI0
  24. Analog4150ServiceAPI.getPerson("person", new OnPersonResponse() {
  25. @Override
  26. public void onValue(boolean arg0) {
  27. rePerson=!arg0;
  28. }
  29. @Override
  30. public void onValue(String arg0) {
  31. Log.e("cjI",arg0);
  32. }
  33. });
  34. Analog4150ServiceAPI.getFire("fire", new OnFireResponse() {
  35. @Override
  36. public void onValue(boolean arg0) {
  37. reFire=!arg0;
  38. }
  39. @Override
  40. public void onValue(String arg0) {
  41. Log.e("cjI",arg0);
  42. }
  43. });
  44. Analog4150ServiceAPI.getSmork("Smork", new OnSmorkResponse() {
  45. @Override
  46. public void onValue(boolean arg0) {
  47. reSmork=!arg0;
  48. }
  49. @Override
  50. public void onValue(String arg0) {
  51. Log.e("cjI",arg0);
  52. }
  53. });
  54. }
  55. //获取传感器值,true或者false
  56. public boolean getPerson(){
  57. return rePerson;
  58. }
  59. public boolean getFire(){
  60. return reFire;
  61. }
  62. public boolean getSmork(){
  63. return reSmork;
  64. }
  65. //打开风扇
  66. public void openFan1(){
  67. Analog4150ServiceAPI.sendRelayControl(open1Fan);
  68. }
  69. public void openFan2(){
  70. Analog4150ServiceAPI.sendRelayControl(open2Fan);
  71. }
  72. public void closeFan1(){
  73. Analog4150ServiceAPI.sendRelayControl(close1Fan);
  74. }
  75. public void closeFan2(){
  76. Analog4150ServiceAPI.sendRelayControl(close2Fan);
  77. }
  78. }

4、在MainActivity.java类中添加多线程逻辑控制界面的改变

  1. import com.example.analoglib.Analog4150ServiceAPI;
  2. import com.example.analoglib.AnalogHelper;
  3. import com.example.analoglib.OnFireResponse;
  4. import com.example.analoglib.OnPersonResponse;
  5. import com.example.analoglib.OnReceiveCompleteListener;
  6. import com.example.analoglib.OnSmorkResponse;
  7. import com.example.analoglib.ReceiveThread;
  8. import android.app.Activity;
  9. import android.app.Service;
  10. import android.os.Bundle;
  11. import android.os.Handler;
  12. import android.os.Message;
  13. import android.os.Vibrator;
  14. import android.view.View;
  15. import android.view.View.OnClickListener;
  16. import android.widget.TextView;
  17. import android.widget.ImageView;
  18. public class MainActivity extends Activity {
  19. private TextView mTvFire;
  20. private TextView mTvPerson;
  21. private TextView mTvSmoke;
  22. private ImageView mImgFire;
  23. private ADAM4150 mAdam4150;
  24. @Override
  25. protected void onCreate(Bundle savedInstanceState) {
  26. super.onCreate(savedInstanceState);
  27. setContentView(R.layout.activity_main);
  28. initView();//初始化控件
  29. }
  30. private void initView() {
  31. mTvFire = (TextView) findViewById(R.id.textView1);
  32. mTvPerson = (TextView) findViewById(R.id.textView3);
  33. mTvSmoke = (TextView) findViewById(R.id.textView2);
  34. mImgFire=(ImageView) findViewById(R.id.imageView2);
  35. //com6口,USB模式,9600波特率
  36. mAdam4150=new ADAM4150(6,1,3);
  37. mHandler.postDelayed(mRunnable,ms);
  38. }
  39. private int ms=1000;
  40. //声明一个Handler对象
  41. private Handler mHandler=new Handler();
  42. //声明一个Runnable对象
  43. private Runnable mRunnable=new Runnable() {
  44. @Override
  45. public void run() {
  46. mHandler.postDelayed(mRunnable,ms);
  47. mTvPerson.setText(mAdam4150.getPerson()?"无人":"有人");
  48. mTvFire.setText(mAdam4150.getFire()?"无火":"有火");
  49. mTvSmoke.setText(mAdam4150.getSmork()?"正常":"危险");
  50. //如果有火,显示火焰图片。否则就不显示火焰图片
  51. if(mAdam4150.getFire()){
  52. mImgFire.setVisibility(View.GONE);
  53. }else{
  54. mImgFire.setVisibility(View.VISIBLE);
  55. // long ms=500;
  56. // Vibrate(MainActivity.this,ms);
  57. }
  58. Analog4150ServiceAPI.send4150();
  59. }
  60. };
  61. //自定义Vibrate方法,调用系统自身的服务,实现震动功能
  62. public static void Vibrate(final Activity activity,long milliseconds){
  63. Vibrator vib=(Vibrator) activity.getSystemService(Service.VIBRATOR_SERVICE);
  64. vib.vibrate(milliseconds);
  65. }
  66. }

5、这里要注意的是烟雾、火焰所接的ADAM4150口亮灭分别有和无,但是人体红外的亮灭是表示无有

时间: 2024-08-30 11:12:53

社区安防系统的相关文章

智能家居安防系统的功能

报警及联动功能 通过安装门磁.窗磁,防止非法入侵,主人可通过安装在住户室内的报警控制器那里得到信号,从而快速接警处理.同时,可自动打开室内的照明灯光.启动警号等. 紧急求助功能 安装在室内的报警控制器具有紧急呼叫功能,外部的人可对住户的紧急求助信号做出回应和救助. 设/撤防联动控制 主人外出前启动安全防范系统的同时,系统可以联动切断某些家用电器的电源,例如:关掉所有的灯光,切断电熨斗.电水壶.电视机等家用电器的插座电源等;主人回家时可调整为正常,进入在家撤防模式,部分照明灯自动打开,室内烟感探测

武警监所智慧磐石安防系统开发搭建解决方案

武警监所智慧磐石安防系统有三防:"人防.技防以及物防"人防是指安全防范基础,利用人体感官.体能做出防范,制止风险发生.技防是利用各种电子信息设备的防范系统.物防用于安全防范目的.能延迟风险事件发生的各种实体防护手段(包括建(构)筑物.屏障.器具.设备.系统等). 武警监所智慧磐石安防系统主要针对监狱.看守所进行技防和物防手段.通过整合指挥.监控摄像.防护.报警.通信.处置等多个要素.实现信息智能管理.环境智能分析.通道智能防范.监控智能识别.险情智能感知.情况智能处置等智能功能系统,构

【转】我是如何一步一步搞定小区的安防系统

前言 博主从小就是一个喜欢把事情简单化的男人,但是现实总是在不经意间给你太多的惊喜,比如不停的搬家. 博主从大学毕业到现在前前后后凑足了10次搬家运动,终于在第10次搬家的时候搬进了真正属于自己的房子. 15年底趁着房价最低的时候捡了个漏,一咬牙买下一套两房半小居室,17年交房装修,终于在18年初计划搬进去住,博主我终于再也不用搬家了,心情愉悦,住进去之后就开始忙乎各种琐事,所以这几个月是非常的繁忙,博客也更得少,不过内容都在笔记里面,慢慢更. 博主所购的小区对自己的智能化系统宣传的很到位,所以

ntp网络校时服务器在安防系统的解决方案

网络校时服务器是以校正终端设备时间的一款标准服务器,在市场中的因其标准协议NTP标准符合大多数包括计算机,摄像机,监控,工控机等设备的时间校正协议,使得其在目前时间同步的市场中占据了相当大的比例.安防系统一般包括:监控系统,呼叫系统.办公电脑等组成.其中监控系统是安防中的主要组成部分,并随着现代计算机网络发展水平的提高,已经由最早的模拟系统转变为数字化系统,在现代工业应用中更加智能化,操作集中化,有利于监管配置,目前在政府机关,道路监控,电力电信,监狱公安,军队,商场酒店,超市小区等各个行业场所

RS485:智能安防系统案例

设备准备 PC机一个 网关一个 RS-485通信节点三个(三个M3主控模块,一个作为主机,两个从机) 火焰传感器一个 可燃气体传感器一个 USB转485调试器一个 一.云平台配置 http://www.nlecloud.com/ 二.节点固件下载 一路next到…… 三.硬件连线 实物连接图 代码分析 // 硬件抽象层初始化 HAL_Init(); // 系统时钟配置 SystemClock_Config(); // GPIO口初始化(包括LED,KEY1,KEY2,蜂鸣器) MX_GPIO_I

科博会2019智能安防展

第二十二届科博会-中国国际智能安防产业展览会China International Intelligent Security Industry Exhibition时间:2019年5月16日--19日 地点:北京·中国国际展览中心(老馆)前言:"十二五"期间,党和国家坚持全面依法治国战略,积极推动平安中国建设,着力提高动态化.信息化条件下驾驭社会治安局势能力.中办国办印发了<关于加强社会治安防控体系建设的意见>,相关部委制定了<关于加强公共安全视频监控建设联网应用工作

【成都首脑智能家居】智能家居形态各异 家用安防成刚需

这是一个"互联网满天飞"的时代,这是属于21世纪的新科技时代,在这个时代,我们不断探索.求变,希望能与这个时代的轨迹融合,作为高度集成的新产物,智能家居就是最好的时代见证. 安防行业作为传统的电子科技行业,与智能家居有着密切的关联,在传统安防行业"遭遇"众多发展瓶颈后,不断有安企进军智能家居领域,推出家用的安防产品,家用报警器就是一种重要的形态. 图片来源:图虫创意 智能家居是在互联网影响之下物联化的体现.智能家居通过物联网技术将家中的各种设备(如音视频设备.照明系

从俄罗斯恐怖爆炸谈平安城市安防技术

2017年4月3日,在俄罗斯圣彼得堡发生地铁爆炸,造成严重人员伤亡,俄罗斯总检察院也初步认为该爆炸事件为恐怖袭击.这是自2015年从埃及飞往俄罗斯圣彼得堡的客机坠毁以来,又一次发生重大伤亡的事故. 9.11推动反恐成为全世界高度重视和大力投入的一项关乎人类安全的事业,全球对恐怖分子的打击力度越来越大,那如何依托安防技术和监控技术,在反恐技术方面也有个革命性的突破,并以此来维护人类生命和财产安全呢? 在平安城市及智慧城市建设过程中,城市安防系统建设无疑成为防恐反恐的关键一环,而高清智能监控和智能分

大数据影响安防 存储分析问题迎刃而解

大数据无疑是今年的热门关键词之一,网络飞速发展,信息时代扑面而来,大量数据涌现.这些数据的价值,若能应用便是一笔财富,若不能挖掘其价值 进行应用,则只是数据,甚至可能是一种负担.安防数据也正在以几何级的速度快速增长,越来越多的安防用户对大数据提出了更高的要求,希望能够通过海量数据 的分析,达到预测预警的作用. 大数据对安防的真正意味是什么?对安防监控有何帮助? 美国利用大数据的做了什么? 在谈大数据对安防监控的影响之前,我们先来看下在大数据应用方面较为成熟的美国利用大数据做了些什么? 1.美国国