NetRouter应用教程之Python初接触--基于Widora&Openwrt


生活中,很多时候我们为了完成一件事,而又不得不去完成相关的其他事,进而步入无穷无尽的坑,学习python也是如此。

Part1:

为了学python,正常步骤是搭建环境,安装系统,还要考虑python版本,好不容易找到一个可以用的例子,复制上去,中文问题,格式问题,各种各样问题让你望而却步。
所以我们有一个大胆想法,用openwrt嵌入式开发板做学习开发板,直接在板子上搭建环境,烧写后可以直接测试代码~~~直奔主题。

Part2:

为啥学习python,先上一个开源的python,简单代码,实现复杂功能:
"""""
来自https://github.com/wwj718/raspberrypi_api/blob/master/led_server.py 例子
"""""""""

#!/usr/bin/env python# encoding: utf-8import RPi.GPIO
import time
from flask import Flask
from flask_cors import CORS, cross_origin
app = Flask(__name__)
CORS(app)
### 指定GPIO口的选定模式为GPIO引脚编号模式(而非主板编号模式)
RPi.GPIO.setmode(RPi.GPIO.BCM)

### 指定GPIO14(就是LED长针连接的GPIO针脚)的模式为输出模式
### 如果上面GPIO口的选定模式指定为主板模式的话,这里就应该指定8号而不是14号。
RPi.GPIO.setup(14, RPi.GPIO.OUT)
### 循环10次
@app.route('/led_up')
def led_up():
    RPi.GPIO.output(14, True)
    return 'ok'

@app.route('/led_down')
def led_down():
    RPi.GPIO.output(14, False)
    return 'ok'
### 闪啊闪
@app.route('/led_up_down')
def led_up_down():
  for i in range(0, 5):
    # 让GPIO14输出高电平(LED灯亮)
    RPi.GPIO.output(14, True)
    # 持续一段时间
    time.sleep(0.5)
    # 让GPIO14输出低电平(LED灯灭)

@app.route('/led_up_down')
def led_up_down():
    for i in range(0, 5):
        # 让GPIO14输出高电平(LED灯亮)
        RPi.GPIO.output(14, True)
        # 持续一段时间
        time.sleep(0.5)
        # 让GPIO14输出低电平(LED灯灭)
        RPi.GPIO.output(14, False)
        # 持续一段时间
        time.sleep(0.5)
    return 'ok'
### 最后清理GPIO口(不做也可以,建议每次程序结束时清理一下,好习惯)
#RPi.GPIO.cleanup()
if __name__ == '__main__':
app.run(host='0.0.0.0',port='5000')

虽然代码有注释,但是看完还是一脸懵逼。其实这段代码实现了一个web服务,可以这样控制树莓派io口
点亮红灯: curl 192.168.0.106/led_up
熄灭红灯: curl 192.168.0.106/led_down
闪啊闪 : curl 192.168.0.106/led_up_down

Part3:

为啥是python

一直以来印象:

  • Python类似shell脚本

  • Python可以写个http服务

  • Python可以很简单发送http请求

  • Python是万能的像他

  • Python两句话就能解决c++要捣腾很久的事情。

也许是对C++膜拜,一直在回避,从来没去正式了解,但是。。。 。。。
为了能看懂开源工程,为了驶入开源这条大道上,只能伪装成Python好手

那要怎么开始呢,首先

1.要懂点shell脚本
2.要懂点c++。对类有点感觉
3.懂点网络编程或是你要使用到的应用场景,比如语音,你总得知道语音要处理些啥。

如果我都没有呢,别怕,看看这个教程好吧。老司机开始开车,请滴卡,让我们用“使用思维“”来套用到学习python上

1.怎么执行一个python程序:
和shell脚本一样,不过要带上python  NetRouter.py
我们先写一个打印 “Hello NetRouter In Python”python程序,然后运行一下

root@Widora:/# python  HelloNetRouter.py Hello NetRouter In Python

查看具体代码,只有一个输出函数调用。。。

root@Widora:/# cat HelloNetRouter.pyprint("Hello NetRouter In Python")

未完待续~~!

0_1497963596909_firmware_20170608_python.zip
pps 系统运行后,将附件上传到widora 的tmp,使用dd命令将镜像烧写到mtdblock3即可


本文章由作者:佐须之男 整理编辑,原文地址: NetRouter应用教程之Python初接触--基于Widora&Openwrt
本站的文章和资源来自互联网或者站长的原创,按照 CC BY -NC -SA 3.0 CN协议发布和共享,转载或引用本站文章应遵循相同协议。如果有侵犯版权的资 源请尽快联系站长,我们会在24h内删除有争议的资源。欢迎大家多多交流,期待共同学习进步。

相关推荐