国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【EsDA 應用】快速實現串口轉HTTP請求

ZLG致遠電子 ? 2023-11-09 08:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文將基于EsDA開發套件快速實現將串口數據轉換為HTTP請求的應用開發,實現串口設備與網絡服務的互聯互通,提供便捷和高效的串口數據轉換功能。

7b0587c0-7e96-11ee-9788-92fbcf53809c.jpg ?項目簡介

HTTP協議是互聯網應用最為廣泛的一種網絡協議,由客戶端發送請求消息,服務端針對客戶端的請求進行響應回復。本文將基于EsDA開發平臺,使用EPC6450-AWI開發板,以及圖形化設計工具AWFlow Designer實現將串口數據轉換為HTTP請求發送給云端,隨后云端針對HTTP請求進行處理響應的功能。該項目主要用到了serial_in_ex,fscript,http_request,fileout,timer,filein和serial_out_ex節點,具體實現請見下文。

7b17f6bc-7e96-11ee-9788-92fbcf53809c.jpg ?項目概述

該項目是將串口數據通過作為HTTP客戶端的EPC6450-AWI開發板去發送HTTP請求到云端服務器,在云端服務器上處理HTTP請求并下發響應數據。
該項目的主要步驟如下:

  1. 配置EPC6450-AWI的網口設備并連接到互聯網;
  2. 配置串口通信參數,包括波特率,數據位,停止位和校驗等;
  3. 從串口讀取HTTP請求參數,在本項目中串口的輸入數據如下:POST方法主要是輸入body消息正文,GET方法主要是輸入url統一資源定位符;
  4. http_request節點向云端服務器發起HTTP請求,云端服務器處理數據后發送響應到客戶端,客戶端接收來自云端服務器的響應數據;
  5. HTTP客戶端接收響應數據后,將響應數據中轉到文本中保存并輸出到串口進行顯示。

7b1fe7b4-7e96-11ee-9788-92fbcf53809c.png

7b17f6bc-7e96-11ee-9788-92fbcf53809c.jpg ?項目準備在本文將不再贅述串口設備在EsDA的基礎通信,讀者可以閱讀以下文章對串口節點和EsDA的一些基礎項目進行熟絡:

  • 【EsDA應用】5分鐘實現一個串口通信業務
  • 【EsDA應用】常用IO設備節點詳解
  • EsDAMPC-ZC1應用——串口服務器(一)

1. 硬件準備

在標有絲印為TF Card 絲印的卡槽處,插入SD卡。

用戶可隨機選擇EPC6450-AWI的可用串口設備,在本文將用UART5進行串口通信。在標有絲印為UTX5,URX5的串口模塊上,將TTL轉USB串口模塊的TX與板子絲印為URX5連接,TTL轉USB串口模塊的RX與板子絲印為UTX5相連;并將TTL轉USB串口模塊另一端的USB口接入電腦

  • 在標有絲印為Type-C接口處,插上Type-C線,并將Type-C線的另一端USB口插入電腦。
  • 在標有絲印為NET0或 NET1的RJ45插座處接上水晶頭,網線另一端水晶接頭插在PC的網絡插座上。

7b392a26-7e96-11ee-9788-92fbcf53809c.png

2. 網絡搭建

本文的網絡搭建是將電腦wifi通過以太網與開發板進行網絡共享,以此達到開發板的以太網口聯網的目的。

將TTL轉USB串口模塊接在絲印為DUART的調試串口上(TX接RX,RX接TX)。打開串口調試助手,檢索并打開TTL轉USB串口模塊的設備端口號后,使用shell命令ip addr,查看網口的ip地址,根據下圖可知,本文使用的網口設備ip地址是192.168.137.251。7b42b546-7e96-11ee-9788-92fbcf53809c.png配置PC上的以太網的IP與開發板的IP地址在同一局域網下。

7b49bba2-7e96-11ee-9788-92fbcf53809c.png

將PC上的WLAN配置共享給與開發板連接的以太網。7b519be2-7e96-11ee-9788-92fbcf53809c.png在串口調試助手輸入shell指令ping www.baidu.com,ping成功即開發板聯網成功。

