进阶示例

导航中心
快速开始 开发示例 案例分析 客户端下载 API文档 传感云SDK 使用条款 常见问题

进阶示例:通过WSNCloud云平台远程控制树莓派的LED

通过WSNCloud云平台远程控制树莓派的LED (Pathon模式)
树莓派的IO定义



1 Python GPIO包安装    【安装过程】
        【1】先安装python-dev,输入以下指令。
sudo apt-get install python-dev
        【2】安装RPi.GPIO,依次输入以下指令。特别说明,由于RPi.GPIO仍处于不断完善的过程中,请参考前言中的链接下载最新的安装代码。
# 下载
$ wget http://raspberry-gpio-python.goo ... .GPIO-0.5.3a.tar.gz# 解压缩
$ tar xvzf RPi.GPIO-0.5.3a.tar.gz
# 进入解压之后的目录
$ cd RPi.GPIO-0.5.3a
# 启动安装
$ sudo python setup.py install


    【示例代码】
    新建一个名为led.py的文件,该文件具体内容如下:
[python] view plaincopy

# -*- coding: utf-8 -*-  

  • import RPi.GPIO as GPIO  
  • import time  
  • # BOARD编号方式,基于插座引脚编号  
  • GPIO.setmode(GPIO.BOARD)  
  • # 输出模式  
  • GPIO.setup(11, GPIO.OUT)  
  •   
  • while True:  
  •     GPIO.output(11, GPIO.HIGH)  
  •     time.sleep(1)  
  •     GPIO.output(11, GPIO.LOW)  
  •     time.sleep(1)  

    【运行】   

    如果在windows上编写代码,请使用FTP软件下载到树莓派中,使用SSH客户端登陆树莓派,cd命令进入文件所在目录,然后输入指令

    sudo python led.py

    好吧,扩展板上的LED等开始闪烁了。最后使用Ctrl+C结束Python程序。
    【简单说明】

    【1】GPIO.setmode(GPIO.BOARD),采用插座引脚编号方式。    【2】由于采用插座引脚编号方式,此处的11脚相当于BCM2835寄存器编号方式的引脚11。




sudo apt-get install python-pip
sudo pip install requests
采用wsncloud的API接口
查看最新数据点  http://api.wsncloud.com/data/v1/show



对应按钮面板


运行结果:



code:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import  requests
import RPi.GPIO as GPIO
import time

# Board number method
GPIO.setmode(GPIO.BOARD)
# Output mode
GPIO.setup(11, GPIO.OUT)

#device URI
apiurl = 'http://api.wsncloud.com/data/v1/show'
apiheaders = {'ak': '88f73c88d46a2b7ef9b4080bf8d4b204', 'sensorId': '540effede4b06f9b6f4c5f6a'}

while True:
        #send request
        r = requests.get(apiurl, params=apiheaders)

        #print context
        print(r.text)

        #Response convert to dictory format
        led = r.json()

        print(led['value'])

        # {'value':'xx'}
        if led['value'] == 1:
                print("led on")
                GPIO.output(11, GPIO.HIGH)        
        else:
                print("led off")
                GPIO.output(11, GPIO.LOW)


        #delay 5S
        time.sleep(5)


代码下载:

wsncloudLedControl.zip