智能创客,中国最大的极客空间,智能平台,免费教学,视频教程,手把手教你创造儿时梦想!

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 9076|回复: 19
打印 上一主题 下一主题

WIFI作品DIY教程13-《水滴检测》下雨漏水了做相应的处理等

  [复制链接]

110

主题

396

帖子

2329

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2329
QQ
跳转到指定楼层
楼主
发表于 2015-2-12 10:42:33 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
上篇WIFI作品DIY教程07-《wifi家居网关》家居控制中心zigbee/nrf24l01等完成了家居网关。


当下雨或漏水时,有了这个我们就可以预先知道,然后实行关窗等处理了。



第一部分:水滴传感器介绍



第三部分:下载编译源代码
1、安装CH340驱动

在drivers目录里找到CH340驱动,然后按说明安装(之前安装了就不用再安装了)。

2、源代码
[C] 纯文本查看 复制代码

/*
 *NRF24l01针脚连接线
 * MISO -> 12
 * MOSI -> 11
 * SCK -> 13
 * Configurable:
 * CE -> 8
 * CSN -> 7
*/
#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>

int sid=1;//模块类型
int nid=6;//模块编号


const unsigned long interval = 1000;
unsigned long last_sent;

int shuidival=0;
int shuidi_PIN=A5;

//NRF24l01
unsigned long nrf24l01nowlast;
char nrf24l01buff[33]={0};
char nrf24l01Data;
int nrf24l01i=0;


void setup()
{
    Serial.begin(115200);

    char client[10]={0};//client
    sprintf(client,"clie%d",sid); 
    //初始化Mirf,用于NRF24l01收发
    Mirf_Init(0,client,sid);
   
    
    Serial.println("zwifi_shuidi");
}
 
void loop()
{
  
  unsigned long now = millis();
  if ( now - last_sent >= interval  )
  {
    last_sent = now;
    
    shuidival=0;
    
    run_shuidi();
    
    if(shuidival==LOW)
    {
      char data[10]={0};
      sprintf(data,"%d",shuidival);
      send_data(data);
      delay(10000);
    }
    
  }
  
  
}

//初始化Mirf 0初始化1为接收2为发送
void Mirf_Init(int txrx,char *server,int channel){
    //初始化Mirf,用于NRF24l01收发        
    if(txrx==0)  {     
      Mirf.spi = &MirfHardwareSpi;
      Mirf.init();
      Mirf.setRADDR((byte *)server);//设置接收地址
    }
    
    if(txrx==1)  {     
      Mirf.setRADDR((byte *)server);//设置接收地址
    }
    if(txrx==2)  {
      Mirf.setTADDR((byte *)server);//设置发送地址
    }
    
    Mirf.payload = sizeof(char);//收发字节
    Mirf.channel = channel;
    Mirf.config();
}

//NRF24l01发送函数
void Mirf_Send(int channel,char *server,char *str){
  Mirf_Init(2,server,channel);
  int bufi=0;
  for(bufi=0;bufi<strlen(str);bufi++){//循环发送
    char words=str[bufi];//发送的字符
    Mirf.send((byte *)&words);//发送命令
    while(Mirf.isSending()){//等待发送完闭
    }
    delay(50);//延时,否则可能出现发送丢失现象
    //Serial.print(words);
  }
  //Serial.println(""); 
}





void run_shuidi()
{    
    shuidival=digitalRead(shuidi_PIN);
    Serial.println(shuidival,DEC);
    delay(100);
}


//
void send_data(char *data){
     
    char server[10]={0};//server
    sprintf(server,"serv%d",1);
    //Serial.println(server);
    
    char updateData[33]={0};
    char front[10]={0};
    //memcpy(front,body,9);
    sprintf(front," {ck%03d%03d",sid,nid);
    sprintf(updateData,"%s%s}",front,data);   
    Serial.println(updateData);
    Serial.println();
    
    Mirf_Send(1,server,updateData);
    
    char client[10]={0};//client
    sprintf(client,"clie%d",sid);
    Mirf_Init(1,client,sid);  
                
}





刷写arduino程序选哪个板?
请选择板是Arduino Uno,并记得选对对应的串口。

刷写ardruino源代码时,提示库不存在?
请联系qq610854837下载zwifi资料,软件下载目录里的arduino-1.0.5,里面包含了教程使用的所有库。



将代码进行编译下载到arduino板上。


3、串口运行查看数据是否正常

在arduino软件里,查看串口数据,记得是115200哦,有如上图,说明下载运行成功了!

程序的原理就是获取到水滴警报值,然后组合成字符{ck00x00xnnnn}发送到网关保存数据,供我们以后分析。


第四部分:检测通信和数据库记录

打开:http://192.168.1.1/znck007/mysqltest.php?mode=select


点击查看数据库记录,001,006的记录,说明网关成功保存了记录。



同时也可以用数据库软件Navicat for MySQL查看数据记录!





未完。





分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

0

主题

5

帖子

62

积分

注册会员

Rank: 2

积分
62
沙发
发表于 2015-5-13 01:51:55 | 只看该作者
本帖最后由 创客帝国 于 2015-7-23 21:20 编辑

这么强,支持楼主,佩服










回复 支持 反对

使用道具 举报

0

主题

29

帖子

92

积分

注册会员

Rank: 2

积分
92
板凳
发表于 2015-5-24 23:49:21 | 只看该作者
本帖最后由 创客帝国 于 2015-7-23 21:20 编辑

我喜欢啊,请继续 支持你











回复 支持 反对

使用道具 举报

0

主题

1

帖子

9

积分

新手上路

Rank: 1

积分
9
地板
发表于 2015-5-30 14:49:12 | 只看该作者
嘿嘿~奸笑中!
回复 支持 反对

使用道具 举报

0

主题

9

帖子

82

积分

禁止发言

积分
82
5#
发表于 2015-8-12 23:44:44 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

0

主题

18

帖子

64

积分

禁止发言

积分
64
6#
发表于 2015-9-1 00:32:02 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

1

主题

34

帖子

149

积分

注册会员

Rank: 2

积分
149
7#
发表于 2015-9-19 13:42:51 | 只看该作者

强强强~~,太好了,谢谢
回复 支持 反对

使用道具 举报

0

主题

25

帖子

78

积分

注册会员

Rank: 2

积分
78
8#
发表于 2015-10-3 10:45:28 | 只看该作者
顶你一下,好贴要顶!












回复 支持 反对

使用道具 举报

0

主题

22

帖子

77

积分

注册会员

Rank: 2

积分
77
9#
发表于 2015-10-6 11:09:16 | 只看该作者
努力学习中
回复 支持 反对

使用道具 举报

0

主题

7

帖子

36

积分

新手上路

Rank: 1

积分
36
10#
发表于 2015-10-9 18:22:40 | 只看该作者
好东西,感谢分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|小黑屋|手机版|智能创客 ( 桂ICP备14000828号

GMT+8, 2024-11-1 08:05 , Processed in 0.155049 second(s), 34 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表