7b5c8f34-7e96-11ee-9788-92fbcf53809c.png

7b17f6bc-7e96-11ee-9788-92fbcf53809c.jpg ?項目實施本項目業務主要分為兩個部分:

  • POST方法請求項目:模擬傳感器數據通過串口轉HTTP客戶端傳送到HTTP服務器,服務器進行數據分析和處理。將串口數據作為HTTP請求的body參數,http_request節點在整理屬性和輸入參數后對自建的HTTP服務器發起POST方法的HTTP請求;服務器收到請求后,將串口數據保存到本地的文本文件以便后續查看,下發響應數據給客戶端;客戶端收到服務器的響應數據經過數據處理后打印到串口助手的界面進行查看。
  • GET方法請求項目:請求訪問百度服務器。串口提供HTTP請求參數,http_request節點整理屬性和輸入參數對百度服務器發起GET方法的HTTP請求;http_request節點接收來自百度服務器的響應數據,將數據保存到指定的文本文件中存儲再從文本中將數據輸出到串口助手的界面上。

1. POST方法請求

本項目由串口助手模擬將采集的傳感器數據通過開發板的串口傳輸到開發板創建的HTTP客戶端,HTTP客戶端再通過POST方法將傳感器數據作為body參數去請求本地搭建的HTTP服務器,HTTP服務器接收到請求后,將傳感器數據存儲到本地的index.html文件中,并將數據處理后作為響應體回發給客戶端,HTTP客戶端接收到響應消息后打印到串口助手上進行顯示。

1.1 流圖繪制

添加serial_in_ex,fscript,http_request,fileout,timer,filein和serial_out_ex節點到畫布中并連線如下圖。

7b708386-7e96-11ee-9788-92fbcf53809c.png

1.2 節點配置

在本文的serial_in_ex和serial_out_ex節點配置參數和操作一致,后面不再贅述serial_out_ex節點的配置操作。雙擊serial_in_ex節點,點擊配置節點名旁邊的鉛筆圖標。

7b7b9528-7e96-11ee-9788-92fbcf53809c.png

選擇用戶使用的串口設備,根據實際需求配置波特率,奇偶校驗等串口配置參數,本項目中的串口配置參數如下圖所示。7b883d5a-7e96-11ee-9788-92fbcf53809c.png

雙擊serial_in_ex的消費者節點fscript,因為本項目主要是將采集到的傳感器數據作為消息體參數發送到HTTP服務器進行處理,所以該fscript主要是將讀取到的serial_in_ex串口數據賦值給http_request節點的body參數如下:

msg.body = istream_read_string(msg.istream, 100)

雙擊http_request節點,配置方法為POST,并設置用戶想要訪問的HTTP服務器URL(這里的HTTP服務器是筆者本地用python搭建的一個簡易HTTP服務器),根據需要選擇輸出的內容類型,其他參數按需配置即可。7b94219c-7e96-11ee-9788-92fbcf53809c.png雙擊http_request節點的消費者節點fscript,該節點主要是存儲http_request節點的輸出參數msg.payloadLength,用于后續賦值給filein節點的輸入參數讀取的數據長度

set(global.length, msg.payloadLength)

雙擊fileout節點,配置屬性參數如下,在本項目中配置文件打開模式為從頭寫入且丟棄源文件內容,文件名選擇開發板上自動掛載的/flow目錄下的文件,數據來源選擇payload形式。7b9f8d66-7e96-11ee-9788-92fbcf53809c.png雙擊timer節點,配置定時周期時長,定時用filein節點去讀取存放HTTP響應的數據。7baa9fa8-7e96-11ee-9788-92fbcf53809c.png

雙擊timer的消費者節點fscript,配置filein節點的輸入參數如下:

set(msg.topic,"exec:read_data");var length = global.lengthset(msg.payload,length);

雙擊filein節點,配置需要讀取的文件名。7bb5d72e-7e96-11ee-9788-92fbcf53809c.png

雙擊filein的消費者節點fscript,該節點主要將從filein節點讀取到的數據轉換給serial_out_ex節點。

set(output.payload,str(msg.payload,true));

雙擊serial_out_ex節點,該節點配置參數與serial_in_ex節點一樣。

