使用Android studio完成简易智能家居APP的制作(含源码工程包)

这篇具有很好参考价值的文章主要介绍了使用Android studio完成简易智能家居APP的制作(含源码工程包)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 (填下坑,把我之前答应大家的完整软件代码翻出来,供大家一起学习)

可以看看实现效果先: 

智能家居APP展示视频(含源码)_哔哩哔哩_bilibili

目录

项目说明

功能介绍

系统功能需求

具体实现的软件功能

 1、地图定位

2、蓝牙按钮

3、远端控制 

核心代码展示说明

蓝牙控制代码说明

1、蓝牙工具类:

 2、判断蓝牙是否连接

源码及相关Android电子书链接:源码及其Android相关书籍


项目说明

这个是我毕业设计的完整软件项目,其实较为简陋,读者可以在此基础上二次开发,其包含三个功能,点击地图定位(设置家庭地址)、蓝牙控制(用于控制CC2530硬件,实质只是完成了SPP协议的数据上传及发送)、远端控制(WI-FI)。而我的毕业设计总体而言,包含软件、硬件两大板块,软件就是这个基于Android实现的智能家居APP,其中点击地图定位功能,及其附加功能我已经在往期文章中详细阐述,链接如下:

Android如何实现地图定位?Android studio+百度地图API+Android6.0系统实现地图显示、地址设置、点击地图定位功能(详细)

硬件板块分为三个内容:即基于C8T6实现WI-FI远端控制、基于CC2530实现简易智能家居组网、基于LD3320实现语音识别控制。具体操作实现步骤,可以详见我往期文章,链接如下:

STM32F103C8T6+ESP8266+MQTT使用最新版的oneNet可视化View实现远程控制(详细)

实现语音识别系统:手把手教你使用STM32C8T6和LD3320(SPI通信版)实现语音识别

功能介绍

系统功能需求

功能需求,其一产品的Android手机端可实现点击定位功能,当定位在设定的家附近时,可选择跳转至远端控制,提前打开路灯,并可根据家中实时温湿度数据,开关空调设备且提供远端的洗衣机开关;其二则是在回到家中后,门口的声控灯、厨房的烟雾报警器、窗口的窗帘、客厅的风扇全部自动控制,以上包括需要手动控制的灯关皆由Zigbee技术进行组网,其中蓝牙模块HC-05作为手动控制设备的中间媒介;其三是在卧室设置一个语音控制系统,既可以控制灯光,同时也能控制风扇等设备。 

具体实现的软件功能

 1、地图定位

一套基于Android 4.0及以上版本设备的应用程序接口,所实现的功能由普通地图、卫星地图的切换,可以查看路况图和热力图,同时可以显示当前所在地区,缩放当前地图视野,且可以点击地图查看当前地图的经纬度。由于要配合智能家居的远程控制系统,所以另外添加了家庭地址的设置功能。

2、蓝牙按钮

蓝牙按钮功能程序的本质就是蓝牙串口通讯,该通讯的实现是基于SPP协议(Serial Port Profile),它能够建立蓝牙设备之间串口传输数据的功能程序而蓝牙串口旨在解决如何确保两种不同装置(通信的两端)应用程序间有完整通信路径的问题,其具体实现功能是完成Android手机对蓝牙模块HC-05的控制,进而实现手动控制Zigbee组网的智能家居系统,在尚未连接时,弹窗出现提示并给出返回和刷新功能,连接成功后出现按钮界面可以通过蓝牙指令控制家居设备,同时,当断开蓝牙设备后将重新出现蓝牙选择界面并给出提示。

 android智能家居app开发,智能家居

 android智能家居app开发,智能家居

3、远端控制 

远程控制功能程序是用One Net开发平台的可视化View,设计的一款应用,利用MQTT协议进行数据的上传和命令下发,以网页的形式下发和数据上传,即该功能界面不是Android studio设计的,是通过Android端进行程序的开启。

android智能家居app开发,智能家居

核心代码展示说明

