没有GPS也想定位,试试JavaScript轻应用的基站定位

简介: 本篇我们将基于HaaS 600Kit开发板,以及阿里云开发工具IoT-Studio来搭建一个简单的定位功能,说到设备定位,同学们可能都会想到GPS定位,其实除了像GPS这种卫星定位之外,我们身边的设备如:智能手机、智能手表、穿戴设备等能联网的设备都可以用来定位,通过连接运营商(电信、联通、移动)基站来定位的方式称之为基站定位,或者又称之为移动位置服务(LBS--Location Based Service)。

1、前言

本篇我们将基于HaaS 600Kit开发板,以及阿里云开发工具IoT-Studio来搭建一个简单的定位功能,说到设备定位,同学们可能都会想到GPS定位,其实除了像GPS这种卫星定位之外,我们身边的设备如:智能手机、智能手表、穿戴设备等能联网的设备都可以用来定位,通过连接运营商(电信、联通、移动)基站来定位的方式称之为基站定位,或者又称之为移动位置服务(LBS--Location Based Service)。


基站定位的原理是设备依靠跟运营商基站的连接信息来计算出设备相对基站的位置,而基站的位置是固定的,所以设备的位置也会相应的计算出来;

image.png

2、实战目标

使用HaaS600Kit开发板,不依赖于板载的GNSS模块,使用联网信息获取设备经纬度并在地图上展现出来。


目标拆分


获取设备联网信息

上报设备联网信息到物联网平台,获取设备经纬度

使用IoT-Studio添加地图组件,在地图上展示设备位置及其他信息


3、准备工作

硬件


HaaS600Kit开发套件

sim卡一张

软件


轻应用命令行工具

设备端JavaScript应用代码


4、实战操作

4.1、设备bringup

不熟悉HaaS600Kit开发套件的同学请阅读该文章HaaS600Kit

熟悉HaaS600Kit开发套件的同学请直接到step2


4.2、物联网平台创建产品及设备

登录阿里云物联网平台创建产品

image.png

  • 创建产品模型
  • image.png
  • image.png


此处需要添加两个功能,一个是自定义功能,用来接收设备上报的网络信息,一个是标准功能,用来放经纬度信息。

自定义功能:LocationInfo


image.png

输出参数 cdma bts nearbts数据类型都是text

标准功能:   GeoLocation

image.png

产品模型创建完成需要发布上线才能生效。

image.png

产品模型创建完成之后,需要添加设备,如下图所示

image.png

点击添加设备,device_name可以随便定义,不写的话系统随机生成。

image.png

设备创建成功,如下图所示

image.png

此时我们需要保存该设备的秘钥,留待后续使用

image.png

4.3、设备运行,获取位置

  • 将示例代码推送到设备端,需要将代码中的设备三元组替换成上一步中创建的设备三元组(productKey,deviceName,deviceSecret).
  • 设备运行,从云端查看设备属性,发现已获取到经纬度信息

image.png

4.4、IoT-Studio项目创建

  • 创建组态服务项目

image.png

image.png

image.png

image.png

找到地图组件后拖入工作区

image.png

image.png

因为我们没有创建过地图场景,所以选择场景中是空的,需要我们在二维数据可视化中创建场景。

 

4.5、地图场景创建

在创建场景的时候,我们的控制台会自动跳转到阿里云IoT空间数据可视化平台,如图所示

image.png

我们选择二维数据可视化,然后点击创建场景即可。

在创建场景的时候,这边非常友好的提供了两种数据来源,我们这边选择数据来源于物联网平台。

 image.png

image.png

创建完成之后,可以看到在地图上已经展示出了设备的具体位置,还可以基于设备的位置增加一个附加功能,例如:周界报警、地理围栏、历史轨迹、热力图等等,还可以选择地图主题跟3D模型。

image.png

此时在IoT-Studio场景中就出现了轻应用实战之基站定位,添加即可。

整体预览

image.png

5、总结

本实战涉及知识较多,涉及到设备到云端的全链路能力以及地图能力。

  • 获取设备联网信息
  • 将设备联网信息发送到物联网平台对应的物模型下面
  • 创建标准物模型地理位置
  • 在IoT-Studio创建地图场景

 

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
2天前
|
JavaScript 前端开发
js怎么定位不同的页面元素
在JavaScript中,有多种方法定位和选择页面元素。
|
7天前
|
JavaScript API 数据库
深入理解Node.js事件循环及其在后端开发中的应用
【9月更文挑战第3天】本文将深入浅出地介绍Node.js的事件循环机制,探讨其非阻塞I/O模型和如何在后端开发中利用这一特性来处理高并发请求。通过实际的代码示例,我们将看到如何有效地使用异步操作来优化应用性能。文章旨在为读者揭示Node.js在后端开发中的核心优势和应用场景,帮助开发者更好地理解和运用事件循环来构建高性能的后端服务。
|
9天前
|
缓存 JavaScript 前端开发
JavaScript模块化开发:ES6模块与CommonJs的对比与应用
JavaScript模块化开发:ES6模块与CommonJs的对比与应用
15 2
|
13天前
|
JavaScript 前端开发 API
揭秘现代前端开发秘籍:Vue.js与ES6如何联手打造惊艳应用?
【8月更文挑战第30天】本文介绍如何从零开始使用Vue.js与ES6创建现代前端应用。首先,通过简要介绍Vue.js和ES6的新特性,使读者了解这两者为何能有效提升开发效率。接着,指导读者使用Vue CLI初始化项目,并展示如何运用ES6语法编写Vue组件。最后,通过运行项目验证组件功能,为后续开发打下基础。适用于希望快速入门Vue.js与ES6的前端开发者。
29 3
|
11天前
|
机器学习/深度学习 存储 前端开发
实战揭秘:如何借助TensorFlow.js的强大力量,轻松将高效能的机器学习模型无缝集成到Web浏览器中,从而打造智能化的前端应用并优化用户体验
【8月更文挑战第31天】将机器学习模型集成到Web应用中,可让用户在浏览器内体验智能化功能。TensorFlow.js作为在客户端浏览器中运行的库,提供了强大支持。本文通过问答形式详细介绍如何使用TensorFlow.js将机器学习模型带入Web浏览器,并通过具体示例代码展示最佳实践。首先,需在HTML文件中引入TensorFlow.js库;接着,可通过加载预训练模型如MobileNet实现图像分类;然后,编写代码处理图像识别并显示结果;此外,还介绍了如何训练自定义模型及优化模型性能的方法,包括模型量化、剪枝和压缩等。
22 1
|
11天前
|
JavaScript 前端开发 开发者
|
11天前
|
C# 开发者 测试技术
震惊!Xamarin 竟能如此构建跨平台应用程序,代码共享、界面设计与性能优化全攻略大揭秘!
【8月更文挑战第31天】在移动应用开发领域,跨平台工具日益受到青睐。Xamarin 是一款强大的工具,支持使用 C# 开发适用于 iOS、Android 和 Windows 的应用。通过安装 Visual Studio 或 Visual Studio for Mac,并创建 Xamarin 项目,开发者可以利用丰富的功能和工具进行开发。Xamarin 的主要优势在于代码共享,能够显著提高开发效率。
26 0
|
11天前
|
前端开发 Java UED
JSF 面向组件开发究竟藏着何种奥秘?带你探寻可复用 UI 组件设计的神秘之路
【8月更文挑战第31天】在现代软件开发中,高效与可维护性至关重要。JavaServer Faces(JSF)框架通过其面向组件的开发模式,提供了构建复杂用户界面的强大工具,特别适用于设计可复用的 UI 组件。通过合理设计组件的功能与外观,可以显著提高开发效率并降低维护成本。本文以一个具体的 `MessageComponent` 示例展示了如何创建可复用的 JSF 组件,并介绍了如何在 JSF 页面中使用这些组件。结合其他技术如 PrimeFaces 和 Bootstrap,可以进一步丰富组件库,提升用户体验。
21 0
|
11天前
|
JavaScript 开发者
深入理解Node.js事件循环及其在后端开发中的应用
【8月更文挑战第31天】 本文将带你走进Node.js的事件循环机制,通过浅显易懂的语言和实例代码,揭示其背后的工作原理。我们将一起探索如何高效利用事件循环进行异步编程,提升后端应用的性能和响应速度。无论你是Node.js新手还是有一定经验的开发者,这篇文章都能给你带来新的启发和思考。
|
11天前
|
API UED 开发者
如何在Uno Platform中轻松实现流畅动画效果——从基础到优化,全方位打造用户友好的动态交互体验!
【8月更文挑战第31天】在开发跨平台应用时,确保用户界面流畅且具吸引力至关重要。Uno Platform 作为多端统一的开发框架,不仅支持跨系统应用开发,还能通过优化实现流畅动画,增强用户体验。本文探讨了Uno Platform中实现流畅动画的多个方面,包括动画基础、性能优化、实践技巧及问题排查,帮助开发者掌握具体优化策略,提升应用质量与用户满意度。通过合理利用故事板、减少布局复杂性、使用硬件加速等技术,结合异步方法与预设缓存技巧,开发者能够创建美观且流畅的动画效果。
34 0