5342| 1
|
[入门教程] 物联网------2019声控音乐灯笼 |
本帖最后由 rzegkly 于 2019-1-12 22:49 编辑 一阳初夏中大吕,谷粟为粥和豆煮。 应时献佛矢心虔,默祝金光济众普。 盈几馨香细细浮,堆盘果蔬纷纷聚。 共尝佳品达沙门,沙门色相传莲炬。 童稚饱腹庆州平,还向街头击腊鼓。 腊八节,俗称“腊八” ,冬至后第三个戌日,即农历十二月初八,古人有祭祀祖先和神灵的祭祀仪式,祈求丰收和吉祥。明天就是腊八节了,读了裘炯涛老师的文章,我被深深的吸引了,于是制作一个《2019声控音乐灯笼》作品分享给大家! 一、工作原理: 1. 通过手机Blynk App,创建组件; 2. 在Blynk物联网服务器平台注册个人用户; 3. Mixly For IoT图形化物联网编程软件编写代码; 4. Blynk物联网开发平台与掌控板实现数据通信; 二、作品思路 1、通过手机Blynk App发出“红灯笼”,掌控板点亮灯带,播放《Happy New Year》; 2、通过手机Blynk App发出“绿灯笼”,掌控板点亮灯带,播放《Wedding》; 3、通过手机Blynk App发出“蓝灯笼”,掌控板点亮灯带,播放《Birthday》; 三、代码编写 [mw_shl_code=python,true]import network,BlynkLib,time,music from mpython import * import machine, neopixel p8 = machine.Pin(26) p13 = machine.Pin(18) p14 = machine.Pin(19) p15 = machine.Pin(21) p16 = machine.Pin(5) mylist = ['c4:2','c','c4:4','g5:4', 'e4:2','e','e4:4','c', 'c4:2','e','g4:4','g', 'f4:2','e','d4:8','d4:2','e4', 'f4:4','f','e4:2','d','e4:4','c','c4:2','e','g4:4','g5:4','b5:2','d4:2','c4:8'] oled.fill(0) oled.DispChar('2019声控音乐灯笼', 16, 16) oled.show() wlan = network.WLAN(network.STA_IF) wlan.active(True) if not wlan.isconnected(): print('connecting to network...') wlan.connect('XXXXXXX', 'XXXXXXX') #wifi信息 while not wlan.isconnected(): pass print('network config:', wlan.ifconfig())#输出wifi连接信息 BLYNK_AUTH = 'XXXXXXX29'#Blynk授权码 blynk = BlynkLib.Blynk(BLYNK_AUTH)# 初始化Blynk连接 @blynk.VIRTUAL_WRITE(0) def v0_write_handler(value):#从Blnyk的V0管脚获取文本 if value[0]=="红灯笼。": np = neopixel.NeoPixel(p15, n=180, bpp=3, timing = 1) # 输出引脚 n LED灯的个数 bpp:3:默认为3元组RGB timing:默认等于0,为400KHz速率;等于1,为800KHz速率 np.fill((255, 0,0)) # 填充所有LED像素 r g b 取值0-255 np.write() display.fill(0) music.play(mylist) elif value[0]=="绿灯笼。": np = neopixel.NeoPixel(p15, n=180, bpp=3, timing = 1) # 输出引脚 n LED灯的个数 bpp:3:默认为3元组RGB timing:默认等于0,为400KHz速率;等于1,为800KHz速率 np.fill((0,255, 0)) # 填充所有LED像素 r g b 取值0-255 np.write() music.play(music.WEDDING) elif value[0]=="蓝灯笼。": np = neopixel.NeoPixel(p15, n=180, bpp=3, timing = 1) # 输出引脚 n LED灯的个数 bpp:3:默认为3元组RGB timing:默认等于0,为400KHz速率;等于1,为800KHz速率 np.fill((0, 0, 180)) # 填充所有LED像素 r g b 取值0-255 np.write() music.play(music.BIRTHDAY) elif value[0]=="关灯。": np = neopixel.NeoPixel(p15, n=180, bpp=3, timing = 1) # 输出引脚 n LED灯的个数 bpp:3:默认为3元组RGB timing:默认等于0,为400KHz速率;等于1,为800KHz速率 np.fill((0, 0, 0)) # 填充所有LED像素 r g b 取值0-255 np.write() while True: blynk.run()#一直运行blynk pass [/mw_shl_code] 四、知识拓展 1、授权码(Auth Token) 授权码是手机连接硬件需要用到的一个唯一的认证码。每一个新创建的项目都会自动生成一个授权码,该授权码会自动发送到你的邮箱,当然也可以在手机端的项目设置页面中复制授权码。 2、Blynk Blynk是iot应用物联网开发平台,支持的硬件平台多,代码部署简单,而且函数调用接口也是统一的,硬件端只需要设置认证字符串,然后Blynk.begin和Blynk.run就可以运行了,用户不需要关心通信协议问题,上手容易。 3、搭建环境 请参考裘炯涛老师教程 https://mc.dfrobot.com.cn/forum.p ... 3946&fromuid=820560五、视频回放 |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed