专栏名称: 传感器技术
制造业的未来是智能化,智能化的基础就是传感器; 互联网的方向是物联网,物联网的基石也是传感器; 关注传感器技术,获得技术资讯、产品应用、市场机会,掌握最黑科技,为中国工业导航。
目录
相关文章推荐
电子商务研究中心  ·  估值超百亿港元!钢铁交易平台“找钢网”借壳上 ... ·  22 小时前  
首席品牌官  ·  盘点2025的品牌春节企划,谁的年味最浓? ·  昨天  
跨境电商Eason  ·  小白如何运营eBay经理号 ·  2 天前  
加国无忧  ·  加拿大Costco、Walmart、Lobl ... ·  3 天前  
加国无忧  ·  加拿大Costco、Walmart、Lobl ... ·  3 天前  
51好读  ›  专栏  ›  传感器技术

不知道这个功能?你的Android手机白用了

传感器技术  · 公众号  ·  · 2017-07-09 06:27

正文

来源: CSDN物联网开发


图1. Android App 控制 LED


图2. Android App 界面


接收示例


下图是 Android 手机接收数据的示例。Arduino 开发板通过温度传感器 DS18B20 获取温度值,Android App 每15秒刷新一次温度值,并且为了更好的展示效果,我实现了手机的语音播报。在后续的步骤4、5、6中将详细描述 Arduino 代码和应用程序。


图3. Android 手机显示环境温度


接下来,我将一步步介绍布线方法,编写一个能够收发命令的 Arduino sketch , 并且编写应用程序。本教程需要你对 Arduino 有基本的了解,熟悉它的 IDE,最好做过一些小项目。这样的话,本教程中的内容将是非常好理解的,你将非常容易实现对 Arduino 的串行通信。


步骤1
接线和零件清单



图4. 发送示例硬件连线图


连线方法如上图所示,非常简单。


零件清单:


  • Arduino开发板

  • 蓝牙串口模块

步骤2
Arduino 代码


以下是我编写的 Arduino 代码,你可以在此基础上随意修改。

需要注意的是波特率,请确保它和你的蓝牙模块匹配,建议你仔细查看数据手册或者 AT 指令表。


const int ledPin = 2;  // the pin that the LED is attached to

byte serialA;

void setup()

{

// initialize the serial communication:

Serial.begin(19200); //baud rate - make sure it matches that of the module you got:

// initialize the ledPin as an output:

pinMode(ledPin, OUTPUT);

}

void loop() {

if (Serial.available() > 0) {serialA = Serial.read();Serial.println(serialA);}

switch (serialA) {

case 1:

digitalWrite(ledPin, HIGH);

break;

case 2:

digitalWrite(ledPin, LOW);

break;

case 3:

digitalWrite(ledPin, HIGH);

delay(100);

digitalWrite(ledPin, LOW);

delay(100);

default:

break;

}

}


步骤3
App 和 App Inventor


图5. App Inventor 界面


步骤4
从 Arduino 接收数据


本步骤将介绍一个从 Arduino 开发板接收数据的示例。


我决定做一些实用的东西,因此选择了一个 DS18B20 温度传感器。Arduino 开发板使用一根线就可以实现和传感器的通信,它调用Arduino 版的 OneWrite 库来计算温度值,然后每隔 500ms 通过蓝牙模块将温度值发送出去。


手机 App 每 500ms 轮询一次串口,如果有数据则读取并显示在手机屏幕上。此外,手机 App 还可以通过一个选项打开文本到语音的转换功能,这样手机将每隔15秒语音播报一次温度值。


步骤5
传感器的 Arduino 代码


你需要使用 OneWrite 库来计算温度值,点击此处获取 OneWrite 库的代码。


传感器相关的 Arduino 代码如下:


#include

int DS18S20_Pin = 2; //DS18S20 Signal pin on digital 2

//Temperature chip i/o

OneWire ds(DS18S20_Pin); // on digital pin 2

void setup()

{

// initialize the serial communication:

Serial.begin(19200);

// initialize the ledPin as an output:







请到「今天看啥」查看全文