<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
"); //-->

博客專(zhuān)欄

EEPW首頁(yè) > 博客 > MicroPython TPYBoard v201 簡(jiǎn)單的web服務(wù)器實(shí)現過(guò)程

MicroPython TPYBoard v201 簡(jiǎn)單的web服務(wù)器實(shí)現過(guò)程

發(fā)布人:bodasister 時(shí)間:2019-07-22 來(lái)源:工程師 發(fā)布文章

前言

TPYBoard v201開(kāi)發(fā)板上搭載了以太網(wǎng)轉TTL串口模塊(USR-K2),從而實(shí)現了TCP通信的功能。既然可以TCP通信,自然也可以實(shí)現HTTP協(xié)議通信。于是,就萌發(fā)了本教程。本教程很簡(jiǎn)單,僅是實(shí)現了一個(gè)簡(jiǎn)單的靜態(tài)頁(yè)面,希望可以給大家帶來(lái)不一樣的啟發(fā)。

TPYBoard v201實(shí)物圖:

v201.jpg

準備工作

硬件&工具

- TPYBoard v201 開(kāi)發(fā)板 1塊

- TPYBoard v201 網(wǎng)絡(luò )參數配置的工具

- 路由器、電腦、網(wǎng)線(xiàn)等

知識儲備

- 了解基本的TCP、HTTP通信協(xié)議等相關(guān)的知識。不知道的可自行去百度,相關(guān)教程很多。

TPYBoard v201網(wǎng)絡(luò )參數配置

USR-K2資料和工具下載: 點(diǎn)擊下載

下載地址是在GitHub上,如果下載速度很慢的話(huà),你也可以加TPYBoard技術(shù)交流/*裙*/;157816561 文件里下載。


首先,將TPYBoard v201開(kāi)發(fā)板通過(guò)網(wǎng)線(xiàn)與你使用的電腦接入同一個(gè)局域網(wǎng)內。雙擊運行<USR-M0_V2.2.1.272.exe>,點(diǎn)擊搜索設備,成功的情況下會(huì )在上面的列表中顯示搜索到的設備。

0.png

點(diǎn)擊搜素到的設備,可以讀取到該設備的相關(guān)參數。同時(shí)也可以進(jìn)行修改并保存。接下來(lái),我們要進(jìn)行IP地址、端口等設置。IP地址我這里設置了靜態(tài)IP<192.168.0.99>,防止每次重新啟動(dòng)時(shí)會(huì )改變IP。

1.png

接下來(lái)端口設置,模塊工作方式選擇TCP Server。大家可以注意到基礎設置中有一個(gè)HTTP服務(wù)端口的設置,是因為USR-K2中本身就有一個(gè)內嵌的網(wǎng)頁(yè)用于參數的設置,默認是啟用了80端口,那我們下面開(kāi)啟的TCP Server的服務(wù)端口就使用81端口吧。

2.png

設置完畢后,點(diǎn)擊軟件最下方的保存設置。左側的操作日志顯示框會(huì )顯示保存的進(jìn)度和狀態(tài)。

3.png

這時(shí)再重新搜索設備,驗證下模塊的IP地址是否和我們設置的一致。

4.png

程序實(shí)現

TPYBoard  v201通過(guò)板子上的串口6與USR-K2模塊之間通信。我們不用去管TCP鏈接等問(wèn)題,只需要將想要發(fā)送的數據通過(guò)串口6發(fā)送給K2模塊即可。其實(shí)我們的程序主要就是讀取和寫(xiě)入串口的工作,當我們從串口讀取到HTTP請求報文時(shí),組成一個(gè)簡(jiǎn)單的響應報文寫(xiě)入到串口發(fā)送回去就可以了。

main.py 源碼:

import pyb
from pyb import UART

#串口6初始化
uart = UART(6,115200,timeout = 100)
#響應報文
header = """
HTTP/1.1 200 OK
Content-Type:text/html
Content-Length:{0}

{1}
"""
#HTML頁(yè)面
html = """<!DOCTYPE html>
<html>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <head> <title>TPYBoard</title> </head>
    <body>
      <h1>TPYBoard v201</h1><br />
      <h2>Simple HTTP server</h2>
    </body>
</html>
"""

while True:
    if uart.any() > 0:
        request = uart.read().decode()
        print('request:',request)
        #當接收到GET請求頭時(shí),進(jìn)行響應
        if request.find('GET') > -1:
            data = header.format(len(html),html)
            uart.write(data)

保存代碼。打開(kāi)瀏覽器,輸入URL進(jìn)行訪(fǎng)問(wèn)。URL=ip:81,例如我的URL就是192.168.0.99:81。

1563777258990186.png

PuTTY中打印了接收到的請求頭的數據,如下:

   request: GET / HTTP/1.1
    Host: 192.168.0.99:81
    Connection: keep-alive
    Cache-Control: max-age=0
    Upgrade-Insecure-Requests: 1
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.7 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
    Accept-Encoding: gzip, deflate
    Accept-Language: zh-CN,zh;q=0.9

我用的是谷歌瀏覽器,不同瀏覽器可能會(huì )有些不同,但是大同小異,只要符合HTTP請求報文格式即可,有興趣的朋友可以多去了解些。細心的朋友會(huì )注意到,每次訪(fǎng)問(wèn)時(shí)瀏覽器會(huì )發(fā)送兩次請求,其中有一個(gè) GET /favicon.ico HTTP/1.1,這是因為瀏覽器想找favicon.ico文件作為訪(fǎng)問(wèn)網(wǎng)頁(yè)的圖標,這個(gè)可以忽略掉,不影響功能。也可以在程序中進(jìn)行過(guò)濾。


下載源碼:https://github.com/TPYBoard/TPYBoard-v201

*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。



關(guān)鍵詞:

相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>