2610浏览
楼主: 驴友花雕

[MP动手做] MicroPython动手做(23)——掌控板之WiFi与蓝牙

[复制链接]

驴友花雕  初级技神
 楼主|

发表于 2020-5-6 13:46:34

//MicroPython动手做(23)——掌控板之WiFi与蓝牙
//测试掌控板蓝牙功能


  1. //MicroPython动手做(23)——掌控板之WiFi与蓝牙
  2. //测试掌控板蓝牙功能
  3. #include <MPython.h>
  4. #include "BluetoothSerial.h"
  5. // 函数声明
  6. void onButtonAPressed();
  7. // 创建对象
  8. BluetoothSerial SerialBT;
  9. // 主程序开始
  10. void setup() {
  11.         Serial.begin(9600);
  12.         mPython.begin();
  13.         SerialBT.begin("mPython");
  14.         buttonA.setPressedCallback(onButtonAPressed);
  15. }
  16. void loop() {
  17.         if ((SerialBT.available())) {
  18.                 Serial.println((SerialBT.read()));
  19.         }
  20. }
  21. // 事件回调函数
  22. void onButtonAPressed() {
  23.         SerialBT.write(1);
  24. }
复制代码
回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2020-5-6 14:47:35

Mind+ 图形编程

14.jpg
回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2020-5-6 14:54:56

程序上传后,在手机上下载安装蓝牙串口助手,打开手机蓝牙搜索配对。

16 (1).jpg

17 (1).jpg
回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2020-5-6 14:59:05

打开下载好的蓝牙串口助手,在连接界面,选择我们已经配对好的“mPython”。

18 (1).jpg

19 (1).jpg
回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2020-5-6 15:02:59

接下来就可以试试数据收发功能了,在手机端发送123,打开mind+串口,收到49 50 51(ASCII码类型的123,通过工具设置发送数据格式)。

15.jpg
回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2020-5-6 15:06:08

然后我们按下掌控板A键,在手机端收到数据。

20.jpg

回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2020-5-6 17:03:32

10、网络同步时区数码管时钟

