当前位置: 首页 > article >正文

ESP8266+Blinker打造智能家居远程控制开关

1. 从零开始为什么选择ESP8266和Blinker如果你对智能家居感兴趣想自己动手做个远程开关控制家里的灯、风扇或者小电器但又觉得那些成品智能插座太贵或者功能不够灵活那你今天算是来对地方了。我折腾智能硬件这么多年发现ESP8266这个小玩意儿配合Blinker这个平台绝对是新手入门智能家居DIY的“黄金搭档”。成本可能就十几块钱但能实现的功能足够让你玩上好一阵子。先说说ESP8266你可以把它理解为一个“会联网的单片机”。它本身是个微控制器能写程序控制引脚输出高低电平也就是开关信号最关键的是它自带Wi-Fi功能出厂价也就一杯奶茶钱。这意味着它天生就是为了物联网而生的让你几十行代码就能把家里的普通电器变成“联网智能设备”。再说说Blinker你可以把它看作一个“智能家居的快速搭建平台”。它解决了一个最头疼的问题手机APP和硬件设备之间的通信。自己从零开发一个APP那得学安卓、iOS开发门槛太高。Blinker提供了一个现成的手机APP我们只需要在硬件端写一点点代码告诉Blinker“我这个引脚是开关”就能在APP上生成一个对应的控制按钮。它就像一座桥把复杂的网络通信、数据协议封装好了我们只管在桥的两头简单配置就行。所以这个组合的优势就非常明显了硬件成本极低、软件开发门槛极低、上手速度极快。你不需要懂复杂的网络协议比如MQTT也不用租服务器甚至第一次尝试从硬件接线到手机控制成功顺利的话半小时内就能搞定。这种即时的成就感是坚持玩下去的最大动力。接下来我就带你一步步走完这个充满乐趣的过程。2. 动手前的准备硬件与软件清单万事开头准备齐全才能事半功倍。这部分我会把需要的东西列清楚并分享一些我踩过坑才总结出来的选购和准备经验。2.1 硬件清单买对不买贵ESP8266开发板这是核心。市面上最常见的是NodeMCU和WeMos D1 mini这两种开发板。它们都基于ESP8266芯片但集成了USB转串口芯片和稳压电路用一根Micro-USB线就能连接电脑供电和下载程序对新手极其友好。我个人的经验是初期买NodeMCU因为它引脚排针是焊好的而且板载LED灯在GPIO2D4引脚上方便我们做测试。价格一般在15-25元之间。数据线一条可靠的Micro-USB数据线。注意很多老旧的数据线只能充电不能传数据务必确保你的线可以用来传输数据。我家里就常备几条手机原装线专供开发板使用。电脑Windows、Mac或Linux系统都可以我们的主要操作平台是Arduino IDE。手机安卓或iOS均可用于安装Blinker APP。受控设备可选用于后续扩展比如你想控制的台灯、小风扇。这里涉及强电220V安全新手强烈建议从控制5V的USB小灯、电脑风扇等低压直流设备开始。如果一定要控制台灯必须配合继电器模块使用切记安全第一2.2 软件准备搭建顺手的开发环境软件主要是两块给电脑装上的Arduino IDE和给手机装上的Blinker APP。1. Arduino IDE安装与ESP8266支持Arduino IDE是我们用来给ESP8266写程序、编译并上传的工具。首先去Arduino官网下载安装。安装好后打开它我们需要添加对ESP8266开发板的支持。 具体操作是点击文件-首选项在“附加开发板管理器网址”里填入http://arduino.esp8266.com/stable/package_esp8266com_index.json然后点击工具-开发板-开发板管理器搜索“esp8266”找到并安装“esp8266 by ESP8266 Community”这个包。这个过程可能需要一点时间取决于你的网络。安装成功后你就能在开发板列表里看到各式各样的ESP8266板子了。2. 安装Blinker库库文件相当于别人写好的功能模块我们直接调用能省下大量时间。在Arduino IDE里点击项目-加载库-管理库...打开库管理器。在搜索框输入“Blinker”找到“Blinker”这个库作者是blinker点击安装。安装成功后你就可以在文件-示例菜单里找到Blinker提供的丰富例程了。3. 手机安装Blinker APP直接在手机应用商店苹果App Store或各大安卓市场搜索“点灯Blinker”认准那个蓝色图标的应用下载安装即可。这个APP就是我们未来远程控制的“遥控器”。3. 核心第一步获取设备密钥与网络配置硬件连好了软件装好了现在我们要让ESP8266和Blinker云平台“认识”彼此。它们需要一个唯一的“接头暗号”这就是设备密钥Auth Key。打开手机上的Blinker APP首次使用需要注册/登录。进入主界面后点击右上角的“”号添加设备。选择【独立设备】。选择【网络接入】这里指的是设备通过Wi-Fi联网也是我们最常用的方式。点击后APP会自动生成一串长长的、由字母和数字组成的密钥并提示你复制。务必立即点击“复制”然后妥善保存到电脑的记事本里。这个密钥是你的设备在Blinker平台上的唯一身份证一旦丢失这个设备配置就作废了需要重新生成。获取密钥后先别急着退出。留意一下你刚才创建的设备已经出现在“我的设备”列表里了状态是“离线”。因为我们还没把密钥配置到ESP8266里它当然还连不上。接下来是关键的网络配置。你的ESP8266需要连接到一个Wi-Fi网络才能上网。这里有个新手必坑指南必须使用2.4GHz频段的Wi-Fi。很多新款路由器会默认开启双频合一一个Wi-Fi名同时包含2.4G和5G或者单独有一个5G Wi-Fi。ESP8266目前普遍不支持5GHz网络。请确保你的手机能连接到一个纯2.4G的Wi-Fi信号。Wi-Fi名称SSID和密码不要包含中文或特殊字符。最好就是纯英文和数字。比如“TP-LINK_123”就比“我家Wi-Fi”要靠谱得多。可以使用手机热点。如果你家里的路由器配置复杂用手机开个热点给ESP8266连接是最快最省事的方法。同样热点的名称和密码也要遵循上面的规则。4. 程序烧录让硬件“活”起来这是将我们的想法注入硬件的关键一步跟着我做一步步来基本不会出错。4.1 开发板与端口选择用USB线把ESP8266开发板连接到电脑。打开Arduino IDE。在工具-开发板中选择你对应的板子。如果你买的是NodeMCU就选择“NodeMCU 1.0 (ESP-12E Module)”。如果是其他板子就根据型号选择不确定的话选“Generic ESP8266 Module”通常也兼容。在工具-端口中选择正确的COM口Windows或串口Mac/Linux。如果你不确定是哪个有个小技巧在Windows上可以打开设备管理器查看“端口COM和LPT”拔插一下ESP8266看哪个COM口出现或消失那就是它。Mac/Linux可以在终端用ls /dev/cu.*或ls /dev/tty*命令查看。4.2 修改并上传示例程序现在我们打开Blinker库提供的“Hello World”例程。点击文件-示例-Blinker-Blinker_Hello-Hello_Wifi。你会看到一段代码。我们需要修改的只有三个地方它们通常都在代码开头的定义部分char auth[] 你的设备密钥; // 粘贴你从APP复制的密钥 char ssid[] 你的Wi-Fi名称; // 你的2.4G Wi-Fi名 char pswd[] 你的Wi-Fi密码; // 你的Wi-Fi密码把auth[]、ssid[]和pswd[]这三个双引号里的内容替换成你自己的信息。注意标点符号都是英文的别把中文引号粘贴进去。接下来是控制引脚的修改。默认例程控制的是板载LED灯对应的引脚是LED_BUILTIN在NodeMCU上这个常量对应的是GPIO2也就是板子上标记的D4引脚。#define LED_BUILTIN 2 // NodeMCU上D4引脚对应GPIO2 BlinkerButton Button1(btn-abc); // 按钮组件键名为btn-abc如果你想控制其他引脚比如想用D1引脚GPIO5来控制一个外接的LED你需要做两件事把程序中所有出现LED_BUILTIN的地方比如pinMode(LED_BUILTIN, OUTPUT);和digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));替换成目标引脚的GPIO编号。例如D1引脚对应GPIO5就改成5。记得用杜邦线把你的外接设备正确连接到开发板的对应引脚和GND地线上。修改无误后点击Arduino IDE左上角的上传按钮向右的箭头。IDE会先编译代码然后通过串口烧录到ESP8266中。看到底部状态栏显示“上传成功”后按一下开发板上的RST复位按键。这时板载LED可能会快速闪烁几下这是在连接Wi-Fi。如果连接成功LED会进入缓慢闪烁的“呼吸”状态表示设备已经联网并待命。5. 手机APP配置打造你的专属遥控界面硬件端程序跑起来了现在回到手机让APP界面和硬件功能匹配上。打开Blinker APP你应该会看到之前添加的那个设备状态已经从“离线”变成了“在线”。点击进入设备控制界面现在是一片空白需要我们添加控件。点击右上角的编辑图标通常是一个铅笔或齿轮形状进入界面编辑模式。屏幕下方会出现一堆组件比如按钮、滑块、文本、图表等。因为我们程序里用的是**按钮Button**组件所以我们就点击添加一个“按键”。添加后屏幕上会出现一个默认的按钮图标。关键步骤来了点击这个新添加的按钮图标进入它的详细设置。在设置里找到“组件键名”或“Data键名”这个输入框。这里填写的键名必须和程序里定义按钮时的键名完全一致回顾一下我们的示例程序BlinkerButton Button1(btn-abc);这里的btn-abc就是键名。所以在APP里这个按钮的组件键名就必须设置为btn-abc。这是APP和硬件程序能够正确配对的唯一标识就像对暗号一样对不上就没反应。设置好键名后你可以尽情自定义这个按钮的外观改个名字叫“卧室顶灯”换个喜欢的颜色选择按下时显示“开”还是“关”。设置完成后点击右上角的“√”保存退出编辑模式。现在激动人心的时刻到了点击屏幕上这个你刚刚配置好的按钮你会发现远处ESP8266开发板上的那颗LED灯应声而亮/灭这意味着你已经成功通过互联网用手机控制了一个物理设备。这种跨越空间的操控感就是物联网最基础的魅力。6. 功能扩展与实战技巧基础开关实现了但我们的玩法绝不止于此。下面分享几个我常用的扩展方向和避坑经验。6.1 控制更多设备与继电器使用一个ESP8266有多个数字引脚如D1, D2, D3, D4, D5等意味着你可以同时控制多个开关。在程序里你可以定义多个BlinkerButton对象给每个分配不同的键名如btn-light, btn-fan并绑定到不同的GPIO引脚上。在APP里就添加多个按钮并分别设置对应的键名即可。如果你想控制家里的台灯、落地扇等220V交流电器继电器模块是必须的。ESP8266的GPIO引脚输出是3.3V直流电无法直接控制220V交流电。继电器相当于一个用弱电3.3V控制强电220V通断的电子开关。接线时将ESP8266的GPIO引脚连接到继电器模块的“IN”信号针脚将电器的火线断开串联进继电器的“常开”端子。操作强电务必断电进行确保安全如果不熟悉请务必在有经验的人指导下操作。6.2 实现状态同步与反馈单纯的开关控制有个问题你在APP上按了开关但你不知道设备当前实际是开还是关尤其是网络延迟或误操作时。Blinker支持状态同步。你可以在ESP8266程序里不仅响应APP的指令去改变引脚状态同时也在状态改变后将这个状态值主动“汇报”给APP。例如在按钮的回调函数里当你点亮LED后可以加一行Button1.print(on)熄灭后加Button1.print(off)。在APP按钮组件的设置里开启“文本数据”显示它就能实时显示从硬件上报的“on”或“off”文本让你一目了然。6.3 常见问题与排查思路玩的过程中难免遇到问题别慌大部分都能解决设备一直离线首先检查Wi-Fi配置名称密码是否正确、2.4G网络。然后观察板载LED指示灯。上电后快速闪烁是正在连接Wi-Fi连接成功后应变为慢闪。如果一直快闪就是Wi-Fi连接失败。可以打开Arduino IDE的串口监视器工具-串口监视器波特率选115200查看ESP8266打印出来的调试信息里面会明确告诉你连接失败的原因。APP按键无反应这是最常遇到的问题。99%的原因都是APP里按钮的“组件键名”和程序里定义的键名不匹配。请像校对密码一样一个字母一个字母地检查两者是否完全一致包括大小写。另外确保程序上传后按了RST复位键重启。控制有延迟免费版的Blinker服务数据走公开的互联网延迟在1-3秒内是正常现象。如果延迟特别大检查你的网络环境或者尝试将设备密钥和Wi-Fi信息重置后重新配置。我自己在项目里用这个组合做过智能鱼缸灯光控制、办公室咖啡机远程预热、甚至老家温室大棚的通风提醒。它的核心价值在于“快速原型验证”——当你有一个智能硬件的点子用ESP8266Blinker可能一杯咖啡的功夫就能做出一个能远程控制的demo这种效率是其他方案很难比拟的。当你玩熟了还可以去研究Blinker提供的更多组件比如数据图表、语音控制、定时任务甚至结合第三方平台实现更复杂的自动化那又是一个更广阔的世界了。