7bc0d034-7e96-11ee-9788-92fbcf53809c.png

1.3 本地HTTP服務器搭建

筆者用python腳本搭建了一個簡易的HTTP服務器,主要功能是收到的POST請求中的消息體數據存儲到本地的index.html文本中,并將收到的消息體數據處理后作為響應體回發給客戶端。在PC端執行以下http_server.py的腳本即開啟了本地的HTTP服務端。

from http.server import BaseHTTPRequestHandler, HTTPServerimport logging
class S(BaseHTTPRequestHandler): def do_HEAD(self): self.send_response(200) self.send_header('Content-type', 'text/html') self.end_headers()
def do_POST(self): content_length = int(self.headers['Content-Length']) post_data = self.rfile.read(content_length)
logging.info("POST request,\nPath: %s\nHeaders:\n%s\n\nBody:\n%s\n", str(self.path), str(self.headers), post_data.decode('utf-8'))
res = "You Input: " + post_data.decode('utf-8') with open("index.html","a+") as f: f.write(post_data.decode('utf-8'))
self.do_HEAD() self.wfile.write("{}".format(res).encode('utf-8'))
def respond(self, opts): response = self.handle_http(opts['status'], self.path) self.wfile.write(response)
def handle_http(self, status_code, path): self.send_response(status_code) self.send_header('Content-type', 'text/html') self.end_headers() content = ''' Title goes here.

This is a test.

You accessed path: {}

'''.format(path) return bytes(content, 'UTF-8')

def run(server_class=HTTPServer, handler_class=S, port=8080): print("run()") logging.basicConfig(level=logging.INFO) server_address = ('', port) httpd = server_class(server_address, handler_class) logging.info('Starting http server...\n') try: httpd.serve_forever() except KeyboardInterrupt: pass httpd.server_close() print("httpd.server_close()") logging.info('Stopping http server...\n')

if __name__ == '__main__': from sys import argv
if len(argv) == 2: run(port=int(argv[1])) else: run()

1.4 下載運行

將流圖下載到目標開發板后,在串口調試助手輸入HTTP請求的消息體(模擬的傳感器數據)后,就可以在串口助手輸出界面看到返回的響應內容如下:7bcd2000-7e96-11ee-9788-92fbcf53809c.png本地的HTTP服務器端收到的來自客戶端的請求信息如下:7bd97b84-7e96-11ee-9788-92fbcf53809c.png打開PC本地的index.html文本,可以看到保存的傳感器數據如下:7be10656-7e96-11ee-9788-92fbcf53809c.png至此,串口轉HTTP客戶端的傳感器數據上云的實驗就已完全結束,接下來開啟訪問百度游覽器的HTTP請求實驗。

2. GET方法請求

該項目主要是通過GET方法請求百度服務器,最后將百度服務器響應的消息進行打印顯示,主要是將串口數據轉換為HTTP請求,發送到服務器端,以實現與遠程服務器的通信。

2.1 流圖繪制

添加serial_in_ex,fscript,http_request,fileout,timer,filein和serial_out_ex節點到畫布中并連線如下圖。

7be91d0a-7e96-11ee-9788-92fbcf53809c.png

2.2 節點配置

在本文的serial_in_ex和serial_out_ex節點配置參數和操作一致,后面不再贅述serial_out_ex節點的配置操作。雙擊serial_in_ex節點,點擊配置節點名旁邊的鉛筆圖標。

7b7b9528-7e96-11ee-9788-92fbcf53809c.png

選擇用戶使用的串口設備,根據實際需求配置波特率,奇偶校驗等串口配置參數,本項目中的串口配置參數如下圖所示。7b883d5a-7e96-11ee-9788-92fbcf53809c.png

雙擊serial_in_ex的消費者節點fscript,因為本項目主要是對HTTP協議的GET方法進行數據請求,而GET的請求參數是拼接在URL的后面,所以串口輸入的主要是http_request節點的URL配置項,該fscript主要是讀取serial_in_ex的串口數據,如下:

var str = istream_read_string(msg.istream, 100)msg.url = str

