日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

树莓派搭WEB控制点灯(微信点灯,网页控制电机等)

發布時間:2024/1/1 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 树莓派搭WEB控制点灯(微信点灯,网页控制电机等) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

感興趣的可加群193369905,博主利用這個思想做的水下機器人社區 https://runsglobel.com
用到的知識:Python Bottle HTML Javascript JQuery Bootstrap AJAX 當然還有 linux
硬件:樹莓派
軟件:python 、Bottle
接下來我們一個個安裝一下吧:
1、樹莓派系統的安裝(跳過)
2、Python的安裝(樹莓派里只要一行命令,大部分情況默認已經安裝)
3、如果要用串口wiringpi啥的還需要安裝(提一下吧)
wiringpi安裝
第一步:安裝github工具,在官網最新的Raspbian中,已經默認給安裝了。安裝命令如下:

sudo apt-get install git-core

第二步:安裝 git 工具后,就可以使用如下的命令來獲取 wiringPi 了:

git clone git://git.drogon.net/wiringPi

第三步:編譯和安裝wiringPi,命令如下:

cd wiringPi./bulid

第四步:查看wiringPi是否安裝成功,命令行如下:

gpio –v

終端會顯示庫版本,編寫作者等,再敲打一行命令,獲取wiringPi與樹莓派接口之間的對應關系,命令行如下:

gpio readall

終端顯示如下:會顯示名字,模式,對應的物理接口
至此安裝結束。自己可以找一塊小程序點個燈,試試能否點亮燈。

Python的安裝

sudo apt-get install python

Bottle的安裝

pip install bottle(小博試過這行pip安裝命令,并未成功)經過搜索之后利用了下面這句命令得以安裝bottle成功 sudo apt-get install python-bottle 當然了,你也可以直接自己編譯安裝,但是在樹莓派上編譯太慢了,可以現在電腦上編譯完成后移植

先貼最終的python 源代碼:

#!/usr/bin/env python3 from bottle import get,post,run,request,template@get("/") def index():return template("index") @post("/cmd") def cmd():print("按下了按鈕: "+request.body.read().decode())return "OK" run(host="0.0.0.0")

沒錯,就10句,我一句一句解釋:

1.#!/usr/bin/env python3 ,告訴shell這個文件是Python源代碼,讓bash調用python3來解釋這段代碼

2.from bottle import get,post,run,request,template ,從bottle框架導入了我用到的方法、對象

下邊幾句是定義了2個路由,一個是“/”一個是“/cmd”,前者是get類型(用@get裝飾),后者是POST類型(用的@post裝飾)

第一個路由很簡單,就是讀取index模版(模版就是個html啦)并發送到客戶端(瀏覽器),因為路徑是“/”也就是比如樹莓派的IP地址是:192.168.0.10

那用http://192.168.0.10:8080就訪問到了我們的”/”路由(bottle默認端口是8080)

同理,第二個路由的路徑是“/cmd”也就是訪問http://192.168.0.10:8080/cmd就訪問到了第二個路由

最后一句:run(host=”0.0.0.0”)就是調用bottle的run方法,建立一個http服務器,讓我們能通過瀏覽器訪問我們的界面。

下邊我詳細的解釋一下這些代碼的作用:

第一個路由的作用就是扔給瀏覽器一個HTML(index.tpl)文檔,顯示這個界面:

下面這代碼可以新建一個.html文件,copy下面代碼,和python代碼放到同一路徑中即可

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>遙控樹莓派</title><link href="http://cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" media="screen"><script src="http://code.jquery.com/jquery.js"></script><style type="text/css">#up {margin-left: 55px;margin-bottom: 3px;}#down {margin-top: 3px;margin-left: 55px;}</style><script>$(function(){$("button").click(function(){$.post("/cmd",this.id,function(data,status){});});});</script> </head> <body> <div id="container" class="container"><div><button id="up" class="btn btn-lg btn-primary glyphicon glyphicon-circle-arrow-up"></button></div><div><button id='left' class="btn btn-lg btn-primary glyphicon glyphicon-circle-arrow-left"></button><button id='stop' class="btn btn-lg btn-primary glyphicon glyphicon-stop"></button><button id='right' class="btn btn-lg btn-primary glyphicon glyphicon-circle-arrow-right"></button></div><div><button id='down' class="btn btn-lg btn-primary glyphicon glyphicon-circle-arrow-down"></button></div></div><script src="//cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> </body> </html>

這個內容有點多,不過很簡單,就是引用了jquery bootstrap這兩個前端框架,加了5個按鈕(之間的代碼)。當然我用了bootstrap內置的上下左右停止這幾個圖標,這5個按鈕的id分辨定義成up,down,left,right,stop,然后寫了如下的關鍵代碼:

(function(){(“button”).click(function(){
$.post(“/cmd”,this.id,function(data,status){});
});
});

沒錯,就這三句代碼……

第1,2行給所有的按鈕(button)綁定了一個點擊的事件,第三行調用jquery的post方法把this.id(被單擊按鈕的id),發送到“/cmd”這個路徑下,這時,我們python代碼的第二個路由起作用了,接收到了網頁上被單擊按鈕的id,并打印出了“按下了按鈕: XXX”

當然,在這里寫幾個if語句判斷,就可以按照實際的需求做一些實際的控制了,嗯,比如調用wiringpi2 for python控制樹莓派的GPIO。微信點燈,微信給植物澆水啥的,不管了,由你們自己玩玩得爽就好。放上最終的界面吧。

總結

以上是生活随笔為你收集整理的树莓派搭WEB控制点灯(微信点灯,网页控制电机等)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。