相关文章:

ESP8266+Blinker打造智能家居远程控制开关

1. 从零开始:为什么选择ESP8266和Blinker? 如果你对智能家居感兴趣,想自己动手做个远程开关,控制家里的灯、风扇或者小电器,但又觉得那些成品智能插座太贵,或者功能不够灵活,那你今天算是来对地…...

OpenBMC实战指南(一):obmc-console服务端与客户端的深度解析

1. 初识obmc-console:它到底是什么,能帮你做什么? 如果你刚开始接触OpenBMC,可能会被一堆服务名搞得晕头转向。今天咱们就来聊聊其中一个非常核心,但又常常被误解的组件:obmc-console。简单来说&#xff0c…...

Ubuntu环境下离线部署Docker生态全攻略:从安装到镜像迁移

1. 为什么需要离线部署Docker?从企业内网说起 大家好,我是老张,在运维和开发这个行当里摸爬滚打了十几年,经手过不少企业级项目。今天想和大家聊聊一个非常实际,但又常常让新手头疼的场景:在完全没有外网的…...

【LWIP】MCU通过ICMP协议实现主动PING检测网络设备状态

1. 为什么你的MCU需要主动PING?一个真实的故事 大家好,我是老张,在嵌入式网络这块摸爬滚打了十几年。今天想和大家聊聊一个看似简单,但在实际项目中却至关重要的功能:让MCU主动去PING网络里的其他设备。 你可能已经用L…...