#MicroPython动手做(23)——掌控板之WiFi与蓝牙
#网络同步时区数码管时钟

  1. #MicroPython动手做(23)——掌控板之WiFi与蓝牙
  2. #网络同步时区数码管时钟
  3. from mpython import *
  4. import network
  5. my_wifi = wifi()
  6. my_wifi.connectWiFi('zh', 'zy1567')
  7. import ntptime
  8. import framebuf
  9. import font.digiface_44
  10. import time
  11. import font.digiface_21
  12. def display_font(_font, _str, _x, _y, _wrap, _z=0):
  13.     _start = _x
  14.     for _c in _str:
  15.         _d = _font.get_ch(_c)
  16.         if _wrap and _x > 128 - _d[2]: _x = _start; _y += _d[1]
  17.         if _c == '1' and _z > 0: oled.fill_rect(_x, _y, _d[2], _d[1], 0)
  18.         oled.blit(framebuf.FrameBuffer(bytearray(_d[0]), _d[2], _d[1],
  19.         framebuf.MONO_HLSB), (_x+int(_d[2]/_z)) if _c=='1' and _z>0 else _x, _y)
  20.         _x += _d[2]
  21. ntptime.settime(8, "time.windows.com")
  22. while True:
  23.     oled.fill(0)
  24.     display_font(font.digiface_44, (''.join([str(x) for x in [time.localtime()[3] // 10, time.localtime()[3] % 10, ':', time.localtime()[4] // 10, time.localtime()[4] % 10]])), 0, 0, False, 2)
  25.     display_font(font.digiface_21, (str(time.localtime()[5] // 10) + str(time.localtime()[5] % 10)), 103, 45, False, 2)
  26.     oled.show()
复制代码
回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2020-5-6 17:10:58

mPython 图形编程

21.jpg
回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2020-5-6 20:31:49

WeChat_20200506165950.gif
回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2020-5-8 20:36:48

11、通过音频模块播放网络歌曲

#MicroPython动手做(23)——掌控板之WiFi与蓝牙
#通过音频模块播放网络歌曲(掌控宝内置喇叭)

  1. #MicroPython动手做(23)——掌控板之WiFi与蓝牙
  2. #通过音频模块播放网络歌曲(掌控宝内置喇叭)
  3. from mpython import *
  4. import network
  5. import audio
  6. import time
  7. my_wifi = wifi()
  8. my_wifi.connectWiFi("zh", "zy1567")
  9. audio.player_init()
  10. audio.set_volume(70)
  11. audio.play("http://wiki.labplus.cn/images/4/4e/Music_test.mp3")
  12. while True:
  13.     oled.fill(0)
  14.     oled.DispChar("播放网络歌曲", 30, 16, 1)
  15.     oled.DispChar("春天在哪里", 35, 32, 1)
  16.     oled.show()
  17.     rgb[1] = (int(0), int(51), int(0))
  18.     rgb.write()
  19.     time.sleep_ms(1)
复制代码


播放网络音频
要播放网络上mp3音频文件,需要知道音频的URL地址。目前,大部分的音乐网受版权保护,并不直接提供音乐的URL,你可以通过一些插件爬取音频的URL地址。

注解
掌控板需要确保连接网络通畅。URL必须是完整的网络地址,否则无法解析。音频解码功能使用到 audio 模块的 audio.play(url) 函数, url 参数可以为音源的本地文件系统的路径或网络URL地址。

回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2020-5-8 20:43:06

mPython X 图形编程


10.jpg
回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2020-5-8 20:46:28

11.jpg
回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2020-5-9 11:41:21

11、心知天气本地版

心知天气
是国内最早创立的商业气象服务公司之一,自创立以来,心知一直在数据层面努力积累,相继与中国气象局气象信息中心、国家预警信息发布中心达成战略合作伙伴关系,成为国内官方气象机构的数据授权商。与此同时,心知还与国内外多家商业公司、高校与科研机构合作,不断夯实数据基础。

于2009年推出的国内首个气象数据API,是心知天气最广受好评的产品。其凭借丰富的天气数据内容,与扎实的IT服务基础,成为企业用户最好的选择。心知天气数据API目前已经为蚂蚁金服、中国平安、美的、戴森、蔚来汽车、声智科技、瑞幸咖啡等数百家国内外知名企业提供企业级高精度气象数据服务,累计提供服务超630亿次。

心知天气插件3.0采用了全新的技术架构,支持全站数据通过插件展示:除天气实况与预报外,还可选择展示分钟级实时天气预警、专业空气质量数据、能见度、气压、湿度、风和云量等。支持专业数据展示,不仅扩充了天气插件的应用场景,更能激发天气插件潜力,提高可玩性。

注册链接  https://www.seniverse.com/


24.jpg

回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2020-5-9 11:57:23

#MicroPython动手做(23)——掌控板之WiFi与蓝牙
#心知天气本地版

  1. #MicroPython动手做(23)——掌控板之WiFi与蓝牙
  2. #心知天气本地版
  3. from mpython import *
  4. import network
  5. import json
  6. import urequests
  7. my_wifi = wifi()
  8. my_wifi.connectWiFi("zh", "zy1567")
  9. def get_seni_weather(_url, _location):
  10.     _url = _url + "&location=" + _location.replace(" ", "%20")
  11.     response = urequests.get(_url)
  12.     json = response.json()
  13.     response.close()
  14.     return json
  15. w1 = get_seni_weather("https://api.seniverse.com/v3/weather/daily.json?key=SMhSshUxuTL0GLVLS", "ip")
  16. w2 = get_seni_weather("https://api.seniverse.com/v3/life/suggestion.json?key=SMhSshUxuTL0GLVLS", "ip")
  17. oled.fill(0)
  18. oled.DispChar((''.join([str(x) for x in [w1["results"][0]["location"]["name"], "   ", w1["results"][0]["daily"][0]["text_day"], "   ", w1["results"][0]["daily"][0]["low"], "  - ", w1["results"][0]["daily"][0]["high"], " 度"]])), 0, 0, 1)
  19. oled.DispChar((str("穿衣指数 : ") + str(w2["results"][0]["suggestion"]["dressing"]["brief"])), 0, 16, 1)
  20. oled.DispChar((str("运动指数 : ") + str(w2["results"][0]["suggestion"]["sport"]["brief"])), 0, 32, 1)
  21. oled.DispChar((str("紫外线指数 : ") + str(w2["results"][0]["suggestion"]["uv"]["brief"])), 0, 48, 1)
  22. oled.show()
复制代码

回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2020-5-9 12:03:50

mPython X 图形编程

25.jpg
回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2020-5-9 12:08:52

26.jpg
回复

使用道具 举报

12
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2022 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail