2020国产成人精品视频,性做久久久久久久久,亚洲国产成人久久综合一区,亚洲影院天堂中文av色

分享

用MicroPython制作家庭無線溫濕度檢測氣象站

 TPYBoard開發(fā)板 2018-09-11
    一、實驗器件

    1、TPYBoard v102 1塊
    2、TPYBoard v202 1塊
    3、Nokia 5110LCD顯示屏 1塊
    4、DHT11溫濕度傳感器 1個
    5、micro USB 數(shù)據(jù)線 2根
    6、面包板 1塊
    7、杜邦線 若干
    (該套件組合某寶可以買到)

 
 

    二、實驗步驟

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

    三、實驗方法

    1、Nokia 5110 LCD顯示屏說明

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

 
 

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

標(biāo)注

功能

GND

接地

BL

背景燈

Vcc

3.3V

CLK

時鐘信號

DIN

數(shù)據(jù)流

DC

當(dāng)為0時表示命令狀態(tài),當(dāng)為1時表示數(shù)據(jù)狀態(tài)

CE

使能端

RST

RESET


    2.DHT11溫濕度說明

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

 
 

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

標(biāo)注

功能

GND

接地

DATA

信號輸入輸出

Vcc

5V


    四、接線方式

    1、針腳對應(yīng)圖

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

    TPYBoard v102連接LCD5110

LCD5110

TPYBoard v102

RST

Y11

CE

Y10

DC

Y9

Din

X8

Clk

X6

Vcc

3.3V

BL

X4

GND

GND


    













    TPYBoard v102連接DHT11

DHT11

TPYBoard v102

GND

GND

DATA

X12

VCC

VIN(5V)


    





    TPYBoard v102連接TPYBoard v202

TPYBoard v202

TPYBoard v102

RX

Y1

TX

Y2


    




    
    2、實物連接圖

 
 
 

    四、源代碼

    TPYBoard v102 源代碼

 
 

    TPYBoard v102 main.py文件內(nèi)容,如下:

#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]))#通過串口將數(shù)據(jù)發(fā)送給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('TPYBoard v102',1,0)

    while True:

        main(lcd_5110,dht,u6)

        pyb.delay(2000)


    *其他文件詳見最下方壓縮包*
    TPYBoard v202 源代碼

    只有1個main.py 文件

    TPYBoard v202 main.py文件內(nèi)容,如下:

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)#板載小藍(lán)燈 默認(rèn)關(guān)閉

def http_get(temp,hum):

    url='http://www./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')#數(shù)組轉(zhuǎn)成字符串

        data_a=data_.split(',')#分割

        temp_=str(data_a[0])#溫度

        hum_=str(data_a[1])#濕度

        http_get(temp_,hum_)#發(fā)送給服務(wù)器

    time.sleep(2)



    服務(wù)器源碼

    SensorData.php 文件內(nèi)容如下:

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>溫濕度傳感器實驗</title>

<script type="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 onload="timedCount()">

  <center>

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

    <h2>TPYBoardV202_溫濕度傳感器實驗</h2>

    <div id="test"></div>

  </div>

   </center>

</body>

</html>


    SensorTest.php 文件內(nèi)容如下:

<?php

    $time_="獲取時間:".date('Y-m-d H:i:s');

    $data_="傳感器數(shù)據(jù):Sensor Error!";

    $state_="No";

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

    {

        $data_="";

        //獲取溫度

        if(isset($_GET["t"]))

        {

            $para=$_GET["t"];

            $data_.="傳感器數(shù)據(jù):溫度:".$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_;

?>


    五、效果圖

    實物效果圖

 
 

    網(wǎng)頁效果圖

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多