bluebanboom
获得 2 次赞
帮助过38人
本帖最后由 bluebanboom 于 2017-9-24 20:34 编辑 树莓3带有蓝牙芯片,androidthings本身也支持蓝牙,之前研究了不少ble板子,这次在androidthings上再来看看如何使用蓝牙。由于对安卓不是很熟,所以一步一步的来吧,先实现一个简单的ble设备搜索功能。 androidthings就是安卓,在之前的试用中已经提及了。因为androidthings是基于最新的android o,api有一些变化,但大致还是差不多的。 1.检查设备是否支持蓝牙 虽然rpi3肯定支持了,但是还是按部就班的来检查一下吧,使用如下代码检查:
既然可以为lcd1602提供http接口,接入网络展示信息。同样,我们还可以为一些传感器提供http接口,通过http来获取传感器的数据。最常见的传感器大概就是温湿度传感器了,这次来尝试将dht11接入网络来展示温湿度。 有了之前的经验,再接入dht11就太简单了,很简单有http请求来了就直接返回数据就ok了。当然,考虑到我们这个是个接口,可能在手机app啊,电脑浏览器啊等等设备上显示,搞规范一些,返回json数据就好了。 dht11的驱动还是找了个现成的库
小钢炮平台外设丰富,而且官方的例子就有小钢炮的姿态展示。通过小钢炮上的加速度计、陀螺仪、磁力计等计算出四元数,然后通过蓝牙将四元数发送到手机,在手机上根据四元数来展示小钢炮的姿态。关于姿态展示,小钢炮的文档匮乏,通过代码确认发送的是float类型的四元数数组,但是安卓的解析代码感觉不是使用四元数处理的,因为四元数这部分我还比较困惑,所以不是很肯定。在安卓上使用的是opengl来展示姿态,但是感觉opengl学习比较困难,为了简单期间采用了three.js来在浏览器里展示姿态,相对opengl来说three.js要简单,而且也不需要安装什么开发环境。 因为要在浏览器里展示实时姿态,实时是关键,浏览器里不能直接访问蓝牙数据,所以我们通过websocket再来封装一层,蓝牙接收到的数据再通过websocket传给浏览器这样就可以实时展示了。 小钢炮里用的四元数算法来自这里
连着两篇都玩wi-fi应该发现wi-fi既简单又好玩了吧?这次再来一个花样玩法,通过pwm来实现炫彩可调三色led。 有了前面的基础,很容易去实现通过http来设置led的颜色。按照之前lcd1602的方式,设置led颜色的url大概是这样的
在上一篇帖子里,我们把lcd1602接入网络了成为了物联网屏幕,可以展示信息。同样,我们还可以将一些传感器接入网络,成为物联网传感器来显示传感器的数据。最常见的传感器大概就是温湿度传感器了,这次来尝试将dht11接入网络来展示温湿度。 有了之前的经验,再接入dht11就太简单了,很简单有http请求来了就直接返回数据就ok了。当然,考虑到我们这个是个接口,可能在手机app啊,电脑浏览器啊等等设备上显示,搞规范一些,返回json数据就好了。 dht11的驱动还是找了个现成的库
驱动lcd1602太简单了,linkit 7697还有强大的蓝牙和wi-f功能,毕竟专门为物联网准备的开发板,不接入网络有点浪费了。那我们就吧1602接入网络了,来一个物联网小屏幕,虽然比较小但是显示一些信息还是足够了。 lcd1602在上一篇中已经成功驱动了,比较简单,难点在wi-fi方面,linkit 7697自带了wi-fi示例,代码还是比较容易读懂的,现在关键就是如果向linkit 7697传入数据。换句话说就是linkit 7697该提供什么样的网络接口来接收数据。 一般来说,我们提供接口都会在url后面加一些参数,比如
由于linkit 7697兼容arduino,所以很多模块直接用arduino的代码就行。 我们来验证一下linkit 7697使用lcd1602可以不可以。如下图所示,linkit7697的i2c的两个引脚clk和data分别对应p8和p9,将这两个引脚与lcd1602连接好。