手机蓝牙在物联网超市中的应用

超市一站式购物已进入城市的千家万户。然而人们在选购时却采用直接翻阅商品的方式,既不方便又不卫生甚至大大缩短食品类商品保质期,也给超市商品管理造成很大难度。物联网(The Internet of things)基于射频识别(RFID)、红外感应等技术,把物品与互联网连接起来进行通讯,以实现识别、定位、监管的一种网络。

在具备蓝牙功能智能手机上开发一种信息交互软件,在消费者与超市之间组建一个信息交互的局域物联网,满足消费者对商品信息自动获取和信息交互的需求。相应系统称之为“超市局域物联网”

超市局域物联网

1. 国内相关技术研究

北京邮电大学的李飞云等在《基于 Symbian OS的XMPP协议的实现》中提出如何将即时通信的标准协议XMPP协议移植到智能手机;上海交通大学的吴华杰等在《基于 Windows Mobile 的智能手机蓝牙功能的实现》中分析了 Win Mobile 系统的蓝牙硬件设备控制与功能实现,得出了各种功能的性能指标:宁波工程学院的李剑在《基于蓝牙的信息发布系统设计》中分析并实现了借助Blue-COVe类库,通过 OBEX 协议发布信息的应用系统。

2.实现“超市局域物联网”的关键技术

(1)智能手机(Smartphone)

智能手机,具有独立的操作系统,可以由用户自行安装软件等第三方服务商提供的程序,通过程序来不断对手机的功能进行扩充,并可以通过移动通讯网络来实现无线网络接入的这样一类手机的总称。随着国内三大电信运营商对 3G(第三代移动通信)业务的大力推广,智能手机必将成为今后手机终端的主流。

(2) 无线 JAVA (J2ME)技术

“无线 Java”技术即J2ME (Java 2Micro Edition)是 Sun 公司专门用于嵌入式开发的 Java 软件。J2ME 将 Java 语言的与平台无关的特性移植到小型电子设备上,允许移动无线设备之间共享应用程序。J2ME 的架构分为 Configuration(配置)、Profile (简表)和Optional Packages (可选包)。

“MIDlet”:在MID(Mobile Information Device)移动信息设备上运行的 Java 程序被称为 MIDlet,类似 Applet。MIDlet 程序的运行是由 startApp),pauseApp0和 destroyApp0这3个方法控制的,它们都在javaxicroedition.midlet.MIDlet 中定义,所有的 MIDlet 都必须实现这3个方法startApp0方法用于标志一个 MIDlet 的开始执行,进入 Active 态;pauseApp0)方法标志着 MIDlet 进入了 Pause 状态:destroyApp0方法则标志着 MIDlet 进入 destroyed 态。

MIDlet 的执行状态是通过AMS即Application Management software 来进行管理的。AMS 是位于操作系统级别上用来管理MIDlet 运行的底层机制的总称。MIDlet state 确保了 AMS随时可以消灭该MIDlet。MIDlet 也可请求进入 Pause 态,当需要时再次激活。

(3)蓝牙通信技术

蓝牙是一种无线的短程传输技术。蓝牙规范采用微波频段工作,工作在全球通用的 2.4 GHZ ISM 频段,传输速率每秒 1M 字节,最大传输距离 30 米,通过增加发射功率可达到 100 米。

1)蓝牙微微网 (piconet)

超市物联网

微微网是通过蓝牙技术连接起来的一种点对点、点对多点微型网络。智能手机可通过此网络方便地建立一种标准的无线电连接来进行数据通信。多个相互独立的微微网可组成一个具有自组网特征的分布式网络。一个微微网中存在1个主单元和最多可达 7台的活动从单元。本研究系统中,超市信息发布设备为主设备,而消费者手机为从设备。信息发布设备将信息推送到消费者手机,消费者仅需在自己的手机中安装超市提供的信息接收软件就可以了。

2 )蓝牙协议栈

蓝牙技术的系统结构分 3 个部分:(1)硬件模块:(2)中间协议栈层:(3)高层应用。其中,硬件模块处于底层,涉及跳频与纠错编码等通信原理,这一部分对应用开人员透明,支持蓝牙的手机都具有该底层硬件模块。基于蓝牙的手机软件最基本的原理是使用蓝牙中间协议栈层的蓝牙无线技术 API。蓝牙中间协议栈描述了蓝牙技术的基本构成,分为硬件和软件 2 个部分,硬件协议栈由设备硬件提供,软件协议栈则由软件实现。

