MicroPythonTPYBoardv201簡單的web服務(wù)器實(shí)現(xiàn)過程

前言

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

成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),景寧畬族自治企業(yè)網(wǎng)站建設(shè),景寧畬族自治品牌網(wǎng)站建設(shè),網(wǎng)站定制,景寧畬族自治網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,景寧畬族自治網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

TPYBoard v201實(shí)物圖:

MicroPython TPYBoard v201 簡單的web服務(wù)器實(shí)現(xiàn)過程

準(zhǔn)備工作

硬件&工具

  • TPYBoard v201 開發(fā)板 1塊
  • TPYBoard v201 網(wǎng)絡(luò)參數(shù)配置的工具
  • 路由器、電腦、網(wǎng)線等

知識儲備

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

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

USR-K2資料和工具下載:點(diǎn)擊下載
下載地址是在GitHub上,如果下載速度很慢的話,你也可以加TPYBoard技術(shù)交流//;157816561 文件里下載。

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

MicroPython TPYBoard v201 簡單的web服務(wù)器實(shí)現(xiàn)過程

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

MicroPython TPYBoard v201 簡單的web服務(wù)器實(shí)現(xiàn)過程
接下來端口設(shè)置,模塊工作方式選擇TCP Server。大家可以注意到基礎(chǔ)設(shè)置中有一個(gè)HTTP服務(wù)端口的設(shè)置,是因?yàn)閁SR-K2中本身就有一個(gè)內(nèi)嵌的網(wǎng)頁用于參數(shù)的設(shè)置,默認(rèn)是啟用了80端口,那我們下面開啟的TCP Server的服務(wù)端口就使用81端口吧。

MicroPython TPYBoard v201 簡單的web服務(wù)器實(shí)現(xiàn)過程

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

MicroPython TPYBoard v201 簡單的web服務(wù)器實(shí)現(xiàn)過程

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

MicroPython TPYBoard v201 簡單的web服務(wù)器實(shí)現(xiàn)過程

程序?qū)崿F(xiàn)

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

main.py 源碼:

import pyb
from pyb import UART

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

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

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

保存代碼。打開瀏覽器,輸入U(xiǎn)RL進(jìn)行訪問。URL=ip:81,例如我的URL就是192.168.0.99:81。

MicroPython TPYBoard v201 簡單的web服務(wù)器實(shí)現(xiàn)過程

PuTTY中打印了接收到的請求頭的數(shù)據(jù),如下:

    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

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

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

網(wǎng)頁標(biāo)題:MicroPythonTPYBoardv201簡單的web服務(wù)器實(shí)現(xiàn)過程
本文URL:http://www.muchs.cn/article10/gjgggo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、虛擬主機(jī)服務(wù)器托管、微信公眾號、定制開發(fā)、網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)