关于地图定位方面和远端控制两大功能,不做过多的解释说明,因为远端控制也只是通过Android端打开一个网络端的应用程序,它之所以会出现闪退的现象,是因为它的实现需要在开启权限的同时,打开证书信用确保打开的HTTPS是安全可靠的,否则当打开云台网页应用时会出现闪退现象,且因为在Android 5.0之后,默认情况下,不得载入http和https的混合体,有必要设置webview,让它可以装载混合网络协议的内容。代码链接如下:

解决Android端打开OneNet平台的可视化view闪退问题

蓝牙控制代码说明

 那么我们的难点来到了蓝牙控制功能,首先需要明白,它就是一个蓝牙通讯app,和大家在应用商店下载的那些SPP软件的内核没有任何区别,总而言之本质是一样的。而我所做的,只是创建了一个丑不拉几的只适用于我系统的界面而已这其中,我所解决的难点有,关于蓝牙数据的上传与手机数据发送的实现、蓝牙断联后如何出现弹窗进行重新搜索连接日志的上下滑动的实现等等。

 还有一点需要申明的,我所调用的,是一位大佬写的蓝牙工具类,这个对我的帮助很大,我忘记是谁了,但是不管怎么样,感恩!!!

1、蓝牙工具类:

BLESPPUtils.java文件,代码如下,其中包含了,蓝牙源的搜索、蓝牙开启、保留日志、接受和发送字节数据等等。代码我就不贴了,具体可以看源码

 2、判断蓝牙是否连接

    /**
     * 判断蓝牙是否断开连接
     */
    //The BroadcastReceiver that listens for bluetooth broadcasts
    private final BroadcastReceiver BTReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();
            if (BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(action) && menu_flag==0) {
                Intent intent_context = getIntent();
                finish();
                startActivity(intent_context);
                //Do something if disconnected
                Toast.makeText(getApplicationContext(), "不好意思,检测到设备已经断开连接,正在重启", Toast.LENGTH_SHORT).show();
            }
        }
    };

