请选择 进入手机版 | 继续访问电脑版

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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 48024|回复: 168

《智能家居网关》DIY制作图文教程01-百元智能家居系列

  [复制链接]

110

主题

396

帖子

2319

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2319
QQ
发表于 2014-3-16 13:12:30 | 显示全部楼层 |阅读模式
技术宅创客们,手把手图文教程献给大家!
IMG_1097_去雾.jpg


《智能家居网关》驱动/固件下载
http://pan.baidu.com/s/1mglvP24


下面介绍我们需要到的配件,还有关注我们微信教你如何去购买这些配件哦。现在一一给大家介绍配件。
暴风截图20143269761793.jpg
①USB下载器¥13
②路由器电源¥7
③面包板¥5x2
④nrf24l01无线收发¥8x2
⑤arduino pro控制板¥16x2
⑥enc28j60以太网卡¥18
⑦包面线¥6
⑧亚克力盒子¥7
⑨ams1117稳压3.3v¥6
⑩LED和接线端¥2

所有的配件加一共117元(视频上的漏算有2件的了)!
比起市面上几千几万,为什么不淘回家DIY?开始踏入未来创客一员呢。

如果想要成品套件(自己去淘宝买所有的配件运费都可以再买一个了)请在这里下单或直接去我们的沟宝店购买。http://www.znck007.com/forum.php?mod=viewthread&tid=52


制作智能家居网关只需要三步:


第一步硬件(连接配件)

一、enc28j6o网卡与arduino pro控制板
1、面包板介绍
暴风截图20143269981833.jpg

2、arduino控制板插入面包板
暴风截图201432610275099.jpg

3、enc28j60网卡与arduino pro控制板接线图
暴风截图201432610311213.jpg

4、接线端插入脚针方便面包线连接。
暴风截图201432610677332.jpg
暴风截图201432610939273.jpg

5、按接线图和控制作连接起来
暴风截图201432611053825.jpg


二、nrf24l01无线与arduino pro控制板

1、ams1117降压v3.3的作用
暴风截图201432611485542.jpg

2、nrf24l01无线和arduino pro控制板连接图
暴风截图201432611550329.jpg

3、nrf24l01无线连接
暴风截图201432611680793.jpg

4、nrf24l01无线和enc28j60网卡连接
暴风截图201432612020532.jpg

三、LED、USB下载线、电源线

1、LED灯连线
暴风截图201432612211461.jpg

2、USB下载线作用
暴风截图201432612473808.jpg

3、9V路由器电源供电
暴风截图201432612535101.jpg



第二步软件(刷固件)

1)下载驱动和固件(百分之分开源代码)
1、上面就有下载地址
暴风截图201432612772457.jpg


2、enc28j60网卡模块插入电脑 暴风截图2014327103012265.jpg

3、驱动安装
暴风截图2014327103224707.jpg
a、右击我的电脑或计算机,点击管理
b、点击设置管理器,在端口com下会有出现USB Serial Port
c、在USB Serial Port后面会出现COM加一个数字,记住它
d、右击USB Serial Port,点击安装驱动程序软件
e、点击“浏览计算机查找驱动程序软件”
f、选择 下载驱动的目录,选drivers->CP2102_USB_Drivers
g、点击确定或下一步,完成驱动安装

2)刷enc28j60网卡固件(可随意修改源码实现你要的功能)
暴风截图2014327103872189.jpg
a、打开arduino软件后,选择Tools->Serial Port->COMX
b、COMX就是在电脑设置管理器里的COM数字
c、选择Tools->Board->再选择arduino Pro or Pro Mini(5v,16M)w/ATmega328

