树莓派搭WEB控制点灯(微信点灯,网页控制电机等)
感興趣的可加群193369905,博主利用這個思想做的水下機器人社區 https://runsglobel.com
用到的知識:Python Bottle HTML Javascript JQuery Bootstrap AJAX 當然還有 linux
硬件:樹莓派
軟件:python 、Bottle
接下來我們一個個安裝一下吧:
1、樹莓派系統的安裝(跳過)
2、Python的安裝(樹莓派里只要一行命令,大部分情況默認已經安裝)
3、如果要用串口wiringpi啥的還需要安裝(提一下吧)
wiringpi安裝
第一步:安裝github工具,在官網最新的Raspbian中,已經默認給安裝了。安裝命令如下:
第二步:安裝 git 工具后,就可以使用如下的命令來獲取 wiringPi 了:
git clone git://git.drogon.net/wiringPi第三步:編譯和安裝wiringPi,命令如下:
cd wiringPi./bulid第四步:查看wiringPi是否安裝成功,命令行如下:
gpio –v終端會顯示庫版本,編寫作者等,再敲打一行命令,獲取wiringPi與樹莓派接口之間的對應關系,命令行如下:
gpio readall終端顯示如下:會顯示名字,模式,對應的物理接口
至此安裝結束。自己可以找一塊小程序點個燈,試試能否點亮燈。
Python的安裝
sudo apt-get install pythonBottle的安裝
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代碼放到同一路徑中即可
這個內容有點多,不過很簡單,就是引用了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控制点灯(微信点灯,网页控制电机等)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于JFrame实现同学录管理系统,课程
- 下一篇: XFTP无法传输_xftp软件,比xft