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

来源:互联网 发布:打造世界怎么修改数据 编辑:程序博客网 时间:2024/05/17 04:36

生活中,很多时候我们为了完成一件事,而又不得不去完成相关的其他事,进而步入无穷无尽的坑,学习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-8

 

import RPi.GPIO

import time

from flask import Flask

from flask_cors import CORS, cross_origin

app = Flask(__name__)

CORS(app)

# 对硬件的操作参考:http://blog.mangolovecarrot.net/2015/04/20/raspi-study01/ ,感谢 mango同学

# 指定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 Pythonpython程序,然后运行一下

root@Widora:/# python  HelloNetRouter.py 

Hello NetRouter In Python

 

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

root@Widora:/# cat HelloNetRouter.py

print("Hello NetRouter In Python")

原创粉丝点击