雙擊http_request節點,配置方法為GET,并設置用戶想要訪問的云端服務器URL,根據需要選擇輸出內容類型,其他參數按需配置即可。7c05f86c-7e96-11ee-9788-92fbcf53809c.png

雙擊http_request節點的消費者節點fscript,該節點主要是存儲http_request節點的輸出參數msg.payloadLength,用于后續賦值給filein節點的輸入參數讀取的數據長度

set(global.length, msg.payloadLength)

雙擊fileout節點,配置屬性參數如下,在本項目中配置文件打開模式為從頭寫入且丟棄源文件內容,文件名選擇開發板上自動掛載的/flow目錄下的文件,數據來源選擇payload形式。7b9f8d66-7e96-11ee-9788-92fbcf53809c.png雙擊timer節點,配置定時周期時長,定時用filein節點去讀取存放HTTP響應的數據。7baa9fa8-7e96-11ee-9788-92fbcf53809c.png

雙擊timer的消費者節點fscript,配置filein節點的輸入參數如下:

set(msg.topic,"exec:read_data");var length = global.lengthset(msg.payload,length);

雙擊filein節點,配置需要讀取的文件名。7bb5d72e-7e96-11ee-9788-92fbcf53809c.png

雙擊filein的消費者節點fscript,該節點主要將從filein節點讀取到的數據轉換給serial_out_ex節點。

set(output.payload,str(msg.payload,true));

雙擊serial_out_ex節點,該節點配置參數與serial_in_ex節點一樣。

7bc0d034-7e96-11ee-9788-92fbcf53809c.png

2.3 下載驗證

