硬件:

树莓派 2.0

DHT模块  接树莓派5V GND GPIO1

功能:读取传感器数据并打印出来

  1. //
  2. //mydht11.c
  3. //
  4. #include <wiringPi.h>
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. typedef unsigned char uint8;
  8. typedef unsigned int  uint16;
  9. typedef unsigned long uint32;
  10. #define HIGH_TIME 32
  11. int pinNumber =1;  //use gpio1 to read data
  12. uint32 databuf;
  13. uint8 readSensorData(void)
  14. {
  15. uint8 crc;
  16. uint8 i;
  17. pinMode(pinNumber,OUTPUT); // set mode to output
  18. digitalWrite(pinNumber, 0); // output a high level
  19. delay(25);
  20. digitalWrite(pinNumber, 1); // output a low level
  21. pinMode(pinNumber, INPUT); // set mode to input
  22. pullUpDnControl(pinNumber,PUD_UP);
  23. delayMicroseconds(27);
  24. if(digitalRead(pinNumber)==0) //SENSOR ANS
  25. {
  26. while(!digitalRead(pinNumber)); //wait to high
  27. for(i=0;i<32;i++)
  28. {
  29. while(digitalRead(pinNumber)); //data clock start
  30. while(!digitalRead(pinNumber)); //data start
  31. delayMicroseconds(HIGH_TIME);
  32. databuf*=2;
  33. if(digitalRead(pinNumber)==1) //1
  34. {
  35. databuf++;
  36. }
  37. }
  38. for(i=0;i<8;i++)
  39. {
  40. while(digitalRead(pinNumber)); //data clock start
  41. while(!digitalRead(pinNumber)); //data start
  42. delayMicroseconds(HIGH_TIME);
  43. crc*=2;
  44. if(digitalRead(pinNumber)==1) //1
  45. {
  46. crc++;
  47. }
  48. }
  49. return 1;
  50. }
  51. else
  52. {
  53. return 0;
  54. }
  55. }
  56. int main (void)
  57. {
  58. printf("Use GPIO1 to read data!\n");
  59. if (-1 == wiringPiSetup()) {
  60. printf("Setup wiringPi failed!");
  61. return 1;
  62. }
  63. pinMode(pinNumber, OUTPUT); // set mode to output
  64. digitalWrite(pinNumber, 1); // output a high level
  65. printf("Enter OS-------\n");
  66. while(1) {
  67. pinMode(pinNumber,OUTPUT); // set mode to output
  68. digitalWrite(pinNumber, 1); // output a high level
  69. delay(3000);
  70. if(readSensorData())
  71. {
  72. printf("Congratulations ! Sensor data read ok!\n");
  73. printf("RH:%d.%d\n",(databuf>>24)&0xff,(databuf>>16)&0xff);
  74. printf("TMP:%d.%d\n",(databuf>>8)&0xff,databuf&0xff);
  75. databuf=0;
  76. }
  77. else
  78. {
  79. printf("Sorry! Sensor dosent ans!\n");
  80. databuf=0;
  81. }
  82. }
  83. return 0;
  84. }

