最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python?Flask框架實現(xiàn)Proteus仿真Arduino與網(wǎng)頁數(shù)據(jù)交互

 更新時間:2022年11月23日 10:00:21   作者:liu_jiankang  
這篇文章主要介紹了Python?Flask框架實現(xiàn)Proteus仿真Arduino與網(wǎng)頁數(shù)據(jù)交互,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧

實驗原理

模擬電腦通過串口與Arduino開發(fā)板通信,并通過網(wǎng)頁實現(xiàn)簡單交互

開發(fā)環(huán)境

1、Windows10

2、Python3.10

3、Proteus8.6

4、com0com虛擬串口工具

Flask虛擬環(huán)境

先安裝virtualenv:

pip install virtualenv

建立項目文件夾(比如demo_4)

在demo_04文件夾內(nèi),文件-打開powershell

建立虛擬環(huán)境venv

PS D:\code\flask\demo_04> virtualenv venv

demo_04文件夾里面會出現(xiàn)venv文件夾,后面安裝的python庫都裝在這個文件夾里面

激活虛擬環(huán)境:

PS D:\code\flask\demo_04> .\venv\Scripts\activate

在虛擬環(huán)境中安裝Flask和pyserial(python的串口庫)

(venv) PS D:\code\flask\demo_04> pip install Flask pyserial

如果下載慢,建議修改pip源為清華大學源(請同學們自行百度)

至此開發(fā)環(huán)境配置完畢

Python Flask源碼

文件目錄結(jié)構:

demo_04
    -html
        index.html
    -static
        -images
            pic_bulboff.gif
            pic_bulbon.gif
    app.py

index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>test</title>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
	$("#button_open").click(function(){
		$.get("http://127.0.0.1:5000/open",function(data,status){
			alert("數(shù)據(jù): " + data + "\n狀態(tài): " + status);
		});
	});
    $("#button_close").click(function(){
		$.get("http://127.0.0.1:5000/close",function(data,status){
			alert("數(shù)據(jù): " + data + "\n狀態(tài): " + status);
		});
	});
    setInterval(function() {
        $.get("http://127.0.0.1:5000/get",function(data,status){
            if (data == 1){
                document.getElementById("myimage").src="static/images/pic_bulbon.gif";
            }
            else{
                document.getElementById("myimage").src="static/images/pic_bulboff.gif";
            }
		});
    }, 1000);
});
</script>
</head>
<body>
<h1>我的第一個標題</h1>
<p>我的第一個段落。</p>
<button id="button_open">打開串口COM2</button>
<button id="button_close">關閉串口COM2</button>
<img id="myimage" src="static/images/pic_bulboff.gif" width="100" height="180">
</body>
</html>

app.py

import os
import serial
from flask import Flask
from flask import send_from_directory
app = Flask(__name__)
root = os.path.join(os.path.dirname(os.path.abspath(__file__)), "html")#html是個文件夾
@app.route('/')
def home():
    return send_from_directory(root, "index.html")#homepage.html在html文件夾下
@app.route('/open')
def open_port():
    global ser
    port = 'COM2'
    baudrate = 9600  # 設置波特率
    timeout = 1
    ser = serial.Serial(port, baudrate, timeout=timeout)
    return 'Serial Port open'
@app.route('/close')
def close_port():
    ser.close()
    return 'Serial Port close'
@app.route('/get')
def read_port():
    ser.reset_input_buffer()
    line = ser.readline()
    return line
if __name__ == '__main__':
   app.run(debug = True)

用Proteus仿真Arduino

原理圖:

Arduino源碼:

void setup() {
  // put your setup code here, to run once:
pinMode(0,INPUT);  
Serial.begin(9600);
Serial.println("hello my friend!");
pinMode(2,INPUT);          
}
void loop() {
  // put your main code here, to run repeatedly:
  if(digitalRead(2)==0) {
    Serial.println("0");
  }else{
    Serial.println("1");
  }
  delay(500);
}

用com0com建立虛擬串口對

安裝完com0com后,開始菜單打開Setup Command Prompt,運行下圖的命令即可創(chuàng)建一個虛擬串口對COM1和COM2(往COM1寫數(shù)據(jù),可以從COM2讀出來,反之亦然)

創(chuàng)建完后,設備管理器可以看到新增了串口設備:

