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

标题: WIFI作品DIY教程13-《水滴检测》下雨漏水了做相应的处理等 [打印本页]

作者: znck007    时间: 2015-2-12 10:42
标题: WIFI作品DIY教程13-《水滴检测》下雨漏水了做相应的处理等
上篇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查看数据记录!





未完。






作者: m35015106    时间: 2015-5-13 01:51
本帖最后由 创客帝国 于 2015-7-23 21:20 编辑

这么强,支持楼主,佩服











作者: 善旦景oebys    时间: 2015-5-24 23:49
本帖最后由 创客帝国 于 2015-7-23 21:20 编辑

我喜欢啊,请继续 支持你












作者: 燕采会mlm    时间: 2015-5-30 14:49
嘿嘿~奸笑中!
作者: qvsst    时间: 2015-8-12 23:44
提示: 作者被禁止或删除 内容自动屏蔽
作者: cmccu    时间: 2015-9-1 00:32
提示: 作者被禁止或删除 内容自动屏蔽
作者: yixian520    时间: 2015-9-19 13:42

强强强~~,太好了,谢谢
作者: ttwpz    时间: 2015-10-3 10:45
顶你一下,好贴要顶!













作者: 洋芋炒土豆    时间: 2015-10-6 11:09
努力学习中
作者: justLB    时间: 2015-10-9 18:22
好东西,感谢分享
作者: 惹尘    时间: 2015-10-17 07:54
很久以前想的一个方案,那时候还在辛苦地用51,学习楼主的了
作者: david78huang    时间: 2015-10-28 12:15
强大啊,学习了
作者: tswtj    时间: 2015-10-31 23:12
提示: 作者被禁止或删除 内容自动屏蔽
作者: drfat    时间: 2016-1-9 09:49
学习学习!
作者: jldsj    时间: 2016-1-13 23:02
走淘宝虽然慢一些 客服很耐心讲解流程并指导作! 不错诚信商家
作者: fawob    时间: 2016-2-12 18:02
好东东,谢谢楼主













作者: jsyemaozi    时间: 2016-2-29 15:15
水滴检测有用处,刷等级学习




欢迎光临 智能创客,中国最大的极客空间,智能平台,免费教学,视频教程,手把手教你创造儿时梦想! (http://luntan.znck007.com/) Powered by Discuz! X3.2