中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MicroPython TPYBoard v201 簡單的web服務器實現過程

發布時間:2020-07-20 21:03:35 來源:網絡 閱讀:18366 作者:小小的森 欄目:編程語言

前言

TPYBoard v201開發板上搭載了以太網轉TTL串口模塊(USR-K2),從而實現了TCP通信的功能。既然可以TCP通信,自然也可以實現HTTP協議通信。于是,就萌發了本教程。本教程很簡單,僅是實現了一個簡單的靜態頁面,希望可以給大家帶來不一樣的啟發。

TPYBoard v201實物圖:

MicroPython TPYBoard v201 簡單的web服務器實現過程

準備工作

硬件&工具

  • TPYBoard v201 開發板 1塊
  • TPYBoard v201 網絡參數配置的工具
  • 路由器、電腦、網線等

知識儲備

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

TPYBoard v201網絡參數配置

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

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

MicroPython TPYBoard v201 簡單的web服務器實現過程

點擊搜素到的設備,可以讀取到該設備的相關參數。同時也可以進行修改并保存。接下來,我們要進行IP地址、端口等設置。IP地址我這里設置了靜態IP<192.168.0.99>,防止每次重新啟動時會改變IP。

MicroPython TPYBoard v201 簡單的web服務器實現過程
接下來端口設置,模塊工作方式選擇TCP Server。大家可以注意到基礎設置中有一個HTTP服務端口的設置,是因為USR-K2中本身就有一個內嵌的網頁用于參數的設置,默認是啟用了80端口,那我們下面開啟的TCP Server的服務端口就使用81端口吧。

MicroPython TPYBoard v201 簡單的web服務器實現過程

設置完畢后,點擊軟件最下方的保存設置。左側的操作日志顯示框會顯示保存的進度和狀態。

MicroPython TPYBoard v201 簡單的web服務器實現過程

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

MicroPython TPYBoard v201 簡單的web服務器實現過程

程序實現

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

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頁面
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)
        #當接收到GET請求頭時,進行響應
        if request.find('GET') > -1:
            data = header.format(len(html),html)
            uart.write(data)

保存代碼。打開瀏覽器,輸入URL進行訪問。URL=ip:81,例如我的URL就是192.168.0.99:81。

MicroPython TPYBoard v201 簡單的web服務器實現過程

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

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

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

菏泽市| 恩平市| 随州市| 松潘县| 祁连县| 周至县| 綦江县| 常山县| 加查县| 孝感市| 乌兰县| 新化县| 久治县| 桦川县| 崇左市| 霸州市| 渑池县| 大关县| 霍林郭勒市| 湾仔区| 石景山区| 龙口市| 杭州市| 定远县| 色达县| 崇文区| 永济市| 邳州市| 登封市| 安国市| 合江县| 泾川县| 繁昌县| 抚宁县| 乐山市| 浦江县| 长阳| 晋江市| 永善县| 新宾| 南充市|