3、日志的上下滑动实现(TextView

 这个是因为我菜,所以纠结了好久,其实只需要在layout中设置以下即可,具体位置如图:

android智能家居app开发,智能家居


 总结一下:关于我智能家居软件而言,其实也是我通过网络资源的整合与修改实现的,所以我认为取之于此,回馈于此,想着把我所做的这个小小项目发出来,也能够帮助到一些人。虽然这个软件界面做的很丑,很多功能或许还不完善,但也确实倾尽不少心血,而Android我也只是学了一些皮毛,这里我也会放一些我看过的Android电子书,放在源码的链接里,希望可以与大家一起学习进步。如果大家觉得有帮助,可以关注一波,共勉!

哦,对了,我打算后面聊聊cc2530及其相关的协议栈,关于无线传感网络的,我本科大部分时间就学这玩意了,打算好好总结一下所学知识,以免出现遗忘。以上文章来源地址https://www.toymoban.com/news/detail-742356.html

源码及相关Android电子书链接:源码及其Android相关书籍

到了这里,关于使用Android studio完成简易智能家居APP的制作(含源码工程包)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【雕爷学编程】Arduino智能家居之使用Blynk控制两个舵机的角度

    Arduino是一个开放源码的电子原型平台,它可以让你用简单的硬件和软件来创建各种互动的项目。Arduino的核心是一个微控制器板,它可以通过一系列的引脚来连接各种传感器、执行器、显示器等外部设备。Arduino的编程是基于C/C++语言的,你可以使用Arduino IDE(集成开发环境)来

    2024年02月04日
    浏览(68)
  • 【雕爷学编程】Arduino智能家居之使用ESP8266WiFi库和DHTesp库

    Arduino是一个开放源码的电子原型平台,它可以让你用简单的硬件和软件来创建各种互动的项目。Arduino的核心是一个微控制器板,它可以通过一系列的引脚来连接各种传感器、执行器、显示器等外部设备。Arduino的编程是基于C/C++语言的,你可以使用Arduino IDE(集成开发环境)来

    2024年01月18日
    浏览(51)
  • 【雕爷学编程】Arduino智能家居之使用WiFi连接和HTTP POST上传数据

    Arduino是一个开放源码的电子原型平台,它可以让你用简单的硬件和软件来创建各种互动的项目。Arduino的核心是一个微控制器板,它可以通过一系列的引脚来连接各种传感器、执行器、显示器等外部设备。Arduino的编程是基于C/C++语言的,你可以使用Arduino IDE(集成开发环境)来

    2024年01月23日
    浏览(58)
  • 【雕爷学编程】Arduino智能家居之使用WeatherAPI.com API获取天气预报

    Arduino是一个开放源码的电子原型平台,它可以让你用简单的硬件和软件来创建各种互动的项目。Arduino的核心是一个微控制器板,它可以通过一系列的引脚来连接各种传感器、执行器、显示器等外部设备。Arduino的编程是基于C/C++语言的,你可以使用Arduino IDE(集成开发环境)来

    2024年02月03日
    浏览(54)
  • 【雕爷学编程】Arduino智能家居之使用WiFiClient库发送GET请求获取新闻头条

    Arduino是一个开放源码的电子原型平台,它可以让你用简单的硬件和软件来创建各种互动的项目。Arduino的核心是一个微控制器板,它可以通过一系列的引脚来连接各种传感器、执行器、显示器等外部设备。Arduino的编程是基于C/C++语言的,你可以使用Arduino IDE(集成开发环境)来

    2024年02月04日
    浏览(51)
  • 【雕爷学编程】Arduino智能家居之使用以太网连接和HTTP POST上传数据

    Arduino是一个开放源码的电子原型平台,它可以让你用简单的硬件和软件来创建各种互动的项目。Arduino的核心是一个微控制器板,它可以通过一系列的引脚来连接各种传感器、执行器、显示器等外部设备。Arduino的编程是基于C/C++语言的,你可以使用Arduino IDE(集成开发环境)来

    2024年02月04日
    浏览(41)
  • 【雕爷学编程】Arduino智能家居之使用WiFi连接和WiFiClient库发送GET请求

    Arduino是一个开放源码的电子原型平台,它可以让你用简单的硬件和软件来创建各种互动的项目。Arduino的核心是一个微控制器板,它可以通过一系列的引脚来连接各种传感器、执行器、显示器等外部设备。Arduino的编程是基于C/C++语言的,你可以使用Arduino IDE(集成开发环境)来

    2024年02月19日
    浏览(71)
  • BL0942 内置时钟免校准计量芯片 用于智能家居领域 上海贝岭 低成本 使用指南

    BL0939是上海贝岭股份有限公司开发的一款用于智能家居领域进行电能测量的专用芯片,支持两路测量,可同时进行计量和漏电故障检测,漏电检测电流可设,响应时间快,具有体积小,外围电路简单,成本低廉的优点。 功能简介 BL0942是一颗内置时钟免校准电能计量芯片,适

    2024年01月24日
    浏览(44)
  • 智能家居(13)——智能家居控制系统

    灯光的控制:模拟客厅灯、餐厅灯、二楼灯、卫生间灯。灯光可以通过手机App、语音、控制开关。 家内发生火灾后报警功能。 温湿度检测通过服务器上传到手机App。 摄像头安全监控,将视频上传到手机App,并通过摄像头实现人脸识别智能开锁。 灯光通过普通IO口控制,自己

    2024年02月11日
    浏览(63)
  • 【雕爷学编程】Arduino智能家居之使用Arduino发送温湿度数据到MQTT频道(使用PubSubClient库)

    Arduino是一个开放源码的电子原型平台,它可以让你用简单的硬件和软件来创建各种互动的项目。Arduino的核心是一个微控制器板,它可以通过一系列的引脚来连接各种传感器、执行器、显示器等外部设备。Arduino的编程是基于C/C++语言的,你可以使用Arduino IDE(集成开发环境)来

    2024年02月04日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包