乐智雄吧 关注:2贴子:63
  • 6回复贴,共1

Python写树莓派实现的实时网速测试小灯

取消只看楼主收藏回复

在树莓派上运行Python调用ping命令,获得访问延时,再用正则表达式提取信息进行判断,最后GPIO输出信号控制小灯


IP属地:浙江1楼2016-07-01 17:13回复



    IP属地:浙江来自Android客户端2楼2016-07-01 17:17
    回复
      import subprocess
      import os
      import time
      import re
      import RPi.GPIO as GPIO
      GPIO.setmode(GPIO.BOARD)
      GPIO.setup(11, GPIO.OUT)
      GPIO.setup(13, GPIO.OUT)
      GPIO.setup(15, GPIO.OUT)
      GPIO.setup(16, GPIO.OUT)
      GPIO.setup(18, GPIO.OUT)
      while True:
      ping = subprocess.Popen('ping -c 1 http://www.sustc.edu.cn', shell=True, stdout=subprocess.PIPE)
      info = ping.communicate()[0]
      f = file("info.txt", "w")
      f.writelines(info)
      f.close()
      f = open('info.txt', 'r')
      html = f.read()
      f.close()
      t = re.findall('time=(.*?) ms', html, re.S)
      print t
      if t[0] < '15.0':
      GPIO.output(11, True)
      GPIO.output(13, True)
      GPIO.output(15, True)
      GPIO.output(16, True)
      GPIO.output(18, True)
      print 'ping < 15ms speed level: 5'
      elif t[0] < '20.0':
      GPIO.output(11, True)
      GPIO.output(13, True)
      GPIO.output(15, True)
      GPIO.output(16, True)
      print 'ping < 20ms speed level: 4'
      elif t[0] < '20.0':
      GPIO.output(11, True)
      GPIO.output(13, True)
      GPIO.output(15, True)
      print 'ping < 50ms speed level: 3'
      elif t[0] < '50.0':
      GPIO.output(11, True)
      GPIO.output(13, True)
      print 'ping < 50ms speed level: 2'
      else:
      print 'ping > 50ms speed level: 1'
      GPIO.output(11, True)
      time.sleep(1)
      GPIO.output(11, False)
      GPIO.output(13, False)
      GPIO.output(15, False)
      GPIO.output(16, False)
      GPIO.output(18, False)


      IP属地:浙江3楼2016-07-01 17:18
      回复
        想要的功能都实现啦,哈哈哈,开心,现在再加一个树莓派开机启动py脚本就完美啦,不知道现场演示可不可以成功。其实真正做内容没花多久,时间都花在解决问题上了,一不留神就溜出来一个问题,一种方案还不一定能行,要换方法多试几次,再结合自己的想法差不多才搞定


        IP属地:浙江4楼2016-07-01 17:23
        回复
          开机启动脚本
          保存脚本为/etc/init.d/ledblink文件
          复制的时候直接拖拽提示permission deny
          于是尝试用命令复制并加sudo成功


          IP属地:浙江5楼2016-07-01 18:01
          回复
            3、 设置python脚本开机启动
            sudo chmod +x /etc/init.d/ledblink
            这样启动改脚本用service 命令就可以
            sudo service ledblink start#启动sudo service ledblink stop#停止
            最后设置开机启动就好了
            sudo update-rc.d ledblink defaults
            这样就完工了,重启树莓派就会发现led自己闪烁了,停止用


            IP属地:浙江6楼2016-07-01 18:01
            回复
              设置python脚本开机启动
              sudo chmod +x /etc/init.d/ledblink
              直接cannot access 啊,找不到文件。。。真无语了


              IP属地:浙江7楼2016-07-01 18:13
              收起回复