步骤1 作品背景
对于60年代70年代的人来说:收音机应该再熟悉不过了吧。它陪伴了那一代人度过了一段美好的时光,承载着温馨的回忆。但是随着科技的发展,我们开始有了电视、DVD、MP3、智能手机,我们获取音乐的方式不在只有收音机了。收音机也就淡出了我们的视线。这次ReMake活动真好是一个契机,那就让我们来一起ReMake一个microbit物联网收音机吧!
步骤2 制作步骤
1、用fusion360设计出收音机外形。
2.用3D打印机打印出模型
3、准备好收音机所需的材料
4、硬件连接
5、开始组装
步骤3 手机app界面设计
①先打开App Inventor WxBit 汉化增强版,对我们的手机界面进行设计
对页面上的组件进行逻辑设计,主要用到了组件面板中通信连接下MQTT客户端组件来实现连接到EasyIOT物联网平台。进而实现消息的发送。
步骤4 程序设计
代码
#include "RDA5807M.h"
#include <Microbit_Obloq.h>
#include <SoftwareSerial.h>
#include <Microbit_Matrix.h>
#include <DFRobot_NeoPixel.h>
// 动态变量
String mind_s_msg;
// 函数声明
void obloqMqttEventT0(String& message);
void buttonACallback();
void buttonBCallback();
// 静态常量
const String topics[5] = {"Dyn-AiKMg","","","",""};
const MsgHandleCb msgHandles[5] = {obloqMqttEventT0,NULL,NULL,NULL,NULL};
// 创建对象
Microbit_Obloq olq;
SoftwareSerial softSerial(0, 1);
DFRobot_NeoPixel neoPixel_2;
RDA5807M radio;
// 主程序开始
void setup() {
olq.registerMqttHandle(msgHandles);
dfrobotRandomSeed();
radio.begin(RDA5807M_BAND_WEST);
onEvent(ID_BUTTON_A, PRESS, buttonACallback);
onEvent(ID_BUTTON_B, PRESS, buttonBCallback);
softSerial.begin(9600);
olq.startConnect(&softSerial, "Erised", "yiruosi88", "uqtPhtNGg", "XqtE2tNMRz", topics, "iot.dfrobot.com.cn", 1883);
neoPixel_2.begin(2, 8);
neoPixel_2.setBrightness(255);
neoPixel_2.showRainbow(0, 7, 1, 360);
}
void loop() {
}
// 事件回调函数
void obloqMqttEventT0(String& message) {
mind_s_msg = message;
if ((mind_s_msg=="1")) {
neoPixel_2.showRainbow(0, 7, 1, (random(200, 360+1)));
radio.seekUp(1);
MMatrix.print(radio.getFrequency());
}
else if ((mind_s_msg=="2")) {
neoPixel_2.showRainbow(0, 7, 1, (random(200, 360+1)));
radio.seekDown(1);
MMatrix.print(radio.getFrequency());
}
else if ((mind_s_msg=="3")) {
radio.volumeUp();
}
else if ((mind_s_msg=="4")) {
radio.volumeDown();
}
else {
radio.setFrequency((String(message).toInt()) );
MMatrix.print(radio.getFrequency());
}
}
void buttonACallback() {
neoPixel_2.showRainbow(0, 7, 1, (random(200, 360+1)));
radio.seekUp(1);
MMatrix.print(radio.getFrequency());
}
void buttonBCallback() {
neoPixel_2.showRainbow(0, 7, 1, (random(200, 360+1)));
radio.seekDown(1);
MMatrix.print(radio.getFrequency());
}
步骤5 视频演示
HF-CGH2021.08.21
有意思呀
WSY2021.03.16
这个好玩!