3)蓝牙无线技术API

API定义在 Javax、bluetooth 和 Javaxobex 内,便于程序员去调用,其中Javax.bluetooth,它包含了核心的 API,包括发现服务、设备管理、L2CAP(逻辑链路控制与适配协议) 等类,Javax.bluetooth 包是最重要的蓝牙核心API包,包内定义 4 个接口、6 个类和 3 个异常。

可按功能将其分为 3 种类型:

设备管理API:LocalDevice 类:本地设备,提供方法进行获取/发现代理、查询蓝牙属性等操作;RemoteDevice类:本地设备搜索到的远端设备;DeviceClass 类: 提供个设备类(CoD)记录的抽象; B、服务发现 API:UUID类:蓝牙设备全球惟一标识符,识别蓝牙服务或属性: DataElemment类:蓝牙服务属性值,一个蓝牙服务可含多个属性;DiscoveryListener 接口:定义了在发现蓝牙设备或服务的时候进行的回调。

DiscoveryAgent 类:发现代理,完成搜索蓝牙设备、蓝牙服务等操作,与蓝牙应用程序之间一对一关系:ServiceRecord 接口:服务记录,用来描述一个蓝牙服务;连接 API:L2CAPConnection 接口:建立一个客户端的面向连接 L2CAP 型连接;L2CAPConnectionNotifier 接口:用于建立一个服务端的 L2CAP 型的连接。

3.设计和实现“超市局域物联网”的方法

(1)用无线 JAVA 技术开发手机信息接收软件,实现在智能手机上接收商品/促销信息、发送需求信息、调用手机摄像头、加载照片、处理信息等应用层功能;

(2) 用ASPNET 结合 SQLSERVER 数据库开发WEB 模式服务端应用管理系统,管理商品:

(3)用无线 JAVA 技术开发超市端蓝牙信息发布程序,通过在各专类商品区(如水果区)设置携带蓝牙适配器的无盘终端向消费者智能手机发布商品信息,进行信息交互。

原标题:基于手机蓝牙微微网超市局域物联网应用研究

作者:孟昊雨

参考资料

https://www.hooketech.com/supermarket-local-internet-of-things.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/272139.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【PostGIS】在Java中操作postgis——使用springboot+Maven+mybatis框架

前言: PostgreSQL15对应PostGIS安装教程及空间数据可视化 空间数据库-常用空间函数 完成PostGIS的安装与配置后,让我们来写一个Java操作postgis数据库的demo吧~ 使用工具: NavicatIDEA 一、PostGIS数据库准备 在Navicat中新建一个postgr…

云渲染UE4像素流送搭建(winows、ubuntu单实例与多实例像素流送)

windows/ubuntu20.4下UE4.27.2像素流送 像素流送技术可以将服务器端打包的虚幻引擎应用程序在客户端的浏览器上运行,用户可以通过浏览器操作虚幻引擎应用程序,客户端无需下载虚幻引擎,本文实现两台机器通过物理介质网线实现虚幻引擎应用程序…

Golang 协程配合管道

请完成goroutine和channel协同工作的案例,具体要求: (1)开启一个writeData协程,向管道mtChan中写入50个整数. (2)开启一个readData协程,从管道intChan中读取writeData写入的数据。 &…

系列十(实战)、发送 接收批量消息(Java操作RocketMQ)

一、发送 & 接收批量消息 1.1、概述 批量消息是指RocketMQ可以把一组消息集合一次性发送,这一组消息会被当做一个消息供消费者消费。 1.2、Demo05MQTestApp /*** Author : 一叶浮萍归大海* Date: 2023/12/25 11:48* Description: 发送 & 接收批量消息*/ …

智能优化算法应用:基于袋獾算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于袋獾算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于袋獾算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.袋獾算法4.实验参数设定5.算法结果6.参考文献7.MA…

python CodeFormer 图像(人脸面部)修复源码

介绍 github地址:https://github.com/sczhou/CodeFormer [NeurIPS 2022] Towards Robust Blind Face Restoration with Codebook Lookup Transformer 效果: 测试环境: anconda3python3.8 torch1.9.0cu111 pyqt5 部分代码: i…

记一次应急响应练习(windows)

记一次应急响应练习(windows) windows: 1.请提交攻击者攻击成功的第一时间,格式:YY:MM:DD hh:mm:ss 答:2023/04/29:22:44:32 思路: 看见桌面的小皮面板,进入小皮的安装目录。发现…