本實驗中,Proteus中仿真的Arduino向串口COM1中寫數(shù)據(jù)(在Proteus中雙擊COMPIM控件,設置Physical port為COM1),Python代碼app.py從COM2讀取數(shù)據(jù),從而實現(xiàn)網(wǎng)頁和Arduino的數(shù)據(jù)交互。

運行程序

1、Proteus中點擊三角按鈕開始仿真,COMPIM控件上可以看到TXD管腳閃爍,說明在發(fā)送數(shù)據(jù)

2、powershell中運行app.py

(venv) PS D:\code\flask\demo_04> python .\app.py

打開瀏覽器地址http://127.0.0.1:5000 看到網(wǎng)頁:

點擊打開串口按鈕,然后在Proteus中切換SW1開關狀態(tài),可以看到網(wǎng)頁中燈泡照片變亮變暗

到此這篇關于Python Flask框架實現(xiàn)Proteus仿真Arduino與網(wǎng)頁數(shù)據(jù)交互的文章就介紹到這了,更多相關Proteus仿真Arduino與網(wǎng)頁交互內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Pandas查詢數(shù)據(jù)df.query的使用

    Pandas查詢數(shù)據(jù)df.query的使用

    本文主要介紹了Pandas查詢數(shù)據(jù)df.query的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • Python定時任務APScheduler安裝及使用解析

    Python定時任務APScheduler安裝及使用解析

    這篇文章主要介紹了Python定時任務APScheduler安裝及使用解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • yolov5中head修改為decouple?head詳解

    yolov5中head修改為decouple?head詳解

    現(xiàn)成的YOLOv5代碼真的很香,不管口碑怎么樣,我用著反正是挺爽的,下面這篇文章主要給大家介紹了關于yolov5中head修改為decouple?head的相關資料,需要的朋友可以參考下
    2022-06-06
  • Python的經(jīng)緯度與xy坐標系相互轉(zhuǎn)換方式

    Python的經(jīng)緯度與xy坐標系相互轉(zhuǎn)換方式

    這篇文章主要介紹了Python的經(jīng)緯度與xy坐標系相互轉(zhuǎn)換方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Python中的exec、eval使用實例

    Python中的exec、eval使用實例

    這篇文章主要介紹了Python中的exec、eval使用實例,本文以簡潔的方式總結(jié)了Python中的exec、eval作用,并給出實例,需要的朋友可以參考下
    2014-09-09
  • Pycharm出現(xiàn)卡頓、反應慢及CPU占用高等問題解決

    Pycharm出現(xiàn)卡頓、反應慢及CPU占用高等問題解決

    相信很多剛開始使用pycharm不太熟練的小伙伴,每天一開機打開pycharm總是卡半天,不知道的還以為是電腦卡了或者啥問題的,下面這篇文章主要給大家介紹了關于Pycharm出現(xiàn)卡頓、反應慢及CPU占用高等問題解決的相關資料,需要的朋友可以參考下
    2023-06-06
  • Python調(diào)用釘釘自定義機器人的實現(xiàn)

    Python調(diào)用釘釘自定義機器人的實現(xiàn)

    這篇文章主要介紹了Python調(diào)用釘釘自定義機器人的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • Python利用海龜畫圖turtle庫做一個籃球比賽計時畫面示例代碼

    Python利用海龜畫圖turtle庫做一個籃球比賽計時畫面示例代碼

    這篇文章主要介紹了Python利用海龜畫圖turtle庫做一個籃球比賽計時畫面的相關資料,文中通過代碼介紹的非常詳細,代碼實現(xiàn)了一個基本的計時器功能,需要的朋友可以參考下
    2024-12-12
  • python模擬登陸、POST/GET請求方式

    python模擬登陸、POST/GET請求方式

    這篇文章主要介紹了python模擬登陸、POST/GET請求方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Pygame的程序開始示例代碼

    Pygame的程序開始示例代碼

    這篇文章主要介紹了Pygame的程序開始的示例代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05

最新評論

夏邑县| 琼海市| 泰宁县| 牙克石市| 上栗县| 安平县| 湘阴县| 临泽县| 彰化县| 达尔| 榆中县| 衡水市| 南陵县| 宝清县| 玉龙| 新闻| 社旗县| 福建省| 鸡西市| 屯昌县| 乌苏市| 平湖市| 丰都县| 阿巴嘎旗| 兰考县| 息烽县| 虞城县| 涿鹿县| 红桥区| 无锡市| 拉萨市| 贵定县| 聂拉木县| 筠连县| 河池市| 平谷区| 四川省| 密山市| 南部县| 徐汇区| 项城市|