最近买了个ESP8266的NodeMCU板子,本来拿来做wifi攻击器的,玩腻了就听说能用这货做智能家居,于是就百度+google找各种资料,前前后后花了近5个小时才弄好。(主要资料不好找啊)
转载请注明出处与原作者!!!谢谢
一、NodeMCU的板子的配置
如上图,我买的就是这货(懒得再去拍照了就从某宝截了一张)
购买方法直接去某宝搜nodemcu模块就行,很便宜,十几块钱就能买到(为了避免广告嫌疑 我就不贴链接了,买的时候可以顺便买点社邦线什么的)
1.刷入固件
我这里使用的是ESPEasy固件
官网固件下载地址:https://www.letscontrolit.com/downloads/ESPEasy_R120.zip(这里是稳定版R120版本固件,想要测试版的自己去官网找)
我的博客下载地址:http://www.myzhazha.top/Download/ESPEasy_R120.zip
下载的时候先把模块链接电脑,驱动没问题的话会在设备管理器端口里有个设备,如下图所示:
记住后面的COM口号,我这里是4 (驱动跟卖家要,一般都会给)
解压下载好的固件压缩包
模块链接电脑的情况下双击“flash.cmd”
第一行是端口号,就是上面设备管理器的COM口号根据自己的来填写,写完按回车键
第二行是flash的大小,nodemcu模块就输入4096,然后回车
第三行是版本号,输入120 然后回车,按一下板子上的flash按键开始刷入,等一会,下图所示就是成功了
然后拔掉模块等下再用
二、树莓派安装Domoticz
直接输入以下命令安装,简单粗暴
sudo curl -L install.domoticz.com | sudo bash
过程会很慢,请耐心等待,等待过后会弹出这个窗口,按回车键确定(由于我已经安装完了,所以下面这图是我从其它地方偷的)
设置http访问和https访问端口(选一个http访问就可以)
http端口(做过魔镜的小伙伴们这里用其它端口代替 如1234端口)
这一步默认就行
按确定就成功了
记住上面的http那个ip和端口,在浏览器输入上面的ip和端口192.168.31.89:8080按回车访问
接下来就进到Domoticz里了
由于是英文,我们要改成中文,如下图所示:
1.选择语言选项
2.Domoticz选择中文
3.填写当地的经纬度(上面的是经度,下面是维度)不知道的去这里查:www.gpsspg.com/maps.htm
4.“应用到设置”
然后界面会变成中文
点 “设置”—“硬件” 添加一个硬件
名称随便填一个
类型我们选择“Dummy (Does nothing, use for virtual switches only)”
然后按“增加”
我们看到增加了一个硬件,点 “创建虚拟传感器”
名称跟上面的填一样,传感器类型选择“开关”然后点“OK”
之后会看到一个提示创建成功
OK,Domoticz平台的配置先到这里
三、ESP8266模块的配置
首先把写入固件的模块连接上电源,然后打开电脑的wifi(没电脑的用手机也可以),列表里会有个叫ESP_0的wifi,连上它,默认密码是configesp
连上去之后浏览器输入默认网关地址192.168.4.1
模块会自动搜索附近wifi,选择你家的wifi,然后把密码填进去,点“connect”连接,连上去之后会出现个倒计时20秒的页面,倒计时结束后会显示一个局域网ip,然后电脑连上你的wifi之后打开这个显示的ip(这个ip就是模块在你的局域网里的ip)
打开后来到config这一栏,这里主要改两个地方“Controller IP”和“Controller Port”
Controller IP填写Domoticz管理页面的ip地址
Controller Port填写Domoticz管理页面的ip的端口
下面的选项默认就行,然后点“Submit”保存
四、NodeMcu模块与Domoticz平台联动
来到“Devices”这一栏,选择“Edit”添加
Device选择“Switch input”
我们回到Domoticz页面,点“设置”—“设备”,看一下我们添加的那个开关的“IDX”的值,记住这个值
把我们刚才看到的IDX值填到下面的的“IDX/Var”里,GPIO选择GPIO-0,然后选择“Submit”保存
然后回到Domoticz页面的“开关”这一栏,找到我们添加的开关设备,然后点击“编辑”
开 触发这一栏填写:(记得把中间的ip地址改成自己的NodeMcu的局域网ip)
http://192.168.2.196/control?cmd=GPIO,0,1
意思就是GPIO0的值为1
关 触发这一栏填写:(记得把中间的ip地址改成自己的NodeMcu的局域网ip)
http://192.168.2.196/control?cmd=GPIO,0,0
同上,意思就是GPIO0的值为0
然后点击“保存”
找个3V的LED灯,负极接在GND针脚,正极接在GPIO-0针脚上,然后点击开关面板的灯泡图标试试能否点亮,不出意外的话是会亮的,成功后把LED灯换成3V的继电器,继电器再并入电器线路中就能用它控制一些小功率的电器了(最大功率电器根据继电器允许的功率计算)
开灯关灯这些都可以进入到Domoticz平台的管理界面进行管理,如果家里有不用的手机或者平板都可以作为控制设备
看官方文档时发现有Domoticz的Android客户端
Domoticz for Android免费版(高级版需要收费,Google play商店售价30多人民币)
iOS设备去应用商店搜索Domoticz有个免费版的
http://pan.baidu.com/share/link?shareid=4011804182&uk=1816891405
局域网任意一台联网设备的浏览器输入Domoticz的管理界面也可以控制
Domoticz平台也可以设置条件,比如当温度传感器温度达到30℃时自动触发风扇开关,门后的红外传感器检测到有人打开门时自动触发灯的开关这些
(Domoticz平台可以接入苹果的HomeKit 后续会把教程写出来)
写出来了,传送门:
Domoticz平台接入苹果的HomeKit使用siri控制
转载请注明出处与原作者!!!谢谢
最后附上NodeMcu模块的GPIO口图
PS:某宝上面卖的esp8266串口模块也可以,便宜不少 如下图,最大长度和1元人民币硬币竖着一样高,很小,具体的接线图参考http://blog.csdn.net/csdnhuaong/article/details/67633566