Flutter 三方库 dart_json_annotations 的鸿蒙化适配指南 - 定义严谨的数据契约、在鸿蒙端实现自动化 JSON 注解实战

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net Flutter 三方库 dart_json_annotations 的鸿蒙化适配指南 - 定义严谨的数据契约、在鸿蒙端实现自动化 JSON 注解实战 前言 在进行 Flutter for OpenHarmony 的全场景应用开发时&#xff0…...

一文看懂AI智能体协议家族:MCP、A2A、ACP全解析,小白程序员必收藏

在AI智能体(Agent)迅猛发展的当下,MCP、A2A、ACP、UTCP、ANP……各种协议层出不穷,几乎每隔一段时间,科技公司就会为“字母家族”增添新成员。归根结底,所有AI智能体协议的目标都是标准化智能体的通信方式&…...

拒绝黑盒!一文看懂大模型底层原理与产品区别,小白程序员必收藏

在当今数字化时代,AI 大模型早已不是陌生词汇 —— 从日常聊天的 ChatGPT,到帮我们处理工作的智能助手,它正悄悄改变着我们的生活与工作节奏。但对大多数人来说,AI 大模型就像个 “黑盒子”:知道它好用,却搞…...

Flutter 三方库 w_transport 的鸿蒙化适配指南 - 构建高可靠网络传输层、实现鸿蒙端复杂协议交互实战

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net Flutter 三方库 w_transport 的鸿蒙化适配指南 - 构建高可靠网络传输层、实现鸿蒙端复杂协议交互实战 前言 在开发 Flutter for OpenHarmony 大型商业应用时,简单的 HTTP 请求…...