d、点击File->Examples->znck007->wangguan_fashe
e、最大化后,点会看到xxxxxxxxxxxxxxxx,修改成你的apikey(在http://m.znck007.com申请)
暴风截图2014327103915401.jpg
f、最后点击右箭头(红色框里),就开始下载刷新了。
g、当绿色的进度条完成,并有Done uploading.说明成功了

3)刷nrf24l01无线固件(可随意修改源码实现你要的功能)
暴风截图2014327103997926.jpg
a、我们拔下有网卡那个板,将USB接到另一个板(无线接收)
b、点击File->Examples->znck007->wangguan_jieshou
c、再点击右箭头(红色框里),就开始下载刷新了。

d、那么我们软件部分就已经刷好了,现在他有脑子啦。


第三步组合(包装)

1)两个面包板连接
暴风截图2014327104073352.jpg

2)两板连线互通
IMG_1018.JPG
a、将网卡上的无线正负级连接到v3.3
b、TX连到另一个板的RX,RX连到另一个板的TX
c、将两个板的正负线电源连接,这样两个就都可以供电了

d、RAW连接另一个板的RAW(正极),GND连接另一个板GND(负级)

3)联网测试
暴风截图2014327104506036.jpg
a、首先连接好网线,确保能上网
b、自动获取IP、联网需要20秒左右
c、手机打开智能创客控制端m.znck007.com,并登陆您的账号

d、当网卡上的灯在闪烁,那说明控制板已经上得网了
e、当前状态,如果显示网关正在运行中,就连到你的账号了
f、到这里,硬件和软件部分都能正常运行了。

3)装入亚克力盒子
暴风截图2014327104740132.jpg


宣传效果视频[直接打开],看了以后记得评论点赞,让更多人加入我们!


详细DIY教学视频[在线播放],或在下方下载
http://pan.baidu.com/s/1bn3Vuqz



《Arduino开源智能家居DIY教程系列》
Arduino开源智能家居《花絮1》zigbee小底板DIY成功
Arduino开源智能家居《认识Zigbee》zigbee功能和自组网介绍
Arduino开源智能家居《zigbee开发板》手机/按键点亮LED
Arduino开源智能家居01《网关》升级版网关正式教程(zigbee)
Arduino开源智能家居02《温湿传感器》什么样温湿度才适居
Arduino开源智能家居03《开发板套件》学习zigbee家居-性价比高
Arduino开源智能家居04《插座开关》手机控制:网扇、空调...
Arduino开源智能家居05《红外线》手机红外线控制电器


《百元智能家居DIY教程系列》
《智能家居网关》DIY制作图文教程01-百元智能家居系列
《智能温湿度》DIY制作图文教程02-百元智能家居系列
《智能插座》DIY制作图文教程03-百元智能家居系列
《智能电灯开关》DIY制作图文教程04-百元智能家居系列
《手机红外线》DIY制作图文教程05-百元智能家居系列
关注@智能创客  微信:znck007(打造DIY创客平台)

回复

使用道具 举报

110

主题

396

帖子

2319

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2319
QQ
 楼主| 发表于 2014-5-26 13:37:43 | 显示全部楼层
jackeyt 发表于 2014-5-26 12:58
楼主。为什么不用OPENWRT路由做网关呢?上面的以太网口又多,wifi功能齐全,加上他又是个嵌入式的LINUX系统 ...

这个下一步了,我们先做家居网关,之后就是openwrt了。
太难了新手不懂。arduino大家都懂,一步一步来嘛,一定会越来越好玩的!
回复 支持 1 反对 0

使用道具 举报

0

主题

1

帖子

22

积分

新手上路

Rank: 1

积分
22
发表于 2014-3-26 22:25:41 来自手机 | 显示全部楼层
终于更新了。
回复 支持 反对

使用道具 举报

110

主题

396

帖子

2319

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2319
QQ
 楼主| 发表于 2014-3-30 17:14:29 | 显示全部楼层
下周更新智能温湿度。
回复 支持 反对

使用道具 举报

0

主题

1

帖子

62

积分

注册会员

Rank: 2

积分
62
QQ
发表于 2014-4-22 22:41:24 | 显示全部楼层
智能家居从网关开始
回复 支持 反对

使用道具 举报

