基于wifi的智能开关
这个东西也是我给别人做的项目,今天刚刚完成。本着今日事今日毕的原则,赶快总结下来,要不然按我的性格就会越拖越久了哈。
这个项目我使用的单片机是ATMEGAL16这款单片机,其实这个项目的思路非常简单,就是把串口wifi模块加载到单片机串口上,进行一系列的配置,然后就可以利用卖方提供给我们的软件给单片机的串口发数据,就相当于利用串口调试助手给单片机的串口发送数据,然后写一条单片机串口的程序,类似接到‘a’,就把PA端口置高,点亮LED灯,如果收到'‘b’,就把PA端口置低,熄灭LED灯。思路很清晰,不管想起来还是说起来都没有什么难度,不过我确实着实费了一番力气呢。
先来看看原理图吧
也许大家看的有点困惑吧,来看看实物的照片吧
如果大家想照着我的这个东西做,还想买我使用的这个wifi模块呢我把连接粘在下面
http://item.taobao.com/item.htm?id=12872744348
其实这个项目真的没有什么好讲的,首先应该自己耐心仔细的看卖方提供的wifi模块的资料,比如这个模块工作条件,需要几V的电压啊等,然后根据教程对模块进行测试,做这个东西碰到很多细节的问题,也许是我的文字表达能力不够吧,但真的是很难写明白,我觉得这些应该叫做经验吧,只可意会不可言传的东西。
我觉得这个项目的关键点有两个:1、要把wifi模块的IP地址和你自己笔记本的IP地址设置在同一个网段
2、不管我们利用软件对模块进行配置还是进行单片机开发都用到了串口,那我们必须重视的一个问题就是波特率问题。
下面是我写的单片机的程序:
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h> //中断函数头文件
#define BAUD 9600 //波特率定义
#ifndef F_CPU
#define F_CPU 12000000
#endif
//全局变量声明
char Transmit;
//函数声明
void Port_Init(void); //端口初始化配置
void Usart_Init(void); //USART寄存器设置
void Usart_PutChar(char c); //字节发送函数
int main(void)
{
DDRA = 0xff;
Port_Init();
Usart_Init();
sei(); //使能全局中断
// Transmit='6';
// Usart_PutChar(Transmit);
// _delay_ms(100);
while(1);
{
}
}
//端口状态初始化设置函数
void Port_Init()
{
PORTD = 0X00; //USART的发送接收端口分别为PD0和PD1
DDRD |= (1 << PD1); //PD0为接收端口,置为输入口;PD1为发送端口,置为输出口
}
//USART寄存器配置函数
void Usart_Init()
{
UCSRA = 0X00;
UCSRB |= (1 << TXEN)|(1<<RXEN)|(1 << RXCIE); //发送使能
UCSRC |= (1<<URSEL) | (1 << UCSZ1) | (1 << UCSZ0); //异步,数据格式8,N,1
//UCSRC寄存器与UBRRH寄存器共用相同的I/O地址,写 UCSRC 时,URSEL 应设置为 1。
UBRRL = (F_CPU/BAUD/16-1)%256; //波特率设置
UBRRH = (F_CPU/BAUD/16-1)/256;
}
//字节发送函数
void Usart_PutChar(char c)
{
UDR = c;
while( !(UCSRA & (1 << UDRE)) ); //只有数据寄存器为空时才能发送数据
}
//接收中断函数
ISR(USART_RXC_vect )
{
char Rev;
Rev = UDR; //从USART I/O数据寄存器-UDR中读出数据
//Usart_PutChar(Rev); //将接收到的数据发送
if(Rev=='a')
{
DDRB = 0xff;
PORTB = 0xff;
}
if(Rev=='b')
{
DDRB = 0x00;
PORTB = 0x00;
}
}
有兴趣的朋友可以看一看,我也会把wifi模块的资料传到我的空间中的,需要的朋友可以去找,如果大家有什么疑问或好的建议的话,请给我评论或留言,我们交流一下。今天有点累,这个项目也确实很难写明白,如有什么不妥的地方大家见谅吧。
基于wifi的智能开关相关推荐
- android 智能家居连接wifi模块,智能家居应用篇 WiFi模块智能开关解决方案
原标题:智能家居应用篇 WiFi模块智能开关解决方案 在家居智能化进程中,其实开关和插座一样,都是必备的基础产品,在一套的智能家居系统里面,不可能少了智能开关这一个基础产品.智能开关是指利用控制板和电 ...
- 基于Wi-Fi的室内定位在美团总部的实践和应用(上)
室内定位技术的商业化必将带来一波创新高潮,尤其是在O2O领域,各种基于此技术的应用将出现在我们的面前.我们可以想象一些比较常见的应用场景,比如在大型商场里面借助室内导航快速找到目标商铺,商店根据用户的 ...
- 基于WIFI信号的呼吸和心率检测(论文总结)
高频率信号: 频率越高波长越短,饶射(衍射效果)能力越弱,但穿透能力(不变方向)越强,信号穿透会损失很大能量,所以传输距离就可能越近,频率越高在传播过程的损耗越大. 超带宽的理解: 超宽带技术(UWB ...
- 基于WiFi的CSI数据做呼吸频率检测-python版(含代码和数据)
一.概述 本Demo无需机器学习模型,Demo功能涉及的理论主要参考了硕士学位论文<基于WiFi的人体行为感知技术研究>,作者是南京邮电大学的朱XX,本人用python复现了论文中呼吸频率 ...
- 基于WiFi的室内定位
摘要 GPS难以解决室内环境下的一些定位问题,大部分室内环境下都存在WiFi,因此利用WiFi进行定位无需额外部署硬件设备,是一个非常节省成本的方法.然而WiFi并不是专门为定位而设计的,传统的基于时 ...
- TensorFlow练习6: 基于WiFi指纹的室内定位(autoencoder)
本帖基于论文:Low-effort place recognition with WiFi fingerprints using Deep Learning 室内定位有很多种方式,利用WiFi指纹就是 ...
- 基于WIFI定位的室内定位系统--WIFI室内定位--新导智能
一.RTLS系统概述 近年来,随着信息技术在外勤人员定位管理及移动资产跟踪定位管理的应用,移动考勤系统与资产跟踪定位正在进入一个新的飞速发展时期, 计算机技术.RFID技术的不断突破给这一领域注入了新 ...
- 基于wifi无线PLC远程控制实现io开关量信号远程采集传输技术
深圳市综科智控科技开发有限公司是一家专注于生产与研发工业智能自动化设备及软件系统.工业物联网设备及软件系统的高新技术企业. 公司致力于为客户提供从前端数据采集.传感器接入.IO控制.通信组网到云端联网 ...
- 一、基于wifi控制的智能家居系统之项目简介和设计方案(硬件基于arduino+esp8266,软件Android+Web端+scoket服务器,实现语音控制)
由于是物联网工程的学生,会一点硬件,会一点Android开发,会一点Web开发,于是乎决定毕设的时候做一个简单一点的毕设,但是能够把所有的知识都应用,串联起来,将所学的知识实践. 一.项目功能介绍 项 ...
最新文章
- Microsoft Visual Studio (VS)2010 常用快捷键大全 便捷开发
- 机房空调制冷、加热、加湿、除湿这些功能如何应用?
- 素数筛选以及优化分析
- .NET Core 3.0之深入源码理解Configuration(一)
- 开始-运行 下常用快捷命令
- donotage标记、MTU及MTU不匹配问题、OSPF邻居状态记录
- 【特征提取】基于matlab频带方差端点检测【含Matlab源码 1765期】
- mac安装仿宋GB2312字体
- 经过路由无法找到计算机,共享打印机找不到对方电脑解决方法
- 夏威夷大学计算机专业排名,美国夏威夷大学排名
- python打卡记录去重_Pandas 数据筛选,去重结合group by
- PySpark之电商广告推荐(1)
- 什么是php微信开发,php微信公众号开发模式详解
- B-spline Curves 学习之B样条曲线定义(4)
- MySQL无法启动 系统发生1058错误
- 息县装修“茶几的选择”
- 6.Postman之批量执行
- Android折腾记——Linux on Android在Android手机上跑Linux教程
- Pid控制算法-专家PID与模糊PID的C++实现
- OA系统的一些学习心得(更新中)