Flutter 三方库 codenic_bloc_use_case 的鸿蒙化适配指南 - 践行整洁架构、在 BLoC 中优雅封装鸿蒙业务用例实战

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net Flutter 三方库 codenic_bloc_use_case 的鸿蒙化适配指南 - 践行整洁架构、在 BLoC 中优雅封装鸿蒙业务用例实战 前言 在进行 Flutter for OpenHarmony 的大型项目开发时,复杂…...

Flutter 三方库 kiss_dependencies 的鸿蒙化适配指南 - 践行极简依赖注入、实现鸿蒙跨平台工程的高效解耦

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net Flutter 三方库 kiss_dependencies 的鸿蒙化适配指南 - 践行极简依赖注入、实现鸿蒙跨平台工程的高效解耦 前言 在 Flutter for OpenHarmony 的实际开发中,随着业务逻辑从单一…...

3秒解锁百度网盘资源:零技术门槛的提取码查询工具使用指南

3秒解锁百度网盘资源:零技术门槛的提取码查询工具使用指南 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 资源获取的隐形墙:你是否也遇到这些困境? 想象这样的场景:设计师小陈…...

200年前的蒸汽机工人,其实早就预言了今天程序员的命运

最近看到一篇很有意思的文章,作者在读 OpenAI 关于“线束工程”(Harness Engineering)的博客时,突然意识到一件事:这个模式他见过,不止一次,而是三次。这三次跨越了两百多年,但本质上…...

