Python和命令行脚本(C C++)嗅探物联网络及短中远程无线电(1)


然而,并非所有微控制器都支持加密。 就我而言,却成为一个限制因素,因而从工作流程中删除了加密。 但这是我认为这是一种有趣的方法,并且保证没有第三方窥探。


LoRaWAN


LoRaWAN 是 LoRa 之上的网络协议。 节点连接到网关,网关充当桥梁,允许节点从整个网络发送/接收数据包,而不是仅在范围内发送/接收数据包。 如果您正在围绕 LoRa 构建整个智能家居或想要整合多个设备,那么使用 LoRaWAN 是正确的选择。 由于我想要的项目仅使用两个节点,因此我可以只使用 LoRa。


Python控制设备示例


为了打开仓库房门,我将连接到其中一根 RFM95射频模块。 对于我的仓库房门系统,我有一个硬连线按钮,可以按下它来打开。


在电源中继板的背面,我们可以焊接一个跳线垫,将信号线连接到模块上的特定引脚。然后我们要做的就是将该引脚的输出设置为高电平,以触发电源中继:



import board
import digitalio
import time

relay = digitalio.DigitalInOut(board.A0)
relay.direction = digitalio.Direction.OUTPUT
relay.value = True
time.sleep(0.1)
relay.value = False


为了跟踪货车的位置,我为另一台配备了 GPS模块。 它将通过 UART 与射频模块进行通信,并允许我们查看货车的位置、速度、高度以及更多信息(如果需要)。使此 GPS 模块使我们能够通过几个简短的命令轻松获取坐标。


我们可以像这样获取我们的位置:



import gps
import board
import busio
import time

uart = busio.UART(board.TX, board.RX, baudrate=9600, timeout=10)
gps = gps.GPS(uart, debug=False)

gps.send_command(b"PMTK314,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0")
gps.send_command(b"PMTK220,1000")

last_print = time.monotonic()
while True:
current = time.monotonic()
gps.update()

if current - last_print >= 1.0:
last_print = current
if not gps.has_fix:
print(“Waiting for GPS location fix…”)
continue

  print(f"GPS Location: {gps.latitude}, {gps.longitude}")

为了检查我们是否应该打开仓库门,货车的射频模块将使用 GPS 模块每秒获取其活动位置。 然后,它使用半正弦公式计算从其位置到触发区域的距离。 如果距离在 15 米以内,它会发出“开门”消息。 为了防止在我们离开社区时触发此消息,我们首先必须保持至少 200 米的距离才能“激活”触发区域。


发送指令


我的所有消息都包含以下字段:




| 字段 | 描述 |
| --- | --- |
| ID | 消息的伪随机唯一标识符 |
| 通道 | 通道消息 |
| 消息 | 指令ID |
| 目标 | 此消息是回复的目标消息 ID |


每当发送消息时,我们都会使用Python的struct库将数据打包成二进制数据。这使有效负载大小保持最小,同时仍然为我们提供了一种稍后解码消息的简单方法:



import struct

Set the message format as four unsigned shorts

msg_format = ‘4H’

Pack our example variables according to the format

packed = struct.pack(msg_format, 202, 20, 4, 429)

print(packed)

b’\xca\x00\x14\x00\x04\x00\xad\x01’

Unpack the data

msg_id, channel, message, target = struct.unpack(msg_format, packed)

print(msg_id, channel, message, target)

202 20 4 429


该项目总共有四个命令:




| 指令 | 描述 |
| --- | --- |
| ACK | 收到消息的确认 |
| Ping | 向所有通道侦听器发送 ping |
| Pong | 回复ping消息 |
| Trigger | 打开仓库门 |
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数嵌入式工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**

![img](https://img-blog.csdnimg.cn/img_convert/0d94dee1ff7250d138d41b20cf566699.png)

![img](https://img-blog.csdnimg.cn/img_convert/7bad6476625c917df7254688c542587f.jpeg)

![img](https://img-blog.csdnimg.cn/img_convert/ec26d4178a7de5e50560917dea0b92c5.png)

 **既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**

![img](https://img-blog.csdnimg.cn/img_convert/0307347dd0c4b0dbc2ad38ff82396a09.png)

![img](https://img-blog.csdnimg.cn/img_convert/a590d8d8d2980a87f6efe57a2d36e7f2.png)

 

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以+V:Vip1104z获取!!! (备注:嵌入式)**

<img src="https://img-community.csdnimg.cn/images/73bb5de17851459088c6af944156ee24.jpg" alt="img" style="zoom: 67%;" />



# 最后

**资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~**

**你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!**

17851459088c6af944156ee24.jpg" alt="img" style="zoom: 67%;" />



# 最后

**资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~**

**你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!**

**[更多资料点击此处获qu!!](https://bbs.csdn.net/topics/618376385)**
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值