资料介绍
成分
PCBWay定制PCB
|
× 2 |
阿杜诺
|
× 1 |
MFRC522 RFID阅读器
|
× 1 |
SH1106 OLED 显示屏 (128x64)
|
× 1 |
5mm 绿色 LED
|
× 1 |
|
× 2 |
按钮 (6x6)
|
× 4 |
Creality CR-6 SE 3D 打印机
|
× 1 |
电源插座
|
× 1 |
外接电池
|
× 1 |
跳线
|
× 1 |
描述
带 Qubitro 的物联网书签和阅读(图书评级)跟踪器
在阅读书籍或漫画时,我喜欢每天记录我的收视率,以跟踪我对每一章的兴趣的激增或下降。此外,我可以在阅读完书籍后仔细检查我的评分和笔记,从而轻松地复习书籍。
由于我总是将我的评分记录在笔记本或一张纸上,因此我的家庭图书馆被不请自来的纸堆淹没了。因此,我决定创建这个物联网设备来记录和监控我的图书评分,从而避免手写的需要。
在仔细阅读书评和分类方法后,我决定使用这个设备来评价和记录六种不同的书籍特征,这些特征表示一本书的质量和可靠性:
- 阴谋
- 划定
- 浸没
- 罗唆
- 人物
- 编辑
对于上述每个特征,我定义了四个不同的评分点,以使用收集的数据创建一个简洁且连贯的评分系统:
- 1 ? 世俗的
- 2 ? 有趣的
- 3 ? 迷人
- 4 ? 迷人的
在定义我的评级系统后,我决定使用 RFID 磁盘标签来识别书籍,而不是使用条形码扫描仪扫描条形码 (ISBN),因为我想为每本书设计带有 RFID 磁盘标签的独特书签。因此,我将 MFRC522 RFID 阅读器连接到 Arduino Nano 33 IoT 以检测 UID。
为了显示评级设置菜单,我将 SH1106 OLED 屏幕连接到 Nano 33 IoT。然后,我创建了一个简单的控制器,用操纵杆和按钮调整每个特性的评级。
我没有从头开始开发 Web 应用程序来记录和监控 Nano 33 IoT 传输的上述图书评级,而是决定利用 Qubitro 门户构建一个 IoT 应用程序。由于 Qubitro 支持与不同开发板的各种连接方法,并提供易于理解的界面来可视化接收到的云端数据包,因此我在为这个项目构建 IoT 应用程序时没有遇到任何问题。
在完成面包板上的接线并测试将数据包传输到 Qubitro 应用程序的代码后,我为这个项目设计了蝙蝠侠主题的底座和控制器 PCB。最近在看《蝙蝠侠:动画系列》的时候,在蝙蝠洞里看到了一个以蝙蝠为主题的图书馆。由于蝙蝠侠是我最喜欢的漫画人物,我认为将这个设备设计成蝙蝠洞图书馆的一部分会很有趣。
最后,我还设计了一个以蝙蝠侠为灵感的补充书架(可 3D 打印),以插入底座和控制器 PCB,以创建一个坚固而时尚的设备,光荣地强调蝙蝠侠主题 :)
第 1 步:设计和焊接蝙蝠侠主题的底座和控制器 PCB
在对我的蝙蝠侠主题底座和控制器 PCB 设计进行原型设计之前,我使用 Arduino Nano 33 IoT 和 MFRC522 RFID 阅读器测试了所有连接和接线。
然后,我利用 KiCad 设计了蝙蝠侠主题的底座和控制器 PCB - 灵感来自黑暗骑士的传说 :) 我附上了下面两个 PCB 的 Gerber 文件。因此,如果您愿意,您可以从 PCBWay 订购我的 PCB 设计,以创建您的支持 RFID 的物联网书签和阅读跟踪器,从而轻松地将您的图书评级传输到 Qubitro 应用程序。
首先,通过使用烙铁,我将接头(母头)、COM-09032 模拟操纵杆、按钮(6x6)、5 毫米绿色 LED 和电源插孔连接到底座和控制器 PCB。
?? 基板PCB上的元件清单:
A1(Arduino Nano 33 IoT 接头)
RFID1(MFRC522 RFID 阅读器的接头)
SH1106(SH1106 OLED 显示器接头)
J1(控制器 PCB 接头)
D1 (5mm 绿色 LED)
J2(电源插孔)
?? 控制器 PCB 上的组件列表:
J1(基板 PCB 接头)
U1、U2(COM-09032 模拟操纵杆)
K1、K2、K3、K4(6x6 按钮)
步骤 1.1:进行连接和调整
完成焊接后,我通过接头将所有剩余组件连接到蝙蝠侠主题的底座和控制器 PCB - Arduino Nano 33 IoT、MFRC522 RFID 阅读器和 SH1106 OLED 屏幕。
然后,我使用公跳线将基础 PCB 连接到控制器 PCB。
第 2 步:设计和打印受蝙蝠侠启发的书架
由于我想应用蝙蝠主题来创建一个设备,就好像它是动画系列中蝙蝠洞的一部分一样,我决定设计一个补充书架来展示我目前在我的家庭图书馆阅读的书籍。为了毫不费力地将蝙蝠侠主题的底座和控制器 PCB 插入并连接到书架上,我添加了插槽和挂钩。另外,我在书架上刻了突出的蝙蝠符号,以光彩地强调蝙蝠侠主题:)
我在 Autodesk Fusion 360 中设计了书架。您可以在下面下载它的 STL 文件。
然后,我在 Ultimaker Cura 中对我的书架 3D 模型(STL 文件)进行了切片。
由于我想为书架创建一个坚固的结构并补充蝙蝠侠主题,我使用了这种 PLA 灯丝:
- 黑色的
最后,我用我的 Creality CR-6 SE 3D 打印机打印了书架(模型)。虽然我是 3D 打印的新手,而且它是我的第一台 FDM 3D 打印机,但我使用 CR-6 SE 毫不费力地获得了令人难以置信的结果 :)
步骤 2.1:组装书架并创建 RFID 书签
打印我的书架 3D 模型后,我将蝙蝠侠主题的底座和控制器 PCB 固定在书架上。我通过前面的挂钩放置了控制器 PCB。然后,我通过热胶枪将基础 PCB 固定在其顶部的插槽中,并使用电缆扎带进行牢固稳定的连接。
由于我决定使用 RFID 磁盘标签来创建独特的书签以识别书籍,因此我将磁盘标签固定在我从家乡的漫画书展上购买的限量版漫画书签上。
第 3 步:在 Qubitro 上设置 IoT 应用程序
为了记录和监控 Nano 33 IoT 传输的图书评分,我决定利用 Qubitro 门户构建一个 IoT 应用程序。Qubitro 提供对开发人员友好的功能并支持各种连接方法,例如功能齐全的 MQTT 代理和 The Things Stack 设备。由于 Qubitro 具有易于理解的 在线示例和技术指南 ,并允许用户使用专门的小部件轻松地在云上可视化接收到的数据包,我强烈建议使用 Qubitro 构建物联网应用程序。
#?? 首先,转到 Qubitro 门户 并登录。
#?? 然后,创建一个新项目(IoT 应用程序)并定义其名称和描述。
#?? 要在应用程序下创建新的 Qubitro 设备,请根据您的项目要求选择连接方法。选择 MQTT 选项以通过 Qubitro MQTT 代理将数据传输到给定的 Qubitro 设备。
#?? 定义设备信息和详细信息。
如果需要,您还可以使用应用程序的 MQTT 凭据通过 Qubitro API 发布数据。
#?? 成功创建 Qubitro 设备后,在项目仪表板上打开该设备,然后单击设置。
#?? 然后,复制设备 ID 和令牌以通过 MQTT 代理将数据包从 Nano 33 IoT 传输到 Qubitro 设备。
步骤 3.1:分析在 Qubitro 上收集的数据
在 Qubitro 上构建我的 IoT 应用程序后,我立即开始通过 MQTT 代理从 Nano 33 IoT 向应用程序下的 Qubitro 设备发送数据包(书籍评分)。
为了分析收集到的数据,我利用了设备界面中的内置图表功能。
您可以在第 4 步中检查通过 Qubitro MQTT 代理传输图书评级的代码。
#?? Qubitro 设备收到数据包后,在项目仪表盘上打开设备,点击分析。
#?? 然后,为每个数据元素创建一个具有唯一颜色的图表,以仔细检查给定时期内收集的数据。
步骤 3.2:创建小部件以可视化 Qubitro 上收集的数据
#?? 首先,在项目仪表盘上,进入监控,创建一个新的监控仪表盘。
#?? 然后,单击添加小部件按钮。
#?? 定义小部件所需的信息:标题、项目(IoT 应用程序)名称、设备名称和小部件类型(例如,面积图)。
#?? 要自定义最近创建的小部件,请分配数据元素(传感器值),选择小部件颜色并调整外观设置。
为每个数据元素创建小部件后,Qubitro 门户应显示如下监控仪表板。
第 4 步:对 Arduino Nano 33 IoT 进行编程
首先,我需要安装 SAMD21 内核以在 Arduino IDE 上设置 Arduino Nano 33 IoT。
#?? 在 Arduino IDE 上,导航到 Tools > Board > Boards Manager。
#?? 然后,搜索 Arduino SAMD Boards(32 位 ARM Cortex-M0+)内核并安装它。
#?? 转到工具 > 板 > Arduino SAMD 板(32 位 ARM Cortex-M0+)以选择 Arduino Nano 33 IoT。
#?? 成功设置 Nano 33 IoT 后,下载所需的库以通过 Qubitro MQTT 代理传输数据包:
WiFiNINA | 下载
mqtt-客户端-arduino | 下载
#?? 然后,下载 MFRC522 RFID 阅读器和 SH1106 OLED 屏幕所需的库:
射频识别 | 下载
Adafruit_SH110x | 下载
Adafruit-GFX-库 | 下载
? 包括所需的库。
? 启动 Wi-Fi 和 Qubitro MQTT 客户端。
? 定义 Wi-Fi 设置。
? 定义 Qubitro 设备设置和信息(ID 和令牌)。
WiFiClient wifiClient;
;
ssid[] = ;
pass[] = ;
deviceID[] = ;
deviceToken[] = ;
host[] = ;
端口 = ;
? 定义 SH1106 OLED 屏幕设置。
Adafruit_SH1106G 显示 = Adafruit_SH1106G(屏幕宽度,屏幕高度,OLED_MOSI,OLED_CLK,OLED_DC,OLED_RST,OLED_CS);
? 创建 MFRC522 实例并定义 MFRC522 模块键输入。
;
MFRC522::MIFARE_Key 密钥;
? 初始化 SH1106 OLED 屏幕。
display.begin(0, true); 显示.显示(); 延迟(1000); display.clearDisplay(); display.setTextSize(2); display.setTextColor(SH110X_BLACK, SH110X_WHITE); display.setCursor(0,0); display.println("物联网"); display.println("书签"); 显示.显示(); 延迟(1000);
? 连接到给定的 Wi-Fi 网络。
Serial.println( ); (WiFi.begin(ssid,)!= WL_CONNECTED){ Serial.print( ); 延迟(); } Serial.println( );
? 设置 Qubitro 设备 ID 和令牌以进行身份验证。
? 通过 Qubitro MQTT 代理连接到 Qubitro 设备。
mqttClient.setId(设备ID); mqttClient.setDeviceIdToken(deviceID, deviceToken); Serial.println( ); Serial.println( ); Serial.println(mqttClient.connectError()); ( ); } Serial.println( );
? 激活与 Qubitro 设备的双向通信以获取服务器响应(收到的消息)的通知。
mqttClient.onMessage(receivedMessage); mqttClient.subscribe(设备ID);
? 初始化 MFRC522 RFID 阅读器(硬件)。
SPI.开始(); mfrc522.PCD_Init(); Serial.println("\n---------------------------------\n近似新卡或密钥标签: \n----------------------------------\n");
? 在 read_UID 函数中,检测新的 RFID 卡或标签 UID。
? 然后,将检测到的 UID 复制到 lastRead 字符串,处理 lastRead 字符串,并在串口监视器上打印。
{
;
}
(!mfrc522.PICC_ReadCardSerial()) {
;
}
Serial.print( );
( i = ; i < mfrc522.uid.size; i++) {
lastRead += mfrc522.uid.uidByte[i] < ?:;
lastRead += String(mfrc522.uid.uidByte[i], HEX);
}
lastRead.trim();
lastRead.toUpperCase();
Serial.print(lastRead);
Serial.print( );
mfrc522.PICC_HaltA();
;
}
? 保持与 Qubitro 代理的 MQTT 连接。
mqttClient.poll();
? 如果检测到并存储了 RFID 卡或标签 UID,则启动评级设置菜单:
? 在 SH1106 OLED 屏幕上显示检测到的 UID 和当前图书评分。
? 然后,利用操纵杆(第一和第二)移动和控制按钮(上、右、左和下)调整图书评级。
? 如果按下第二个操纵杆的开关,则创建一个 JSON 格式的字符串,以将检测到的 UID 和调整后的图书评分传输到 Qubitro 设备:
- 用户标识符
- 阴谋
- 划定
- 浸没
- 罗唆
- 人物
- 编辑
? 然后,通过 Qubitro MQTT 代理将给定的数据包发送到 Qubitro 设备。
? 最后,返回主屏幕并清除 lastRead 字符串(检测到的 UID)。
? 如果按下第一个摇杆的开关,则返回主屏幕并清除 lastRead 字符串(检测到的 UID)而不发送数据包。
(最后阅读!= ){ uid_activated = ; 检测到RFID 卡标签,打开评级设置菜单。(uid_activated){ 读取控制(); mqttClient.poll(); display.clearDisplay(); 显示.setTextSize( ); display.setTextColor(SH110X_WHITE); display.setCursor( , ); 展示。();display.println(lastRead); 展示。();display.println(选项[ ]); 展示。();display.println(选项[ ]); 展示。();display.println(选项[ ]); 展示。();display.println(选项[ ]); 展示。();display.println(选项[ ]); 展示。();display.println(选项[ ]); 显示.显示(); 延迟(); 操纵杆控制按钮调整图书评分: (joystick_x_1 >= ){ (!up) options[ ] = ; (!right) 选项[ ] = ; (!left) 选项[ ] = ; (!down) 选项[ ] = ; } (joystick_x_1 <= ){ (!up) options[ ] = ; (!right) 选项[ ] = ; (!left) 选项[ ] = ; (!down) 选项[ ] = ; } (joystick_y_1 >= ){ (!up) options[ ] = ; (!right) 选项[ ] = ; (!left) 选项[ ] = ; (!down) 选项[ ] = ; } (joystick_x_2 >= ){ (!up) options[ ] = ; (!right) 选项[ ] = ; (!left) 选项[ ] = ; (!down) 选项[ ] = ; } (joystick_x_2 <= ){ (!up) options[ ] = ; (!right) 选项[ ] = ; (!left) 选项[ ] =; (!down) 选项[ ] = ; } (joystick_y_2 >= ){ (!up) options[ ] = ; (!right) 选项[ ] = ; (!left) 选项[ ] = ; (!down) 选项[ ] = ; } 通过 Qubitro MQTT 代理将给定的图书评级发送到 Qubitro 设备。(!joystick_sw_2){ digitalWrite(control_led, HIGH); mqttClient.beginMessage(deviceID); 创建一个 JSON 格式的字符串成功传输数据到 Qubitro 设备。 mqtt客户端。 ( + lastRead + + String(options[ ]) + + String(options[ ]) + + String(options[ ]) + + String(options[ ]) + + String(options[ ]) + + String(options[ ]) + ); mqttClient.endMessage(); 延迟(); Serial.println( ); 退出清除: 最后读取 = ; display.clearDisplay(); 显示.setTextSize( ); display.setTextColor(SH110X_BLACK, SH110X_WHITE); display.setCursor( , ); display.println( ); display.println( ); 显示.显示(); 数字写入(控制LED,低); uid_activated = ; } 退出清除: (!joystick_sw_1){ 最后读取 = ; display.clearDisplay(); 显示.setTextSize( ); display.setTextColor(SH110X_BLACK, SH110X_WHITE); display.setCursor( , ); display.println( ); display.println( ); 显示.显示(); uid_activated = ; } } }
模式和功能
???首先,设备尝试通过 Qubitro MQTT 代理连接到给定的 Wi-Fi 网络和 Qubitro 设备。
???然后,设备显示主屏幕。
???如果设备检测到 RFID 卡或标签 UID,它会启动评级设置菜单并显示检测到的 UID 和当前图书评级:
- 用户标识符
- 阴谋
- 划定
- 浸没
- 罗唆
- 人物
- 编辑
???在评级设置菜单上,该设备允许用户通过操纵杆移动和控制按钮来调整图书评级:
???要调整绘图等级:
- 将第一个操纵杆向右移动?按任意控制按钮
???要调整描述等级:
- 将第一个操纵杆向左移动?按任意控制按钮
???调整沉浸等级:
- 将第一个操纵杆向上移动 ? 按任意控制按钮
???要调整 Prolixity 等级:
- 向右移动第二个操纵杆?按任意控制按钮
???要调整字符等级:
- 将第二个操纵杆向左移动?按任意控制按钮
???调整编辑等级:
- 将第二个操纵杆向上移动?按任意控制按钮
?? 通过控制按钮评分:
- 向上按钮?世俗 [1]
- 右键?有趣 [2]
- 左键 ?迷人 [3]
- 向下按钮?迷人 [4]
???如果按下第二个操纵杆的开关,设备将通过 Qubitro MQTT 代理将数据包(检测到的 UID 和调整的图书评级)发送到 Qubitro 设备。
???然后,如果 Qubitro 设备成功接收到传输的数据包,设备会闪烁 5mm 的绿色 LED。
???发送数据包后,设备返回主屏幕。
???如果按下第一个摇杆的开关,设备也会返回主屏幕而不传输数据包。
???设备存储调整后的图书评级,并在启动时显示在评级设置菜单中,以提醒用户之前分配的图书评级。
???如果 Nano 33 IoT 在运行时出现错误,设备会在串行监视器上打印错误代码和详细信息。
???此外,该设备还会在串行监视器上打印通知和 UID 读数以进行调试。
???将数据包传输到 Qubitro 设备后,Qubitro 门户允许用户在监控仪表板上可视化图书评级,如步骤 3.2 中所述。
视频和结论
就我的实验而言,该设备在调整图书评级并通过 Qubitro MQTT 代理将数据包传输到 Qubitro 设备时工作得无可挑剔:)
- 使用Blues Wireless和Qubitro的物联网天气数据记录器
- 探索编码器之电机步进跟踪器
- 光子时间跟踪器开源分享
- 迈向Arduino驱动的卫星跟踪器
- 移动水位跟踪器开源分享
- 使用Raspberry Pi的温度跟踪器
- 使用Arduino的光跟踪器
- 一种尺度自适应的滤波跟踪器 4次下载
- MQTTv3.1中文版_带书签 0次下载
- 基于P-N跟踪器的自适应粒子滤波算法 0次下载
- 关于FPGA的多路脉冲重复频率跟踪器设计 37次下载
- 基于ATmega8的双轴太阳跟踪器设计
- 2/3通道电源跟踪器/排序器/监控器
- 基于有源像元传感器的多用途微型跟踪器
- 基于双DSP的电视跟踪器
- 利用ADALM-PLUTO构建单脉冲信号跟踪器 1150次阅读
- GPS车辆跟踪器 578次阅读
- 排序电路提供伪电压跟踪器 524次阅读
- 车辆跟踪系统:随时随地 1287次阅读
- 车辆跟踪系统可用于实时跟踪的主动数据传输 898次阅读
- 为您的物联网跟踪器选择合适的降压升压 899次阅读
- 工业应用太阳能跟踪器设计方案 1470次阅读
- 如何使用M5Stamp PICO和Qubitro构建物联网门锁监控系统 1680次阅读
- 基于LBT01 LoRa的GPS跟踪器和来自LoRa的BLE信标 3668次阅读
- 基于ISA总线和FPGA技术实现模块化跟踪器的系统设计 1591次阅读
- 盘点7个有效的物联网应用案例 1.1w次阅读
- 采用物联网RFID技术构建的智能图书管理系统浅析 1683次阅读
- 车辆跟踪系统的全面介绍 5846次阅读
- Linux跟踪器如何选择,学会这招就很简单了 5089次阅读
- GPS跟踪定位器如何使用 3.7w次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多