-
2021-06-02 23:54:17
1)温度传感器返回当前的温度,单位是摄氏度(°C)。
2)具体代码如下
package com.example.androidapp;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
private SensorManager mSensorManager=null;
private Sensor mSensor=null;
private TextView textView1=null;
private Button button1=null;
private Button button2=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView1=(TextView)findViewById(R.id.textView1);
/*获取系统服务(SENSOR_SERVICE)返回一个SensorManager对象*/
mSensorManager=(SensorManager)getSystemService(SENSOR_SERVICE);
/*通过SensorManager获取相应的(温度传感器)Sensor类型对象*/
mSensor=mSensorManager.getDefaultSensor(Sensor.TYPE_TEMPERATURE);
/*注册相应的SensorService*/
button1=(Button)findViewById(R.id.button1);
button1.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View arg0) {
mSensorManager.registerListener(mSensorEventListener, mSensor
, SensorManager.SENSOR_DELAY_NORMAL);
}
});
/* 销毁相应的SensorService
* 很关键的部分,注意,说明文档中提到,即使Activity不可见的时候,感应器依然会继续工作
* 所以一定要关闭触发器,否则将消耗用户大量电量*/
button2=(Button)findViewById(R.id.button2);
button2.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
mSensorManager.unregisterListener(mSensorEventListener, mSensor);
}
});
}
/*声明一个SensorEventListener对象用于侦听Sensor事件,并重载onSensorChanged方法*/
private final SensorEventListener mSensorEventListener=new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
if(event.sensor.getType()==Sensor.TYPE_TEMPERATURE){
/*温度传感器返回当前的温度,单位是摄氏度(°C)。*/
float temperature=event.values[0];
textView1.setText(String.valueOf(temperature)+"°C");
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
}
};
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
更多相关内容 -
homebridge-mqtt-temperature:通过Homebridge中的MQTT获取温度传感器数据
2021-02-03 06:48:09通过Homebridge中的MQTT获取温度传感器数据 安装 sudo npm install -g homebridge-mqtt-temperature 示例HomeBridge配置 { "bridge": { "name": "HomeBridge", "username": "CC:33:3B:D3:CE:32", "port": 51826,... -
Android_PI_Temp_App:从温度传感器获取数据的应用程序
2021-05-30 13:45:09我使用连接到温度传感器的 Raspberry Pi,并使用PHP脚本从传感器获取数据。 在前端,Android 简单地使用 HTTP GET 请求到 PHP 脚本并显示数据。 后来我了解到我可以使用 Servlets 和 Pi4j 作为后端而不是 PHP,以使... -
STM32使用ADC获取内部温度传感器数据输出(DMA方式实现)
2020-12-28 09:52:58适合stm32f103c8t6初学者对ADC,DMA方式的处理以及内部温度的获取,工程文件已调试完成通过串口1输出结果,希望能提供良好的帮助 -
STM32使用ADC获取内部温度传感器数据输出(直接读取方式实现)
2020-12-28 09:50:22适合对STM32F1系列(芯片为stm32f103c8t6)对ADC,DMA的初学者使用,对理解代码结构以及外设的读取有更深入的了解,工程文件已调试完成,可以直接下载使用 -
LM35温度传感器数据手册
2018-04-04 17:01:37如题 : LM35温度传感器数据手册 里面详细的介绍了该温度传感器 的性能 使用方法等…… -
C#串口读取数字温湿度传感器数据
2019-04-20 22:07:41C#串口读取数字温湿度传感器数据,数据库保存历史数据,并虚线显示读取的温湿度信息,数据库保存历史数据,并虚线显示读取的温湿度信息, -
练手项目:串口 读取 温度传感器 数据 并显示
2021-04-21 16:39:46练手项目:串口 读取 温度传感器 数据并显示 串口读取的温度数据, 可以传给数据库,记录下来 可以传给网页实时显示。 这样就可以同时学习网页制作,和数据库的相关内容了, 以检测你学些web html技术和学习 mysql ...练手项目:串口 读取 温度传感器 数据并显示
串口读取的温度数据,
可以传给数据库,记录下来
可以传给网页实时显示。
这样就可以同时学习网页制作,和数据库的相关内容了,
以检测你学习web html技术和学习 mysql 技术的成果。
也可以通过Qt 程序读取。平时学习编程的时候,如果有了实物配合,有具体的要求 之后,会学习的更快。
1 硬件准备
这个项目要求如下的硬件配置:
电脑一台,win7 64位系统。
USB 转485 模块一个,该模块可以给外部 温度传感器模块,提供5v 直流电源。
温度传感器模块
可以使用 工控行业的 modbus 485 总线中,经常使用的那种现成的模块。
不用自己去制作。咱主要关心的是编程能力。只要有数据来源就行。
即使这个数据不准确。只要是变动的就好。http://www.jingsudz.com/html/9530821021.html
1:一路RS485 接口。
2:一路DS18B20 传感器
1:一路RS485 通信(MODBUS-RTU 协议)
只是在电源正和电源负 之间 提供一个5v的电源,就会在显示屏上实时显示当前的温度了。
如果需要通过串口读取数据那么需要接上 RS485+ 和 RS485-信号
通过usb 转 485 模块,传给电脑。
具体资料到
上面的网站的
下载中心 ----> RS485系列资料---->RSDS12
下载资料 ,里面有一个
《RSDS12 温湿度传感器说明书.pdf》2 协议解析
通信波特率:可调,1 停止位,8 位数据,无校验
通迅口:选择当前总线使用的COM 口,波特率出厂默认9600供电电压
最小值 5V
标准值12V
最大值 30V测量范围: DS18B20 -55℃ ---- 125.0℃
转换速度: DS18B20 最快1秒/次 最慢255 秒/次
工作电流是20ma
手头的另外一个硬件
http://www.jingsudz.com/html/0572811047.html
可以将这两个设备 组成一个 485 modbus网络,通过一个USB 转485 接口 ,分别读取他们的温度和湿度
自动查找 发送: 00 03 00 00 00 05 84 18 接收: 03 03 0A 01 02 00 03 00 01 00 05 00 00 75 90 湿度发送: 00 03 00 0B 00 01 F4 19 湿度接收: 03 03 02 00 F6 41 C2 温度发送: 00 03 00 00 00 01 85 DB 温度接收: 03 03 02 01 01 01 D4
那个里面的 绿色 贴片的 LED 没有闪烁测试方式:
温度传感器需要同时 外接 5v电源
点击开始监控
发送: 01 03 00 00 00 01 84 0A 接收: 01 03 02 00 E3 F9 CD 发送: 02 03 00 00 00 01 84 39 超时 发送: 03 03 00 00 00 01 85 E8 超时 发送: 04 03 00 00 00 01 84 5F 超时
CRC校验代码
附1.CRC 校验函数 /* * 函数介绍:CRC 校验 * 输入参数: * 输出参数: * 返回值: CRC 校验码*/ u16 CRC16(u8 *bpMsgStartAddress, u8 bDataLen) { u8 i, n; u16 crc = 0xffff; u8 u8tmp; u16 u16tmp; for (i=0; i<bDataLen; i++) { crc ^= *bpMsgStartAddress++; for (n=0; n<8; n++) { u8tmp = crc & 1; crc >>= 1; crc &= 0x7fff; if (u8tmp == 1) { crc ^= 0xa001; } } } return crc; }
两个模块连接在一起
发送: 01 03 00 0A 00 02 E4 09 接收: 01 03 04 00 F3 00 00 0A 00 发送: 02 03 00 0A 00 02 E4 3A 超时. 发送: 03 03 00 0A 00 02 E5 EB 接收: 03 03 04 01 04 00 F7 D8 48 发送: 04 03 00 0A 00 02 E4 5C 超时. 发送: 05 03 00 0A 00 02 E5 8D 超时.
-
QT使用动态曲线展示采集的传感器数据,温度湿度曲线源代码.rar
2021-03-22 00:43:45QT使用动态曲线展示采集的传感器数据,温度湿度曲线源代码,包含注释 -
燃油温度传感器电路故障码检测
2021-01-19 16:52:51ECM通过燃油压力/温度传感器监测蓄压器中燃油温度。ECM监测信号端子上的电压并将信号电压转换成温度值。燃油压力/温度传感器安装在CAPS燃油泵蓄压器的后部。图1为燃油温度传感器电路。当在燃油温度传感器信号线的... -
IC内部温度传感器数据的读取教程
2021-07-07 09:51:14目的:学习mbed读取IC内部温度传感器。 Step4.程序分析: 本例程序代码很简单,就是创建几个AnalogIn类的对象,然后读取ADC转换值,然后通过串口打印输出。应注意第11行的注释,ADC_VBAT通道... -
STM32温度传感器.pdf
2020-10-22 18:11:25STM32单片机内部均含有一个温度传感器,且该传感器在出厂的时候均存有校正系数(放在FLash里),可以保证温度采集精度。本材料具体讲解如何利用该温度传感器。 -
DS18B20温度传感器课程设计
2012-06-19 16:37:23整个设计系统分为3部分:单片机控制、温度传感器、数码显示。 此设计的重点在于编程,程序要实现温度的采集、转换、显示,其外围电路所用器件较少,相对简单,实现容易。 显示电路采用4位共阴LED数码管,从P0口输出... -
STM32单片机读写DS18B20温度传感器例程软件例程源码.zip
2022-01-20 06:32:21STM32单片机读写DS18B20温度传感器例程软件例程源码,可作为你的学习设计参考。 程序功能: 1、程序先打印例程LOG0 2、打印 DS18B20的 ROM ID 3、打印温度寄存器数值和摄氏度之间的对应关系(验证数值转换函数) ... -
MQTT实现SHT20温度传感器定时上传温度值
2021-01-16 21:51:34ESP32 ESP-IDF实现SHT20定时上传温度信息 -
温度传感器数据在数码管上显示
2017-02-27 19:23:35温度传感器数据在数码管上显示 -
51单片机通过DHT11温度传感器读取温度(1)
2022-03-30 22:53:04DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度符合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。 应用平台: 暖通空调 测试及检测设备 ...一.传感器介绍
1.基本介绍
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度符合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。
应用平台:
暖通空调 测试及检测设备 汽车 数据记录器 消费品 自动控制等
2.管脚说明
管脚 作用 Vcc 模块供电正极(供电电压范围:3-5.5V) gnd 模块数据传输管脚 GND 模块供电负极 3.data数据接口串行数据传输
一次完整的数据传输需要40bit数据,高位先出
传输具体过程如下:8bit湿度整数数据+8bit湿度小数数据 +8bi温度整数数据+8bit温度小数数据 +8bit校验和
用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主 机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集, 用户可选择读取部分数据.
二.数据传输时序图、
1.模块存在检测时序图
流程如下
单片机方面:单片机首先会给模块高电平,然后会将电平拉低,同时延时至少18ms,接着将电平拉高,同时延迟最多40us,可设定30us。
模块方面:模块会将管脚的电平拉低,并延迟80us,如果单片机检测在80us时间内,管脚一直属于低电平,那么就可以判断模块存在。
可以写出如下代码:判断模块是否存在
sbit LED = P2^0; sbit DATA = P1^0; void Delay25ms() //@11.0592MHz { unsigned char i, j; i = 45; j = 208; do { while (--j); } while (--i); } void Delay70us() //@11.0592MHz { unsigned char i; _nop_(); i = 29; while (--i); void check_DHT11() { DATA = 1; //将电平拉高 DATA = 0; //将电平拉低 Delay25ms(); //低电平延迟25ms(至少18ms) DATA = 1; //延时过后将电平拉高 Delay70us(); //延迟大约70us,用来判断是否处于低电平 if(DATA ==0) { LED = 0; //如果一直处于低电平,则模块存在,指示灯点亮 } }
2.数据读取时序图
(1)数据0时序图
(2)数据1时序图
编程思路:由数据组成可以知道,该组数据由5组构成,每组有8位,因此我们可以建立两个变量,一个是轮数,读取5轮,一个是每轮读取的位数,读取8位。通过时序图可以得知,当data数据变成高电平时,开始进行数据读取,这时可以进行延时大约50us来判断读取的数据,(因为0信号高电平最多28us,而1信号最多70us,因此延迟50us来进行判断),如果经过50us依旧是高电平,则读取数据就是1,由于70us不好把握,因此需要进行“卡电平”,卡出电平降低的点,否则就是0,可以新建一个变量,将读取到的数据进行临时存放,为了保存一组完整的数据,需要新建一个char型变量,用于存储一组变量,这时可以将这个char型变量进行左移,然后将读取过来的“0”、“1”数据和char的地位进行按位与运算,直到将整个char型变量替换完毕,将替换完成的变量存储在数组中,直到整个数组全被存储,这时数据读取完毕。
实现代码如下:
sbit DATA = P1^0; char save_data[5]; //画出数据存储区域 void Delay50us() { unsigned char i; _nop_(); i = 20; while (--i); } int i; //定义读取的轮数 int j; //定义读取的位数 int tep; //定义一组的临时存储区(8位) int flag; //定义读取的0、1数据 for(i = 0;i < 5;i ++) { for(j = 0;j < 8;j++) { while(!DATA); //如果data数据管脚编程高电平,则开始数据传输 Delay50us(); //延迟50us,然后判断data的电平状态 if(DATA == 1) { flag = 1; while(DATA); } else { flag = 0; } tep = tep<<1; tep |= flag; } save_data[i] = tep; }
三.全代码实现
#include <REGX52.H> #include <intrins.h> sbit LED = P2^0; sbit DATA = P1^0; char save_data[5]; //画出数据存储区域 void Delay25ms() //@11.0592MHz { unsigned char i, j; i = 45; j = 208; do { while (--j); } while (--i); } void Delay70us() //@11.0592MHz { unsigned char i; _nop_(); i = 29; while (--i); } void Delay50us() //@11.0592MHz { unsigned char i; _nop_(); i = 20; while (--i); } /*串口初始化*/ void UartInit(void) //9600bps@11.0592MHz { SCON = 0x40; //8位数据,可变波特率 TMOD &= 0x0F; //清除定时器1模式位 TMOD |= 0x20; //设定定时器1为8位自动重装方式 TL1 = 0xFD; //设定定时初值 TH1 = 0xFD; //设定定时器重装值 ET1 = 0; //禁止定时器1中断 TR1 = 1; //启动定时器1 } void send_byte(char msg_data) { SBUF = msg_data; //将形式参数msg_data传送到SBUF中 } /*判断温度检测模块是否存在*/ void check_DHT11() { DATA = 1; DATA = 0; Delay25ms(); DATA = 1; Delay70us(); if(DATA ==0) { LED = 0; } } /*读取温度检测模块发送的数据*/ void send_DHT_data() { int i;//轮数 int k;//每轮的位数 char flag; char tmp; check_DHT11(); for(i=0;i<5;i++) { for(k=0;k<8;k++) { while(!DATA);//等待模块在低电平结尾处 Delay50us();//延迟50微秒之后,读取DATA数据,如果依旧是高电平代表1,否则就是低电平,表示0 if(DATA == 1) { flag = 1; while(DATA); //如果是高电平信号,那么就需要卡电平,因为高电平信号会持续将近70微秒 } else { flag = 0; } /*通过将DATA的每一位数据把tmp的从低位一直替换到高位,直到替换完毕。*/ tmp = tmp << 1; tmp |= flag; } save_data[i] = tmp; } }
-
LCD1_温度传感器在LCD上显示代码_
2021-10-03 05:31:22使用温度传感器使其在LCD上显示具体数据 -
传感技术中的8通道温度传感器MAX6581特性/应用/数据资料
2020-11-04 05:29:42MAX6581高精度、多通道温度传感器能够监测其自身温度和7个外部连接成二极管的晶体管温度。所有温度通道具有可编程报警输出和过热保护门限。当某个通道的测量温度超出门限值时,状态寄存器的相应状态位被置位。根据... -
树莓派 dht11 温度传感器文件 数据保存到本地文件
2018-03-16 00:44:39树莓派 dht11 温度传感器文件 数据保存到本地文件树莓派 dht11 温度传感器文件 数据保存到本地文件 -
基于STM32芯片温度传感器,芯片温度测量(源码+相关教程)-电路方案
2021-04-22 07:15:04内部温度传感器更加适合与那些用来察觉温度不差异的应用中,而非用于获取绝对的温度值,如果想要获取到精确的温度值,请使用一个外部的温度传感器来代替。 现在是相关的ADC初始化的代码和获取温度代码部分截图: 然后... -
基于python通过树莓派获取温度传感器的温湿度
2020-12-21 11:41:40基于python通过树莓派获取温度传感器的温湿度前面做过一个智能风扇,主要功能是通过温度来控制风扇的自动开关以及通过软件来进行控制风扇开关,功能都能实现但是软件并没有做完,所以就不了了之。我使用的树莓派,如...基于python通过树莓派获取温度传感器的温湿度
前面做过一个智能风扇,主要功能是通过温度来控制风扇的自动开关以及通过软件来进行控制风扇开关,功能都能实现但是
软件并没有做完,所以就不了了之。
我使用的树莓派,如下图附上引脚的注释:
注:树莓派的版本不同,引脚的意思会有一些差别,请注意!
我的温度传感器是DHT11温度模块,附实物图:
树莓派连接温度传感器
VCC接5V或者3.3V
DATA接GPIO口(我接的是BCM的17号针脚,物理针脚是11号)
GND接GND
根据上面引脚分布图,就可以轻松连接成功。
获取温度和湿度(python)
import RPi.GPIO as GPIO
import time
channel = 17 //引脚的引号
data = []
j = 0
GPIO.setmode(GPIO.BCM)
time.sleep(1)
GPIO.setup(channel, GPIO.OUT)
GPIO.output(channel, GPIO.LOW)
time.sleep(0.02)
GPIO.output(channel, GPIO.HIGH)
GPIO.setup(channel, GPIO.IN)
while GPIO.input(channel) == GPIO.LOW:
continue
while GPIO.input(channel) == GPIO.HIGH:
continue
while j < 40:
k = 0
while GPIO.input(channel) == GPIO.LOW:
continue
while GPIO.input(channel) == GPIO.HIGH:
k += 1
if k > 100:
break
if k < 8:
data.append(0)
else:
data.append(1)
j += 1
print "sensor is working."
print data
humidity_bit = data[0:8]
humidity_point_bit = data[8:16]
temperature_bit = data[16:24]
temperature_point_bit = data[24:32]
check_bit = data[32:40]
humidity = 0
humidity_point = 0
temperature = 0
temperature_point = 0
check = 0
for i in range(8):
humidity += humidity_bit[i] * 2 ** (7 - i)
humidity_point += humidity_point_bit[i] * 2** (7 - i)
temperature += temperature_bit[i] * 2 ** (7 -i)
temperature_point += temperature_point_bit[i]* 2 ** (7 - i)
check += check_bit[i] * 2 ** (7 - i)
tmp = humidity + humidity_point + temperature +temperature_point
if check == tmp:
print "temperature : ", temperature, ", humidity : " , humidity//输出获取的温度和湿度
else:
print "wrong"
print "temperature : ", temperature, ", humidity : " , humidity, " check : ", check, " tmp : ", tmp
GPIO.cleanup()
注:代码的位置有些错乱,需要自己调一下,但是代码本身是没有问题的。
-
汽车电子中的奇瑞QQ轿车进气温度传感器检测
2020-11-14 12:55:11奇瑞QQ轿车进气温度传感器检测数据如下表所示: 欢迎转载,信息来源维库电子市场网(www.dzsc.com) 来源:ks99 -
基于Proteus的温度传感器串口通信仿真.zip
2020-07-08 19:26:19基于Proteus的温度传感器仿真,单片机是89C52系列的,可设置温度等参数,将数据通过串口发送到上位机。 -
stm32单总线同时读取多个ds18b20温度传感器
2020-01-10 22:35:50在stm32f103c8t6的环境下通过软件模拟单总线协议同时读取多个ds18b20温度传感器。代码自动在总线上搜寻设备并显示设备唯一ID。后通过ID值读出对应传感器的温度数据进行串口回显。 -
罗斯蒙特 GA温度传感器和附件(公制版)产品数据表.pdf
2019-09-16 12:36:12罗斯蒙特 GA温度传感器和附件(公制版)产品数据表pdf,罗斯蒙特 GA温度传感器和附件(公制版)产品数据表 -
基于python经过树莓派获取温度传感器的温湿度
2021-04-27 08:41:33基于python经过树莓派获取温度传感器的温湿度前面作过一个智能风扇,主要功能是经过温度来控制风扇的自动开关以及经过软件来进行控制风扇开关,功能都能实现可是python软件并无作完,因此就不了了之。app我使用的... -
ST推出一款超小型高能效温度传感器
2021-01-19 16:44:42结合超小尺寸和低功耗设计及...通过将意法半导体的新款数字温度传感器(DTS)STTS751安装在电路板上,可为系统提供的温度数据,以执行相应的温度管理功能,例如,启动风扇或关闭电路。 新一代传感器的尺寸为2 x 2mm -
红外线温度传感器的设计与实现
2020-10-21 16:14:42在物理实验和生产实际中。往往需要高精度的测量。环境温度对测量的影响是一个重要的因素。因此要求我们必须对环境温度进行精密的测量。对测量仪器也应有如下的要求,...目前市场上有多种传感器可以用来实现温度的测量。 -
传感器数据集大数据分析(温度、湿度、光照、电压)
2020-03-06 21:30:55真实实验室传感器采集数据,可供训练使用,包含温度、湿度、光照、电压。一共大约200多w条数据,共有54个传感器节点,有地理位置信息可供参考,对于数据挖掘,人工智能,物联网等领域的研究有重大的参考价值!