久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2673|回復: 0
收起左側

TPYBoard v102+v202家庭無線溫濕度檢測

[復制鏈接]
ID:130183 發表于 2018-9-30 14:41 | 顯示全部樓層 |閱讀模式
一、實驗器件

    1、TPYBoard v102 1塊
    2、TPYBoard v202 1塊
    3、Nokia 5110LCD顯示屏 1塊
    4、DHT11溫濕度傳感器 1個
    5、micro USB 數據線 2根
    6、面包板 1塊
    7、杜邦線 若干

   二、實驗步驟

    TPYBoard v102連接DHT11,采集溫濕度信息;
    TPYBoard v102將采集到的溫濕度信息顯示在LCD5110上;
    TPYBoard v102通過串口將溫濕度信息發送給TPYBoard v202;
    TPYBoard v202 將串口的數據讀取出來,同時傳遞到服務器上。

    三、實驗方法

    1、Nokia 5110 LCD顯示屏說明

    LCD5110是一款84x48 的點陣LCD,可以顯示4 行漢字。采用串行接口與主處理器進行通信,支持多種串行通信協議(如AVR 單片機的SPI、MCS51 的串口模式0等),傳輸速率高達4Mbps,可全速寫入顯示數據。

1.jpg

    Nokia 5110 LCD共有8個引腳,不同的板子可能標注的英文略有不同,具體參照如下:

2.png

    2、DHT11溫濕度說明

    DHT11是一款有已校準數字信號輸出的溫濕度傳感器。 精度濕度+-5%RH, 溫度+-2℃,量程濕度20-90%RH, 溫度0~50℃。

3.jpg

    DHT11溫濕度共有3個引腳,具體參照如下:

4.png

    四、接線方式

    1、針腳對應圖

    DHT11和LCD5110的使用方法上面都介紹過了,接下來,就要動手和我們的TPYBoard v102接起來了。

    TPYBoard v102連接LCD5110

5.png

    TPYBoard v102連接DHT11

6.png

    TPYBoard v102連接TPYBoard v202

7.png

    2、實物連接圖

8.jpg


9.jpg

   四、源代碼

    TPYBoard v102 源代碼

10.png

    TPYBoard v102 main.py文件內容,如下:

#main.py
import  pyb
import  upcd8544
from  machine  import  SPI,Pin
from  dht11  import  DHT11
def  main(lcd_5110,dht,uart6):
    data_=dht.read_data()
    lcd_5110.lcd_write_string(' ',0,1)#添加一個分隔行
   lcd_5110.lcd_write_string('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__name__ == '__main__':
    #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
import  network
import  socket
from  machine  import  Pin
from  machine  import  UART
import  time
u2=UART(0,115200)#串口初始化
led =Pin(2, Pin.OUT).value(1)#板載小藍燈 默認關閉
def  http_get(temp,hum):
   url='http://www點tpyboard點com/esp8266/SensorTest.php?t='+temp+'&h='+hum+''
    _, _, host, path = url.split('/', 3)
    addr = socket.getaddrinfo(host, 80)[0][-1]
    s = socket.socket()
    s.connect(addr)
    s.send(bytes('GET /%s HTTP/1.0\r\nHost:%s\r\n\r\n' % (path, host), 'utf8'))
    while  True:
        data = s.recv(50)
        if  data:
            recive=str(data, 'utf8').upper()
            #print(str(data, 'utf8'), end='')
            if(recive.find('YES')>-1):
               print('Send Data OK')
        else:
            break
    s.close()
def  do_connect():
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    if  not wlan.isconnected():
        print('connecting to network...')
        wlan.connect( 'ssid', 'pwd')
        while not wlan.isconnected():
            pass
    print('network config:', wlan.ifconfig())
do_connect()
led =Pin(2, Pin.OUT).value(0)#連接wifi成功 點亮LED
while 1:
    data_=u2.readall()
    if data_!=None:
        data_=data_.decode('utf8')#數組轉成字符串
        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_;
?>

    五、效果圖

   實物效果圖

11.jpg

    網頁效果圖
12.png




回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品国产乱码久久久久久牛牛 | 国产激情在线 | 福利久久 | 久久无毛| 国产精品久久久久久久免费大片 | 欧美激情 一区 | 午夜资源 | 欧美自拍另类 | 亚洲福利视频网 | 本道综合精品 | 日本成人毛片 | 亚洲一区二区av | 国产精品久久久久久亚洲调教 | 久久精品91久久久久久再现 | 色在线免费视频 | 国产精品一区二区视频 | 欧美另类视频在线 | 日韩在线免费视频 | 九九热精 | 国产精品一区二区三区免费观看 | 一区二区三区韩国 | 色www精品视频在线观看 | 日韩一级黄色毛片 | 嫩呦国产一区二区三区av | 国产伦一区二区三区 | 成人精品免费视频 | 亚洲国产精品久久久久 | 精品国产欧美 | 一区二区三区视频在线免费观看 | 大象视频一区二区 | 久久99久久 | 91干b| 欧美大片一区二区 | 国产在线视频一区二区董小宛性色 | 国产福利91精品一区二区三区 | 日韩精品一区二区三区视频播放 | 亚洲国产成人在线视频 | 欧美亚洲综合久久 | 久久久久久久久久久久91 | 国产免费一区二区三区免费视频 | 亚洲一二三区不卡 |