树莓派使用DHT11温湿度传感器(C语言)的更多相关文章

  1. 树莓派使用DHT11温湿度传感器

    一.相关介绍 DHT11介绍: DHT11是一款比较便宜的温湿度传感器模块.读取数据只需要占用一个IO口.能够同时测量温度和相对湿度. DHT11的数据手册可以看这里:http://wenku.bai ...

  2. 树莓派使用DHT11温湿度传感器(C语言程序)

    pi4j是基于wiringpi开发的通过java来控制树莓派GPIO口的库文件.在java程序中引入相关类就可以使用已经封装好的方法控制树莓派GPIO口. pi4j官网:http://pi4j.com ...

  3. 树莓派连接DHT11温湿度传感器(python)

    介绍 DHT11作为一个廉价配件,同时包含了温度.湿度传感器,而且,编码使用也非常简单. 本文介绍如果在树莓派中使用 DHT11,代码是Python.如果有任何疑问,欢迎在下面留言. 接线 VCC接5 ...

  4. 在树莓派上读取DHT11温湿度传感器-python代码实现及常见问题(全面简单易懂)

    最近由于自己的课题需要,想要用在树莓派上使用DHT11温湿度传感器来读取空气中温湿度,遇到了几个问题,解决之后也对之前的知识进行了回顾,总结,特整理如下,希望能给也在学习树莓派的小伙伴们带来一些帮助. ...

  5. Arduino和C51开发DHT11温湿度传感器

    技术:51单片机.Arduino.DHT11.温湿度传感器.传感器   概述 学习单片机离不开对传感器的学习,本文主要介绍DHT11温湿度传感器的使用方法,同学也可以了解更多的传感器,这对你以后开发产 ...

  6. DHT11温湿度传感器编程思路以及代码的实现(转载)

    源自:https://blog.csdn.net/qq_34952376/article/details/81193938 在我们刚开始进入单片机的学习中,练习写传感器的时序是必不可少的,其实我比较推 ...

  7. STC15系列通用-STC15F2K60S2/STCW4K32S4读取DHT11温湿度传感器数据串口输出代码实例工程免费下载

    //为了方便大家调试,另附程序工程共大家下载,下载地址:https://www.90pan.com/b1908750 ​ //************************** //程序说明:stc ...

  8. DHT11温湿度传感器模块使用方法和驱动代码实现

    DHT11模块简介 DHT11是一款价格便宜,易于使用的温度湿度测量二合一传感器.它具有超小体积.极低功耗的特点.它使用单根总线与单片机进行双向的串行数据传输,信号传输距离可达20米以上.非常适用于对 ...

  9. 玩转X-CTR100 l STM32F4 l DHT11温湿度传感器

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] DHT11数字温湿度传感器是一款含有已校准数字信号输 ...

随机推荐

  1. 中移苏研DCOS实践之路完整篇

    一.实践背景 1.1现网生产系统存在的问题 在中国移动内部各省市公司,由于技术迭代.设备更新的原因,设备繁杂,有x86server .VMware虚拟机.OpenStack虚拟机以及不同厂商的物理机( ...

  2. github桌面工具commit不了解决

    这样发现github上还是空文件,  因为要重新添加过 1.  git add -A  添加所有文件 2. git commit -m "xxx" 3.  git push -u ...

  3. EasyUI DataGrid 相同连续列合并

    扩展方法:$.extend($.fn.datagrid.methods, { autoMergeCells: function(jq, fields) { return jq.each(functio ...

  4. pip依赖安装与记录

    pip freeze requirements.txt是一个常常被许多Flask应用用于列出它所依赖的包的文本文件.它是通过pip freeze > requirements.txt生成的. 使 ...

  5. [浪风分享] -- 系列百度云管家 V2.1.0 单文件版-分享必用的神器

    废话不多说,神器送上 百度云管家 V2.1.0 更新时间:2013年05月22日更新内容:1.支持云端文件管理:删除.重命名.新建文件夹.移动2.支持缩略图浏览模式3.支持三种文件排序方式:按修改时间 ...

  6. Eclipse 创建 Java 类

    打开新建 Java 类向导 你可以使用新建 Java 类向导来创建 Java 类,可以通过以下途径打开 Java 类向导: 点击 "File" 菜单并选择 New > Cla ...

  7. Java 学习笔记及资源

    Spring框架入门HelloWorld :http://www.importnew.com/13246.html  (iteye 唐 博客,跟我学Sprint) Spring 框架下载地址:http ...

  8. Codeforces Round #398 (Div. 2) BCD

    B:The Queue 题目大意:你要去办签证,那里上班时间是[s,t), 你知道那一天有n个人会来办签证,他们分别是在时间点ai来的.每个人办业务要花相同的时间x,问你什么时候来 排队等待的时间最少 ...

  9. 转:python 多线程就这么简单

    多线程 科技在发展,时代在进步,我们的CPU也越来越快,CPU抱怨,P大点事儿占了我一定的时间,其实我同时干多个活都没问题的:于是,操作系统就进入了多任务时代.我们听着音乐吃着火锅的不在是梦想. py ...

  10. JavaWeb关于session生命周期的几种设置方法

    一般session的生命周期都是建立在用户登录系统后对用户信息进行一个记录,session类似于你有一张银行卡,而卡里的钱就是属于session存储的信息,卡掉了就不能取出里面的钱. 以前sessio ...