在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 7417|回复: 2

[转贴] 基于flask通过web浏览器控制树莓派raspberry的GPIO

[复制链接]
发表于 2017-9-17 17:41:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x

  之前介绍了在树莓派上使用flask web 开发框架,这个框架是基于python的,而树莓派可以很容易的通过python来操作gpio,所有顺其自然的想到通过web来控制树莓派的gpio,可以通过浏览器访问web页面,直接操作raspberry的gpio底层,或者也可以通过手机app发送post或者get等请求,来控制树莓派的gpio,这样岂不是很妙!


个人原创,版权所有,转载请注明出处,并保留原文链接:

http://www.embbnux.com/2014/10/07/user_flask_to_control_raspberry_gpio_on_web/

   一 首先是树莓派上flask和gpio python环境的搭建

这部分在之前的博客都介绍过了,这里就不再介绍了,详见下面两篇博文:

树莓派raspberry使用python实现GPIO输入输出-按键LED

在树莓派Raspberry上使用flask进行python web开发

  二 处理web请求

使用flask进行web开发很方便,这里使用post来处理gpio操作请求:


[python] view plain copy



  • @app.route('/gpio/<int:id>',methods=['POST'])  
  • def gpio_led(id):  
  •    if request.method == 'POST':  
  •      GPIO.setmode(GPIO.BOARD)  
  •      if id<100:  
  •        GPIO.setup(id,GPIO.OUT)  
  •        GPIO.setmode(GPIO.BOARD)  
  •        GPIO.setup(id,GPIO.OUT)  
  •        GPIO.output(id,False)  
  •     else:  
  •        GPIO.setup(id-100,GPIO.OUT)  
  •        GPIO.output(id-100,True)  
  • return redirect(url_for('show_index'))  



三 网页控制按钮

有了web请求处理,还需要写一个view用来显示操作按钮给用户:


[html] view plain copy



  • <form
    action="/gpio/11"
    method=post>
  • <input
    type=submit
    value="led on"
    />
  • </form>
  • <form
    action="/gpio/111"
    method=post>
  • <input
    type=submit
    value="led off"/>
  • </form>



四 运行web程序

web工程代码我已经上传到github上了,需要的同学可以clone下来,运行测试

[python] view plain copy



  • git clone git@github.com:embbnux/RpiCloudManager.git  
  • cd RpiCloudManager  
  • sudo python runserver.py  




通过浏览器访问http://your_raspberry_ip:2000就可以了,效果见下图:

2.jpg


3.jpg

发表于 2017-9-23 12:04:18 | 显示全部楼层
谢谢楼主
发表于 2018-1-8 16:48:09 | 显示全部楼层
Interesting
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-25 03:34 , Processed in 0.018851 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表