STM32单片机是一种功能强大、易于使用、灵活且可靠的32位微控制器,基于ARM Cortex™-M内核。其主要功能特点包括:
高性能和低功耗:STM32系列单片机提供多种内核选择,如Cortex-M0、Cortex-M3、Cortex-M4等,满足不同应用场景对性能的需求,同时保持低功耗特性。多种通信和外设接口:STM32单片机具备广泛的通信和外设接口,如I2C、SPI、USART、USB等,便于开发者实现各种复杂功能。易于开发和调试:STM32单片机提供了丰富的软件和硬件工具,如HAL库、CubeMX等,帮助开发者快速创建和调试嵌入式系统。高集成度和设计灵活性:STM32系列单片机全系列产品共用大部分引脚、软件和外设,优异的兼容性为开发人员带来最大的设计灵活性单片机最小系统原理图如下图所示:
步进电机是一种将电脉冲信号转换成相应角位移或线位移的电动机。每输入一个脉冲信号,转子就转动一个角度或前进一步,其输出的角位移或线位移与输入的脉冲数成正比,转速和角加速度与脉冲频率成正比(在非超载的情况下)。因此,步进电动机又称脉冲电动机。步进电机作为一种可控制用的特种电机,利用其没有累计误差的特点,广泛的用于各种开环控制。
其具体电路原理图如下图所示:
实物图:
ESP8266 是一个非常强大的 WIFI 模块,可以利用串口与单片机进行通讯,从而编程实现控制 ESP8266。利用 ESP8266 可以访问一些 API,获取天气信息或者完成网络授时,也可以连接云平台进行开发。不过因为是串口传输,速度较慢,不能用来传输图像、视频这些大容量的数据,但是传些传感器数据还是绰绰有余的。
本系统用到的是 ESP-01S
其具体电路原理图如下图所示:
实物图如下:
void HardWare_Init(void) { DIWaterInit(); //水位传感器初始化 DIFoodInit(); //光敏电阻初始化Usart1_Init(115200); // 串口1功能初始化,波特率9600// ESP--串口3--115200 Usart3_Init(115200); //串口3初始化 连接wifi WIF_ESP8266_AP_INIT(); //esp8266初始化为ap模式 Stepper_GPIOInit(); //步进电机初始化 RelayInit(); //继电器初始化 u1_printf("init okrn"); } 123456789101112131415
static void WifiSend(unsigned char temp, unsigned char food, unsigned char water) { unsigned char msg[8]; u3_printf("AT+CIPSEND=0,8rn"); msg[0] = 0x86; msg[1] = 0x5; msg[2] = temp; //温度 整数部分 msg[3] = food; //粮食有无 msg[4] = water; //水有无 msg[5] = 0x0; msg[6] = 0x0; msg[7] = msg[0] + msg[1] + msg[2] + msg[3] + msg[4] + msg[5] + msg[6]; Delay_Ms(200); Usart_SendString(USART3, msg, 8); Delay_Ms(200); }
1234567891011121314151617181920//从ds18b20得到温度值 //精度:0.1C //返回值:温度值 (-550~1250) short DS18B20_Get_Temp(void) { u8 temp; u8 TL,TH; short tem; DS18B20_Start (); // ds1820 start convert DS18B20_Rst(); DS18B20_Check(); DS18B20_Write_Byte(0xcc);// skip rom DS18B20_Write_Byte(0xbe);// convert TL=DS18B20_Read_Byte(); // LSB TH=DS18B20_Read_Byte(); // MSB if(TH>7) { TH=~TH; TL=~TL; temp=0;//温度为负 }else temp=1;//温度为正 tem=TH; //获得高八位 tem<<=8; tem+=TL;//获得底八位 tem=(float)tem*0.625;//转换 if(temp)return tem; //返回温度值 else return -tem; }
1234567891011121314151617181920212223242526272829public void connect_server() { public_info.buf_length = 8; public_info.buf = new byte[public_info.buf_length]; public_info.need_send_cmd = false; public_info.recv_thread_exit = false; public_info.info_thread_exit = false; public_info.temp_yuzhi = 10; if (public_info.connect_cnt > 0) public_info.info_thread_exit = true; //如果之前已经有连接了,需要断开后再连接 //创建网络线程,并在线程中连接服务器 client_info_thread = new clientInfoThread(netMessageHandle); client_info_thread.start(); } 1234567891011121314
public void send_buffer_to_network(byte []msg,byte length) { while (true) { if (public_info.need_send_cmd) { //如果正在发送数据,则要等待它完成再做操作 try { Thread.sleep(100); //100ms延时 }catch (Exception ex) {} continue; } break; } //设置要发送的数据和长度 public_info.buf_length = length; public_info.buf = msg; public_info.need_send_cmd = true; } 123456789101112131415
相关知识
基于单片机的宠物喂食系统设计(32+蓝牙+WIFI版)
基于stm32智能图像宠物投喂喂养物联网单片机软硬件设计毕业生系统
基于STM32的畜牧养殖系统设计与实现
基于STM32的智能宠物监测自动喂养
基于STM32的智能宠物看护喂养系统(程序源码+原理图+PCB+Boom表+实物操作说明)
基于STM32单片机宠物喂食换水系统智能鱼缸无线摄像头设计174
【IoT毕设】机智云物联网平台+STM32单片机+智能宠物屋实现
「IoT毕设」机智云物联网平台+STM32单片机+智能宠物屋实现
基于单片机的宠物喂食系统设计(51基础版)
基于单片机的智能鱼缸
网址: 基于stm32单片机的wifi手机app宠物喂食系统设计 https://m.mcbbbk.com/newsview608503.html
上一篇: 给狗狗喂食的方法 |
下一篇: 狗粮的正确喂食方法 |