树莓派利用Blinker实现手机端远程控制开关灯

今天周一,首先波波希望看这篇文章的朋友上班有个好心情。其次作为物联网项目的尝试,波波一直在努力自学Python,而这篇文章也是波波第一次使用Python的处女作。
废话不多说,我们上手之前首先需要准备好实验材料。本项目用到的实验材料如下:

1、树莓派开发板一个:(本例采用3b+)
2、Led灯珠一个
3、连接导线两根。本例采用杜邦线。若有条件的同学可以在连接过程中给LED灯珠加一个1k的电阻。

操作步骤:
1、在树莓派上安装Blinker类库。

`git clone https://github.com/blinker-iot/blinker-py`  
`cd blinker-py`  
`sudo python3 setup.py install`  
`sudo pip3 install -r requirements.txt`

2、获取通信密钥Secret Key

下载Blinker手机APP客户端,添加设备后会自动生成一个Secret Key。

3、连接LED到树莓派。

将LED灯的正极连接树莓派37号端口(GPIO),将负极连接39号接口(GPIO,这个是GND)

4、写入LED灯控制程序。

1.  from Blinker import Blinker,BlinkerButton
2.  from Blinker.BlinkerDebug import \*
3.  import RPi.GPIO as GPIO

5.  auth = ""  #你申请的secret key
6.  BLINKER\_DEBUG.debugAll()

8.  Blinker.mode("BLINKER\_WIFI")   #这是连接模式设置,可以选择蓝牙具体参考官方文档
9.  Blinker.begin(auth)

11.  button = BlinkerButton("btn-light")   #按钮的组件名称,根据你自己在APP上定义的填写
12.  GPIO.setmode(GPIO.BOARD)  #参考gpio编程手册,用板载序号方便编程,也可以用BCM编码
13.  GPIO.setwarnings(False)
14.  GPIO.setup(37,GPIO.OUT,initial=GPIO.LOW)

16.  light1 = 0  #定义一个全局变量,后边用到!!!

18.  def button\_callback(state):
19.      global light1
20.      BLINKER\_LOG('Button state:',state)
21.      #light1 = GPIO.output(37, not GPIO.input(37) )
22.     if light1 == 1:
23.          GPIO.output(37,0)
24.          light1 = 0
25.      else:
26.          GPIO.output(37,1)
27.          light1 = 1
28.    button.print(state)

30.  def data\_callback(data):
31.      BLINKER\_LOG("Blinker readString: ",data);

33.  button.attach(button\_callback)
34.  Blinker.attach(data\_callback)

36.  if \_\_name\_\_ == '\_\_main\_\_':
37.      while True:
38.          Blinker.run()

5、大功告成!
将上述程序保存后运行,我们就可以通过在手机端BlinkerAPP中,通过点击按钮远程控制LED灯的开关了。

这个例程比较简单,适合新手朋友直接上手操作,有对物联网感兴趣的朋友也可以关注波波的个人博客菠菜园哦~~

你可能感兴趣的:(raspberry-pi,物联网,python,blinker)