树莓派使用DHT11温湿度传感器(C语言)
硬件:
树莓派 2.0
DHT模块 接树莓派5V GND GPIO1
功能:读取传感器数据并打印出来
- //
- //mydht11.c
- //
- #include <wiringPi.h>
- #include <stdio.h>
- #include <stdlib.h>
- typedef unsigned char uint8;
- typedef unsigned int uint16;
- typedef unsigned long uint32;
- #define HIGH_TIME 32
- int pinNumber =1; //use gpio1 to read data
- uint32 databuf;
- uint8 readSensorData(void)
- {
- uint8 crc;
- uint8 i;
- pinMode(pinNumber,OUTPUT); // set mode to output
- digitalWrite(pinNumber, 0); // output a high level
- delay(25);
- digitalWrite(pinNumber, 1); // output a low level
- pinMode(pinNumber, INPUT); // set mode to input
- pullUpDnControl(pinNumber,PUD_UP);
- delayMicroseconds(27);
- if(digitalRead(pinNumber)==0) //SENSOR ANS
- {
- while(!digitalRead(pinNumber)); //wait to high
- for(i=0;i<32;i++)
- {
- while(digitalRead(pinNumber)); //data clock start
- while(!digitalRead(pinNumber)); //data start
- delayMicroseconds(HIGH_TIME);
- databuf*=2;
- if(digitalRead(pinNumber)==1) //1
- {
- databuf++;
- }
- }
- for(i=0;i<8;i++)
- {
- while(digitalRead(pinNumber)); //data clock start
- while(!digitalRead(pinNumber)); //data start
- delayMicroseconds(HIGH_TIME);
- crc*=2;
- if(digitalRead(pinNumber)==1) //1
- {
- crc++;
- }
- }
- return 1;
- }
- else
- {
- return 0;
- }
- }
- int main (void)
- {
- printf("Use GPIO1 to read data!\n");
- if (-1 == wiringPiSetup()) {
- printf("Setup wiringPi failed!");
- return 1;
- }
- pinMode(pinNumber, OUTPUT); // set mode to output
- digitalWrite(pinNumber, 1); // output a high level
- printf("Enter OS-------\n");
- while(1) {
- pinMode(pinNumber,OUTPUT); // set mode to output
- digitalWrite(pinNumber, 1); // output a high level
- delay(3000);
- if(readSensorData())
- {
- printf("Congratulations ! Sensor data read ok!\n");
- printf("RH:%d.%d\n",(databuf>>24)&0xff,(databuf>>16)&0xff);
- printf("TMP:%d.%d\n",(databuf>>8)&0xff,databuf&0xff);
- databuf=0;
- }
- else
- {
- printf("Sorry! Sensor dosent ans!\n");
- databuf=0;
- }
- }
- return 0;
- }
树莓派使用DHT11温湿度传感器(C语言)的更多相关文章
- 树莓派使用DHT11温湿度传感器
一.相关介绍 DHT11介绍: DHT11是一款比较便宜的温湿度传感器模块.读取数据只需要占用一个IO口.能够同时测量温度和相对湿度. DHT11的数据手册可以看这里:http://wenku.bai ...
- 树莓派使用DHT11温湿度传感器(C语言程序)
pi4j是基于wiringpi开发的通过java来控制树莓派GPIO口的库文件.在java程序中引入相关类就可以使用已经封装好的方法控制树莓派GPIO口. pi4j官网:http://pi4j.com ...
- 树莓派连接DHT11温湿度传感器(python)
介绍 DHT11作为一个廉价配件,同时包含了温度.湿度传感器,而且,编码使用也非常简单. 本文介绍如果在树莓派中使用 DHT11,代码是Python.如果有任何疑问,欢迎在下面留言. 接线 VCC接5 ...
- 在树莓派上读取DHT11温湿度传感器-python代码实现及常见问题(全面简单易懂)
最近由于自己的课题需要,想要用在树莓派上使用DHT11温湿度传感器来读取空气中温湿度,遇到了几个问题,解决之后也对之前的知识进行了回顾,总结,特整理如下,希望能给也在学习树莓派的小伙伴们带来一些帮助. ...
- Arduino和C51开发DHT11温湿度传感器
技术:51单片机.Arduino.DHT11.温湿度传感器.传感器 概述 学习单片机离不开对传感器的学习,本文主要介绍DHT11温湿度传感器的使用方法,同学也可以了解更多的传感器,这对你以后开发产 ...
- DHT11温湿度传感器编程思路以及代码的实现(转载)
源自:https://blog.csdn.net/qq_34952376/article/details/81193938 在我们刚开始进入单片机的学习中,练习写传感器的时序是必不可少的,其实我比较推 ...
- STC15系列通用-STC15F2K60S2/STCW4K32S4读取DHT11温湿度传感器数据串口输出代码实例工程免费下载
//为了方便大家调试,另附程序工程共大家下载,下载地址:https://www.90pan.com/b1908750 //************************** //程序说明:stc ...
- DHT11温湿度传感器模块使用方法和驱动代码实现
DHT11模块简介 DHT11是一款价格便宜,易于使用的温度湿度测量二合一传感器.它具有超小体积.极低功耗的特点.它使用单根总线与单片机进行双向的串行数据传输,信号传输距离可达20米以上.非常适用于对 ...
- 玩转X-CTR100 l STM32F4 l DHT11温湿度传感器
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] DHT11数字温湿度传感器是一款含有已校准数字信号输 ...
随机推荐
- makefile编写---单个子目录编译模板
经过这次地库项目之后,虽然时间不久,跟团队在一起,虽然队员不一定在技术上有过人之处,但是来自大公司的员工,在工具使用和代码规范方面还是有点可鉴之处,在搭建主控模块是,就得面临makefile编写,因为 ...
- linux中使用vi 打开文件时,能显示行号
方法一: 1.显示当前行行号,在VI的命令模式下输入 :nu 2.显示所有行号,在VI的命令模式下输入 :set nu方法二: 使用vi编辑~/.vimrc文件,在该文件中加入一行" ...
- Unity3d Resources TextAsset 文本
一些小型数据,可以用txt文本作为媒介,进行获取.传输.修改.存储: 比如:User1.2.3.txt,放入 Resources/Data 文件下: 一,Unity3d Resources.Load ...
- 如何停止和扭转UIView的动画
本文转载至 http://codego.net/576089/ 我有它收缩时碰到切换按钮UIView的动画跳和它扩展恢复到原来的大小当再次接触到按钮.密封式前大灯一切都工作得很好.问题是,动画师注意 ...
- mac中一一些常用的命令
本文转载至 http://blog.csdn.net/chen505358119/article/details/9244701 这里主要讲的是mac中的一些命令,怕忘记了所以记在这里. 1.首先 ...
- RocketMq的安装使用
RocketMq的安装使用 .一.预备环境 1.系统 Windows 2. 环境 JDK1.8.Maven.Git 1.下载 1.1地址:http://rocketmq.apache.org/rele ...
- maven实现项目热部署
1.Tomcat的配置 我们需要实现热部署,自然就需要通过maven操作tomcat,所以就需要maven取得操作tomcat的权限,现在这一步就是配置tomcat的可操作权限. 在tomcat的安装 ...
- "大中台、小前台”新架构下,阿里大数据接下来怎么玩? (2016-01-05 11:39:50)
"大中台.小前台”新架构下,阿里大数据接下来怎么玩?_炬鼎力_新浪博客 http://blog.sina.com.cn/s/blog_1427354e00102vzyq.html " ...
- Python菜鸟之路:Django CSRF跨站请求伪造
前言 CSRF,Cross-site request forgery跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对 ...
- JS基础知识简介
使用js的三种方式 1.HTML标签内嵌js <button onclick="javascript:alert(真点啊)">有本事点我</button> ...