將該流圖下載到目標開發板后,在串口調試助手輸入HTTP請求的云端URL后,可以看到返回的響應消息,具體如下圖。7c39ba08-7e96-11ee-9788-92fbcf53809c.png至此該實驗到此結束。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • HTTP
    +關注

    關注

    0

    文章

    537

    瀏覽量

    35350
  • 數據轉換
    +關注

    關注

    0

    文章

    101

    瀏覽量

    18516
  • ESDA
    +關注

    關注

    0

    文章

    28

    瀏覽量

    7997
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    USB串口擴展方案詳解

    在計算機與嵌入式系統中,擴展多個串行通信接口是常見需求。當前實現串口擴展的主要方式包括USB串口、PCI/PCIe
    的頭像 發表于 01-28 16:58 ?178次閱讀
    USB<b class='flag-5'>轉</b>多<b class='flag-5'>串口</b>擴展方案詳解

    TUSB3410 USB 串口控制器:特性、應用與設計要點

    TUSB3410 USB 串口控制器:特性、應用與設計要點 在電子設備的設計中,實現 USB 接口與串口設備之間的通信是一個常見需求。TI 的 TUSB3410 作為一款 USB
    的頭像 發表于 12-30 16:30 ?375次閱讀

    HTTP通信網關是什么?有什么功能?

    HTTP通信網關是連接不同網絡或協議的關鍵設備/服務器,在HTTP通信中扮演著協議轉換、安全加固、性能優化等核心角色,其本質是 實現不同協議或網絡間的數據轉發與處理 。以下是其核心功能與工作機制
    的頭像 發表于 12-23 11:14 ?430次閱讀

    使用HTTP實現IAP的方法

    使用 HTTP 協議進行固件升級沒有使用 TFTP 常見,但是在需要通過 Internet 進行遠程編程時,這種解決方案就顯得極為有用。這時,需要使用 TCP 傳輸協議來實現 http 服務
    發表于 12-16 06:18

    Modbus協議HTTP協議,實現JSON格式對接MES等系統平臺

    不用聯外網不用寫程序,通過智能網關IGT-DSER簡單配置參數,即可實現HTTP協議對接各種系統平臺,支持POST/GET/PUT等多種方法,可同時作為HTTP協議的客戶端和服務端。 智能網關
    發表于 10-27 10:33

    ESDA5WY車規級單向ESD保護器件技術解析與應用指南

    STMicroelectronics ESDA5WY車用雙路單向ESD保護是一款車用單向瞬態電壓抑制器 (TVS),設計用于惡劣環境。TVS可保護敏感電子產品免受因電氣過應力 (EOS)、雷電浪涌和ESD造成的損壞或閂鎖,而不會
    的頭像 發表于 10-17 18:27 ?1103次閱讀
    <b class='flag-5'>ESDA</b>5WY車規級單向<b class='flag-5'>ESD</b>保護器件技術解析與應用指南

    LuatOS Air780EPM 開發板 HTTP 教程:原理講解與項目實操!

    本篇教程將系統介紹 LuatOS Air780EPM 在 HTTP 通信中的應用,從請求機制到響應解析,配合完整代碼演示,讓你輕松實現設備端與云端的數據交互。 一、HTTP 概述 1.
    的頭像 發表于 09-26 20:36 ?998次閱讀
    LuatOS Air780EPM 開發板 <b class='flag-5'>HTTP</b> 教程:原理講解與項目實操!

    通用串口Modbus TCP 網關

    通用串口Modbus TCP 網關 在工業自動化系統中,設備協議的多樣性常常導致通信障礙。許多關鍵設備采用獨特的串口協議(自定義串口協議),難以直接與廣泛使用的標準協議(如 Modb
    的頭像 發表于 08-13 15:59 ?588次閱讀
    通用<b class='flag-5'>串口</b><b class='flag-5'>轉</b>Modbus TCP 網關

    外部晶振在USB串口模塊的應用

    在工業設備、嵌入式系統以及各類專業儀器中,串口通信依然是關鍵的數據傳輸方式。為適應現代計算機,USB 串口模塊應運而生。可將 USB 接口轉換為傳統的串口,從而
    的頭像 發表于 08-12 17:28 ?1413次閱讀
    外部晶振在USB<b class='flag-5'>轉</b><b class='flag-5'>串口</b>模塊的應用

    新一代PLC控制軟件平臺EsDA-AWStudio

    在工業自動化和智能制造領域,高效的軟件平臺是提升開發效率和系統性能的關鍵。ZLG致遠電子推出的EsDA-AWStudio平臺,憑借其強大的功能和靈活的設計,為工業控制和物聯網應用提供了全新的解決方案
    的頭像 發表于 07-28 11:33 ?511次閱讀
    新一代PLC控制軟件平臺<b class='flag-5'>EsDA</b>-AWStudio

    第九章 W55MH32 HTTP Server示例

    本文介紹了在 W55MH32?芯片上實現 HTTP Server?功能,并通過瀏覽器修改其網絡地址信息的方法。闡述了 HTTP?協議的概念、特點、應用場景、工作流程、請求方法、響應內容
    的頭像 發表于 07-24 09:35 ?1106次閱讀
    第九章 W55MH32 <b class='flag-5'>HTTP</b> Server示例

    工業物聯網4G無線網絡串口模塊

    4G無線網絡串口模塊是一種工業通信設備,通過4G網絡將串口(如RS232/RS485)設備接入互聯網,實現遠程數據傳輸與控制。適用于物聯網(IoT)、工業自動化、遠程監控等場景。阿爾
    的頭像 發表于 06-25 11:11 ?780次閱讀
    工業物聯網4G無線網絡<b class='flag-5'>轉</b><b class='flag-5'>串口</b>模塊

    在KaihongOS應用開發中,如何通過HTTP發起一個數據請求

    Http 在KaihongOS應用開發中,可以通過HTTP發起一個數據請求,支持常見的GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT方法。詳細的API
    發表于 05-08 06:44

    串口以太網芯片選型指南:2025十大以太網模塊品牌盤點與應用方案解析

    隨著物聯網(IoT)、工業自動化和智能設備的廣泛普及,串口以太網技術的需求持續增長。串口以太網芯片作為實現
    的頭像 發表于 04-09 15:30 ?2009次閱讀

    HTTP和HTTPS的關鍵區別

    HTTP(HyperText Transfer Protocol) 是一種無狀態的通信協議,通常用于在客戶端(例如瀏覽器)和服務器之間傳輸超文本(如 HTML 頁面)。但這僅僅是一個單向通信協議
    的頭像 發表于 03-25 15:34 ?2290次閱讀
    <b class='flag-5'>HTTP</b>和HTTPS的關鍵區別