110

主题

396

帖子

2319

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2319
QQ
 楼主| 发表于 2014-4-23 09:38:58 | 显示全部楼层
随易而安 发表于 2014-4-22 22:41
智能家居从网关开始

嗯嗯,是呀。
回复 支持 反对

使用道具 举报

0

主题

1

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2014-4-25 01:46:15 来自手机 | 显示全部楼层
学校有竞赛   因为之前没搞过   你这创意我收啦。嘿嘿 不会的 得麻烦你了
回复 支持 反对

使用道具 举报

110

主题

396

帖子

2319

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2319
QQ
 楼主| 发表于 2014-4-25 09:51:28 | 显示全部楼层
翟志瑞 发表于 2014-4-25 01:46
学校有竞赛   因为之前没搞过   你这创意我收啦。嘿嘿 不会的 得麻烦你了

记得多帮宣传,多转发就好,哈哈
回复 支持 反对

使用道具 举报

0

主题

8

帖子

52

积分

注册会员

Rank: 2

积分
52
发表于 2014-4-25 13:07:40 | 显示全部楼层
新手。。。望赐教!!!谢谢!!!
这网关的功能可任意扩展么?
我手里已经有1个UNO了,还需要什么配件?
回复 支持 反对

使用道具 举报

110

主题

396

帖子

2319

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2319
QQ
 楼主| 发表于 2014-4-25 14:36:45 | 显示全部楼层
Stephen 发表于 2014-4-25 13:07
新手。。。望赐教!!!谢谢!!!
这网关的功能可任意扩展么?
我手里已经有1个UNO了,还需要什么配件? ...

你有一个uno只能代替一个控制板,其它都还要哦。
回复 支持 反对

使用道具 举报

0

主题

4

帖子

28

积分

新手上路

Rank: 1

积分
28
发表于 2014-4-28 22:49:58 | 显示全部楼层
亲爱的楼主,是这样的,我手上已有了uno,和nrf24l01,各一对,所以想参照大神的代码做个简单的实验先试一下,但是发现总是不行。
发送端我自己将代码做了删减,接收端没有删减,这里贴出发送端代码,请大神看下有什么问题。
[AppleScript] 纯文本查看 复制代码
#include <RF24Network.h>
#include <RF24.h>
#include <SPI.h>
#include <EtherCard.h>
// Address of our node
const uint16_t this_node = 0; 
// Address of the other node
const uint16_t other_node = 1;

struct payload_t
{
  uint32_t ms;
  uint32_t data;
  char sendchar[20];
};

//NRF24l01 send data
RF24 radioSend(9,10);
RF24Network networkSend(radioSend);
char updateData[17]={0};
uint16_t sendChannel=1;
uint32_t sendCount=0;
byte Ethernet::buffer[400];
void setup(void)
{
  Serial.begin(9600);
  Serial.println("Enc28j60_RF24Network/TX");
  SPI.begin();
  radioSend.begin();
  networkSend.begin(/*channel*/ sendChannel, /*node address*/ other_node);
}
void loop(void)
{
  networkSend.begin(/*channel*/ sendChannel, /*node address*/ other_node);
  networkSend.update(); 
   Serial.println("");
   Serial.print("Sending...");
   if(sendCount>1000000) sendCount=0;
   payload_t payload = { sendChannel, sendCount++, "{ck000000000000}" };//millis()    
   RF24NetworkHeader header(/*to node*/ this_node);
   Serial.println(sendChannel);
   bool ok = networkSend.write(header,&payload,sizeof(payload));
   if (ok)
      {
        Serial.println("ok.");  
           
        char front[10]={0};
        memcpy(front,"this_is_send_inf",9);       
        sprintf(updateData,"%supdate}",front);
        Serial.println(updateData);
       
      }
      else
      {
        Serial.println("failed."); 
      }
      delay(1000);
}


回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2019-1-20 00:55 , Processed in 0.045317 second(s), 13 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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