LoRa传输的图像加密方案
通过LoRa网络从高比特率设备(例如图像传感器)传输数据非常慢。由于带宽限制和LoRa约束为1%占空比(即36s/h),这种信息不适合用该技术传输,这意味着每传输一小时只能传输数据36s。LoRa MAC层通常负责将数据从节点传输到网关。然而,由于典型的图像大小和MAC层中使用的加密,它处理图像数据的能力有限。因此,为了能够传输图像数据,LoRa物理层将使用新的加密方法。
使用新方法,图像由Adafruit TTL相机捕获,然后以JPEG文件格式保存在SD存储器中。从那里,它随后被转换为十六进制格式的文件。然后,Arduino处理器将十六进制文件拆分为包含84个十六进制字符的数据包,这是可以一次通过LoRa带宽传输的最大文件大小。为了开始串行数据传输,LoRa无线电传输命令'radio tx'被发送到接收器节点,然后是十六进制数据包。暂停数据传输,直到LoRa接收器节点发送确认已成功接收到初始数据包。然后,发送后续分组。
通过LoRa接收图像
接收器节点中的LoRa无线电适配器侦听传输的信号,并在成功到达时发送确认收据。一旦收到所有十六进制包,它们就会被Arduino处理器收集到一个数据变量中,然后通过串行连接发送,以便在MATLAB中处理,以便从十六进制包中检索图像数据。
MATLAB对接收图像的处理
MATLAB用于帮助控制通过LoRa适配器发送和接收数据的过程,并使用PSNR和MSE分析在通过LoRa网络传输之前和之后的图像质量。在传输之前,MATLAB代码发送一条提示消息,要求用户输入1到6之间的数字以触发传输。这些数字对应于SF的设置,在这种情况下,SF的设置从7到12变化。在此之后,启动上述数据传输过程。突出显示了用于触发数据传输,检索接收数据包以及保存和显示重组图像的MATLAB代码。