[应用相关] 基于stm32的远程监控喂食器

[复制链接]
861|14
 楼主| jzzllv 发表于 2022-2-28 22:20 | 显示全部楼层 |阅读模式

wifi智能小车模块+花生壳+STM32+APP

实现功能为视频传输与远程控制


1.wifi智能小车模块 29069621cda2eb9f64.png

该模块可以连接你所在地方的wifi,先使其成为访问该模块的内网。步骤1’通过网线或该模块的热点与电脑连接,在路由器管理页面(192.168.1.1)设置连接所在地方的网络,接口和视频/控制端口设置。再通过winscp 这个相当与Windows下面的文件管理器软件,利用它我们可以很方便地把文件从windows里面拖到WIFI板上。2’登陆所连接地方WiFi的路由器管理页面。在转发规则里面设置好内网端口,动态DNS登陆花生壳账号。




 楼主| jzzllv 发表于 2022-2-28 22:21 | 显示全部楼层
2. 花生壳原理
首先简单说一下花生壳,这是一个提供动态域名解析服务的商业化产品。所谓域名解析,常被称作DNS,也就是将对人类友好的域名与对计算机友好的点分式IP地址做关联的一个系统服务。打个比方,这个服务类似于手机里面的通讯录软件,它的作用就是将人能记住的姓名与一串毫无意义,很难**的电话号码关联起来。那么拨电话时,只需要在通讯录中查找姓名就可以了。
在大多数情况下,通讯录软件都能很好的工作,可正如这个世界本身的不完美,完美的软件也不存在,通讯录一个最明显的bug就是,一旦有人换了号码,通讯录就无法跟踪这种变化。回到我们讨论的DNS,情况就成了这样:有人申请了一个域名,在自己的笔记本电脑上做了一个网站,并将网站的域名关联到自家上网的IP地址后,全世界任何一个角落的人都可以通过这个域名访问他的网站。可如果这个人白天是在工作单位使用笔记本电脑呢,此时只能通过工作单位的IP才能访问网站,但是DNS那里登记的却是一个家庭IP,于是网站成了一个悲剧。
花生壳很好的修正了这个bug,如果域名所对应的IP地址经常会更换,那么可以注册后使用花生壳的软件,之后无论在哪里上网,域名都会和当前的上网IP建立对应关系。

总之你下载花生壳app,在上面所连接的WiFi下登陆,即相当于有了一个服务器。利用它可实现外网访问。

82333621cda594c748.png

花生壳,虽然账号免费注册但内穿透要付费,个人用的话6块钱体验版就可以,一个月1G流量。配置方法:1’登陆花生壳账号,点内网穿透。2’在上图‘添加映射’中填写内网IP,对应的端口,名字随便起。3’复制分配的外网访问地址与花生壳端口号。
另外,也可以使用花生棒。花生棒的作用在于代替了花生壳在wifi下登陆的操作,其他啥用没有。花生棒一头用网线连路由器,一头usb口连电源。内网穿透啥的都还是靠花生壳,流量啥的该掏钱还得掏钱。
 楼主| jzzllv 发表于 2022-2-28 22:22 | 显示全部楼层
3. STM32单片机
wifi智能模块与单片机串口相连,通过下位机读取模块网络发来的信息(字符等),完成对应的指令操作。喂食器功能是驱动舵机(选择投喂的种类)和电机(主要是投放功能)。仅以智能双料喂食器为例部分代码片如下`在这里
  1. while(1)
  2.         {
  3.                   if(USART_RX_STA)
  4.                 {
  5.                                 switch (USART_RX_BUF[0])
  6.              {               
  7.                 case 'a':                                                     //打开a孔放a料
  8.                      TIM_SetCompare2( TIM3,750); //600     //舵机左转
  9.                                 GPIO_SetBits(GPIOB,GPIO_Pin_8);   //启动电机旋转。
  10.                                  delay_ms(500);
  11.                     TIM_SetCompare2( TIM3,1500);      //复位舵机
  12.                                 USART_RX_STA=0;
  13.                    break;
  14.             case 'd' :                          //打开b孔放b料
  15.                     GPIO_SetBits(GPIOB,GPIO_Pin_8);   //启动电机旋转。
  16.                     TIM_SetCompare2( TIM3,2460);             //舵机右转90’
  17.                     delay_ms(500);TIM_SetCompare2( TIM3,1500);        
  18.                                 USART_RX_STA=0;
  19.                      break;                 
  20.        case 's' :                          //停止
  21.            printf("stop");
  22.               TIM_SetCompare2( TIM3,1500); delay_ms(500);       
  23.                     GPIO_ResetBits(GPIOB,GPIO_Pin_8);
  24.                    USART_RX_STA=0;
  25.            break;                 
  26.      default :
  27.       printf("unknown");
  28.           TIM_SetCompare2( TIM3,1500);         GPIO_ResetBits(GPIOB,GPIO_Pin_8);
  29.                 USART_RX_STA=0;
  30.        break;
  31.        }
  32.     }
  33.     }



9152621cda909255b.png
 楼主| jzzllv 发表于 2022-2-28 22:23 | 显示全部楼层
4. 手机端APP
使用我上传过的wifi小车app或其他的都可以手机端app
App是通过SOKET编程获取公网IP。在APP设置页面中,视频地址填写第2条中的外网访问地址,控制地址IP(需要在电脑上ping一下花生壳域名,出现的ip就是。有些公共场合ping不通,不影响使用)端口号为花生壳的端口号。
做完这些你就可以秀操作了。。。

注意:wifi模块在刚上电时会网络配置,乱发一堆数据。为防止主控卡死,可以设置一些延时(可能接近一分钟)或者先给模块上电再给主控上电。
carpsnow 发表于 2022-3-2 17:33 | 显示全部楼层
喂食器?小车?~~
gygp 发表于 2022-3-4 20:13 | 显示全部楼层
可以用websocket吗
uytyu 发表于 2022-3-4 20:25 | 显示全部楼层
MQTT通信协议吗
jonas222 发表于 2022-3-4 20:39 | 显示全部楼层
如何在WiFi内部建立服务器呢?
hudi008 发表于 2022-3-4 20:59 | 显示全部楼层
可以使用4G通信吗
gygp 发表于 2022-3-5 22:06 | 显示全部楼层
推荐使用stm32h7吧,性能更高端。
burgessmaggie 发表于 2022-3-5 22:58 | 显示全部楼层
远程监控都需要什么元器件?
sesefadou 发表于 2022-3-5 23:30 | 显示全部楼层
使用的是wifi的哪个模块呢
tifmill 发表于 2022-3-6 12:45 | 显示全部楼层
这个使用的服务器了吗  
fengm 发表于 2022-3-6 13:41 | 显示全部楼层
能够添加摄像头吗
yorkbarney 发表于 2022-3-6 14:26 | 显示全部楼层
花生壳可以配置吗  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

55

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部