告别提取码焦虑:零门槛百度网盘资源解锁工具让你秒级获取文件

告别提取码焦虑:零门槛百度网盘资源解锁工具让你秒级获取文件 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 一、被提取码困住的三个真实故事 医生王主任的紧急时刻 凌晨两点,急诊科王主任收到同事发…...

Windows Subsystem for Android (WSA) 实战指南:从环境搭建到高效应用

Windows Subsystem for Android (WSA) 实战指南:从环境搭建到高效应用 【免费下载链接】WSA Developer-related issues and feature requests for Windows Subsystem for Android 项目地址: https://gitcode.com/gh_mirrors/ws/WSA 一、WSA技术解析&#xff…...

SpringBoot + 腾讯地图实战:打造全能型地理位置服务平台,开箱即用!

大家好,我是小悟。 什么是腾讯地图 腾讯地图(Tencent Map)是腾讯公司推出的一款数字地图服务,提供丰富的地图展示、定位、搜索、导航等功能。作为国内领先的地图服务提供商,腾讯地图拥有以下特点: 海量数据…...

基于STM32的多屏可编程HID控制键盘设计

1. 项目概述MultiPad 是一款基于 STM32F103VET6 微控制器构建的高自由度桌面控制键盘系统,其设计目标是为开发者、内容创作者及效率追求者提供一套可深度定制、即插即用、软硬协同的物理交互层解决方案。与传统机械键盘或商用宏键盘不同,MultiPad 并非以…...

De Boor算法实战:从理论到B样条曲线点计算的完整实现

1. 从“搭积木”到“画曲线”:为什么你需要De Boor算法? 如果你玩过3D建模、做过动画路径设计,或者搞过机器人轨迹规划,那你肯定遇到过“画一条光滑曲线”这个看似简单、实则让人头疼的问题。直接用直线段连接控制点?太…...

信号与系统 - 从方波到频谱:周期信号傅里叶级数的几何与物理诠释

1. 从方波说起:一个工程直觉的切入点 很多朋友一听到“傅里叶级数”、“频谱”这些词,第一反应可能就是头疼,满眼的积分号和复数,感觉离实际工程应用很远。我刚开始学信号与系统的时候也是这种感觉,直到我遇到了方波这…...

