资讯详情

TPYBoard v102+v202 家庭无线温湿度检测

一、实验装置

1、TPYBoard v102 1块 2、TPYBoard v202 1块 3、Nokia 5110LCD显示屏 1块 4、DHT11温湿度传感器 1个 5、micro USB 数据线 2根 6、面包板 1块 7、杜邦线 若干

二、实验步骤

TPYBoard v102连接DHT收集温湿度信息; TPYBoard v102显示收集到的温湿度信息LCD5110上; TPYBoard v102通过串口发送温湿度信息TPYBoard v202; TPYBoard v202 读取串口数据并传输到服务器。  三、实验方法  1、Nokia 5110 LCD显示屏说明  LCD5110是一款84x48 的点阵LCD,可以显示4 行汉字。采用串行接口与主处理器通信,支持各种串行通信协议(如AVR SP单片机I、MCS51 串口模式0等),传输速率高达4Mbps,显示数据可以全速写入。  Nokia 5110 LCD共有8个引脚,不同的板子可能标注的英文略有不同,具体参照如下:  2、DHT11温湿度说明  DHT11是一种具有校准数字信号输出的温湿度传感器。 精度湿度 -5%RH, 温度 -2℃,量程湿度20-90%RH, 温度0~50℃。  DHT11温湿度有3个引脚,具体参考如下:  四、接线方式  1.针脚对应图  DHT11和LCD上面介绍了5110的使用方法。接下来,我们将开始和我们一起工作TPYBoard v102接起来了。  TPYBoard v102连接LCD5110  TPYBoard v102连接DHT11  TPYBoard v102连接TPYBoard v202  2.实物连接图

四、源代码

TPYBoard v102 源代码  TPYBoard v102 main.py文件内容如下:

#main.py

importpyb

importupcd8544

frommachine import SPI,Pin

from dht11import DHT11

defmain(lcd_5110,dht,uart6):

data_=dht.read_data()  lcd_5110.lcd_write_string(' ,0,1)#分隔行

lcd_5110.lcd_writestring('Temp:' str(data[0],2,2)

lcd_5110.lcd_write_string(' ',0,3)  lcd_5110.lcd_write_string(' Hum:' str(data_[1],2,4)

uart6.write(str(data[0]) ',' str(data[1])#通过串口发送数据v202

if == '':

#init UART  u6=pyb.UART(6,115200)  #init DHT11  dht=DHT11('X12')  #init LCD5110  SPI   = pyb.SPI(1)  RST   = pyb.Pin('Y11')  CE    = pyb.Pin('Y10')  DC    = pyb.Pin('Y9')  LIGHT = pyb.Pin('X4')  #DIN=>X8-MOSI/CLK=>X6-SCK  #DIN =>SPI(1).MOSI 'X8' data flow(Master out, Slave in)  #CLK =>SPI(1).SCK  'X6' SPI clock  lcd_5110 = upcd8544.PCD8544(SPI, RST, CE,DC, LIGHT)  lcd_5110.lcd_write_string('TPYBoardv102',1,0)  while True:      main(lcd_5110,dht,u6)      pyb.delay(2000)  *其他文件见底部压缩包*  TPYBoard v202 源代码  只有1个main.py 文件TPYBoard v202 main.py文件内容如下:

import machine

importnetwork

importsocket

frommachine import Pin

frommachine import UART

importtime

u2=UART(0,115200)#串口初始化

led =Pin(2, Pin.OUT).value(1)#小板载××× 默认关闭

defhttp_get(temp,hum):

url='

do_connect()

led =Pin(2, Pin.OUT).value(0)#连接wifi成功 点亮LED

while 1:

data_=u2.readall()  if data_!=None:      data_=data_.decode('utf数组转成字符串      data_a=data_.split(',')#分割      temp_=str(data_a[0])#温度      hum_=str(data_a[1])#湿度      http_get(temp_,hum_)#发送给服务器  time.sleep(2)  服务器源码  SensorData.php 文件内容如下:

<!DOCTYPEhtml>

<html>

<head>

<metacharset="utf-8">

<title>温湿度传感器实验</title>

<scripttype="text/javascript">

var t;  var te_html_str="N/A";  function timedCount()  {    <?php      $myfile = fopen("sensor.txt","r");      $txt=fread($myfile,filesize("sensor.txt"));      fclose($myfile);      if($txt!="")      {          echo "te_html_str='".$txt."';";      }      ?>   document.getElementById('test').innerHTML=te_html_str;   t=setTimeout("javascript:location=location;",1000)  }

</script>

</head>

<body>

<center>

<div style="margin-top:80px">

<h2>TPYBoardV202_温湿度传感器实验</h2>  <div id="test"></div>

</div>

</center>

</body>

</html>

SensorTest.php 文件内容如下:

<?php

$time_="获取时间:".date('Y-m-d H:i:s');  $data_="传感器数据:Sensor Error!";  $state_="No";

if(is_array($_GET)&&count($_GET)>1)

{      $data_="";      //获得温度      if(isset($_GET["t"]))      {          $para=$_GET["t"];          $data_.="传感器数据:温度:".$para." ℃ - ";      }      //获得湿度      if(isset($_GET["h"]))      {          $para=$_GET["h"];          $data_.="湿度:".$para." % ";          $state_="Yes";      }    }  $myfile = fopen("sensor.txt","w");  $txt = $time_."<br /><br/>".$data_;  fwrite($myfile, $txt);  fclose($myfile);  echo$state_;

?>

五、效果图

实物效果图

网页效果图

标签: te511温度lcd显示传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台