nodejs进阶

文章目录 写在前面一、dependencies、devDependencies和peerDependencies区别:二、需要牢记的npm命令2.1 npm init2.2 npm config list2.3 npm配置镜像源 三、npm install 的原理四、package-lock.json的作用五、npm run 的原理六、npx6.1 npx是什么6.2 npx的优势6.…

一个卖美妆的 一个月招了数十万代理!月销售额破亿 你敢相信吗?

商业模式永不过时 大家好,我是吴军,一家软件公司的产品经理 今天我们来聊一下这个纪炫商城 其实,说这个纪炫商城之前,我想跟各位企业家老板聊几句实在话 作为公司两百多号技术的,一个拥有五年软件开发经验的产品经理…

深入探讨Java反射:解析机制与应用场景

当谈及Java编程语言的强大功能时,反射(Reflection)是一个不可忽视的特性。反射允许程序在运行时检查和操作其自身的结构,这为开发者提供了一种动态获取信息和执行操作的途径。在本篇博客中,我们将深入探讨Java反射的原…

分支限界法求解01背包(优先队列)【java】

实验内容:运用分支限界法解决0-1背包问题 实验目的:分支限界法按广度优先策略遍历问题的解空间树,在遍历过程中,对已经处理的每一个结点根据限界函数估算目标函数的可能取值,从中选取使目标函数取得极值的结点优先进行广度忧先搜…

day42 1226

作业1&#xff1a; #include <iostream>using namespace std;namespace myspace {string str; }int length(string str) {//char *p &str.at(0);const char *p str.data();int count 0;while (*p ! 0) {p;count;}return count; } int main() {getline(cin,myspac…

元素隐式具有 “any“ 类型,因为类型为 “string“ 的表达式不能用于索引类型 “typeof

报错展示 解决办法 Object.keys(directives).forEach(k > {app.directive(k, directives[k as keyof typeof directives]) })

工具系列:TensorFlow决策森林_(3)使用dtreeviz可视化

文章目录 介绍设置安装 TF-DF 和 dtreeviz导入库 可视化分类树加载、清洗和准备数据分割训练/测试集并训练模型训练一个随机森林分类器显示决策树检查叶节点统计信息决策树如何对实例进行分类特征空间划分 可视化回归树加载、清洗和准备数据分割训练/测试集并训练模型训练一个随…

【linux】线程概念

线程概念 1.储备知识1.1再谈页表 2.线程概念2.1如何理解多线程2.2如何证明2.3什么是线程2.4线程的优点2.4线程的缺点2.5线程异常2.6进程vs线程 喜欢的点赞&#xff0c;收藏&#xff0c;关注一下把&#xff01; 1.储备知识 1.1再谈页表 在上一篇博客说过&#xff0c;页表除了用…

Oracle查询重复数据取第二行,好用来删除重复数据

Oracle查询重复数据取第二行&#xff0c;好用来删除重复数据 SELECT * FROM ( SELECT e.* , ROW_NUMBER() over(PARTITION BY product_category_id,model_size_id ORDER BY product_category_id,model_size_id) rn FROM equ_check_rules e ) s WHERE rn 2;

鸿蒙开发之图片选择器

一、使用 系统的图片选择器真的非常友好&#xff0c;这个绝对要赞一下。 pickPhotos() { //初始化一个photopicker let photoPicker new picker.PhotoViewPicker()//maxSelectNumber最多选择多少张&#xff08;默认值为50&#xff0c;最大值为500&#xff09; //MIMEType 选…

Spring-1-Spring中引入loC和DI

控制反转和依赖注入 IoC 核心是 DI 旨在提供一种更简单的机制来设置组件依赖项&#xff0c;并在整个生命周期中管理这些依赖项 需要某些依赖项的组件通常被称为依赖对象&#xff0c;或者在 IoC 的情况下被称为目标对象 通常&#xff0c; IoC可以分解为两种子类型 依赖注入和依…

Isaac Sim 仿真机器人urdf文件导入

本教程展示如何在 Omniverse Isaac Sim 中导入 urdf 一. 使用内置插件导入urdf 安装urdf 插件 方法是转到“window”->“Extensions” 搜索框中输入urdf, 并启用 通过转至Isaac Utils -> Workflows -> URDF Importer菜单来访问 urdf 扩展。 表格中的 1,2,3 对应着…
最新文章