Windows系统下Typora的安装与激活全流程解析

1. 从零开始:为什么选择Typora以及如何获取它 如果你经常需要写点东西,无论是技术文档、学习笔记,还是日常的随笔,那你大概率听说过Markdown。这种用简单符号就能搞定排名的轻量级标记语言,简直是文字工作者的福音。而…...

小学生玩转Arduino---------智能避障小助手

1. 从“倒车指挥员”到“智能避障小助手” 上次我们一起做了一个“倒车指挥员”,用超声波测距器和蜂鸣器模拟了倒车雷达,是不是觉得特别酷?很多小朋友做完之后跑来问我:“老师,这个只能装在‘车’后面吗?能…...

Redis单机多实例部署:从端口隔离到资源优化实战

1. 为什么要在单台机器上跑多个Redis?聊聊我的真实经历 你可能觉得,一台服务器上装一个Redis,让它监听默认的6379端口,这不是天经地义的事情吗?我以前也是这么想的,直到我遇到了下面这些“甜蜜的烦恼”。 最…...

VideoAgentTrek Screen Filter 模型版本管理与回滚策略

VideoAgentTrek Screen Filter 模型版本管理与回滚策略 最近在星图GPU平台上部署VideoAgentTrek Screen Filter模型,遇到了一个挺实际的问题:新版本上线后,效果反而不如老版本稳定,想退回去还挺麻烦。这让我意识到,模…...

Thonny IDE:专为Python初学者设计的轻量级开发环境

1. 为什么说Thonny是Python初学者的“梦中情器”? 如果你刚刚接触编程,面对满屏的代码和复杂的开发工具,是不是感觉有点无从下手?别担心,这种感觉每个程序员都经历过。我刚开始学Python那会儿,光是配置环境…...

基于立创·天猛星MSPM0G3507开发板的电机PID控制实战:编码器测速、定距与曲线显示

基于立创天猛星MSPM0G3507开发板的电机PID控制实战:编码器测速、定距与曲线显示 最近有不少参加电赛或者刚开始学电机控制的朋友问我,PID算法听起来挺复杂,到底怎么在单片机上跑起来,又怎么调参呢?正好,我手…...

突破百度网盘限速壁垒:baidu-wangpan-parse直链解析技术全攻略

突破百度网盘限速壁垒:baidu-wangpan-parse直链解析技术全攻略 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 在数字化协作时代,百度网盘作为国内用户…...

Python flask 大学生运动会管理系统的分析与设计

目录项目技术支持可定制开发之功能创新亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作项目技术支持 前端开发框架:vue.js 数据库 mysql 版本不限 数据库工具:Navicat/SQLyog/ MySQL Workbench等都可以 后端语言框架支持&am…...

Stable Yogi Leather-Dress-Collection实战案例:ACG周边设计师的皮衣风格探索

Stable Yogi Leather-Dress-Collection实战案例:ACG周边设计师的皮衣风格探索 1. 引言:当二次元角色穿上定制皮衣 作为一名ACG周边设计师,你是否曾为笔下角色千篇一律的服装风格而苦恼?或者,在构思新的角色设定时&am…...

突破式重构:GHelper轻量级硬件控制工具的性能优化革命

突破式重构:GHelper轻量级硬件控制工具的性能优化革命 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项目地址…...

自定义字面量实战

1、非修改序列算法这些算法不会改变它们所操作的容器中的元素。1.1 find 和 find_iffind(begin, end, value):查找第一个等于 value 的元素,返回迭代器(未找到返回 end)。find_if(begin, end, predicate):查找第一个满…...

从协议到PCB:PCIe高速硬件设计实战指南

1. 从协议到PCB:为什么PCIe硬件设计是个“瓷器活” 大家好,我是老张,在高速硬件设计这个行当里摸爬滚打了十几年,从早期的PCIe 2.0一路做到现在的PCIe 5.0,踩过的坑比走过的路还多。今天想和大家聊聊一个听起来高大上、…...