欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

基于stm32的远程监控喂食器

程序员文章站 2022-07-10 08:07:04
wifi智能小车模块+花生壳+STM32+APP实现功能为视频传输与远程控制1.wifi智能小车模块该模块可以连接你所在地方的wifi,先使其成为访问该模块的内网。步骤1’通过网线或该模块的热点与电脑连接,在路由器管理页面(192.168.1.1)设置连接所在地方的网络,接口和视频/控制端口设置。再通过winscp 这个相当与Windows下面的文件管理器软件,利用它我们可以很方便地把文件......

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

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

1.wifi智能小车模块

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

2. 花生壳原理

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

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

花生壳,虽然账号免费注册但内穿透要付费,个人用的话6块钱体验版就可以,一个月1G流量。配置方法:1’登陆花生壳账号,点内网穿透。2’在上图‘添加映射’中填写内网IP,对应的端口,名字随便起。3’复制分配的外网访问地址与花生壳端口号。
另外,也可以使用花生棒。花生棒的作用在于代替了花生壳在wifi下登陆的操作,其他啥用没有。花生棒一头用网线连路由器,一头usb口连电源。内网穿透啥的都还是靠花生壳,流量啥的该掏钱还得掏钱。

3. STM32单片机

wifi智能模块与单片机串口相连,通过下位机读取模块网络发来的信息(字符等),完成对应的指令操作。喂食器功能是驱动舵机(选择投喂的种类)和电机(主要是投放功能)。仅以智能双料喂食器为例部分代码片如下`在这里

while(1)
	{
		  if(USART_RX_STA)
		{ 
				switch (USART_RX_BUF[0])
     	{		
		case 'a':     					        //打开a孔放a料
		     TIM_SetCompare2( TIM3,750); //600     //舵机左转
				GPIO_SetBits(GPIOB,GPIO_Pin_8);   //启动电机旋转。
				 delay_ms(500);
		    TIM_SetCompare2( TIM3,1500);      //复位舵机
				USART_RX_STA=0;
	           break;
	    case 'd' :                          //打开b孔放b料
		    GPIO_SetBits(GPIOB,GPIO_Pin_8);   //启动电机旋转。
		    TIM_SetCompare2( TIM3,2460);	     //舵机右转90’
		    delay_ms(500);TIM_SetCompare2( TIM3,1500); 	
				USART_RX_STA=0;
		     break;		 
       case 's' :                          //停止
           printf("stop");
    	  TIM_SetCompare2( TIM3,1500); delay_ms(500);	
	    	GPIO_ResetBits(GPIOB,GPIO_Pin_8);
		   USART_RX_STA=0;
           break;		 
     default :
      printf("unknown");
	  TIM_SetCompare2( TIM3,1500); 	GPIO_ResetBits(GPIOB,GPIO_Pin_8);
		USART_RX_STA=0;
       break;
       }
    }
    }

基于stm32的远程监控喂食器

4. 手机端APP

使用我上传过的wifi小车app或其他的都可以手机端app
App是通过SOKET编程获取公网IP。在APP设置页面中,视频地址填写第2条中的外网访问地址,控制地址IP(需要在电脑上ping一下花生壳域名,出现的ip就是。有些公共场合ping不通,不影响使用)端口号为花生壳的端口号。
做完这些你就可以秀操作了。。。

注意:wifi模块在刚上电时会网络配置,乱发一堆数据。为防止主控卡死,可以设置一些延时(可能接近一分钟)或者先给模块上电再给主控上电。

本文地址:https://blog.csdn.net/weixin_43175701/article/details/83050717

相关标签: 智能家居