本文主要讲述利用 NodeMCU-ESP8266 开发板和继电器通过手机 APP “ 点灯 • Blinker ” 制作一款能够由手机控制的WiFi 智能开关,从而实现智能物联。NodeMCU 是基于 Lua 的开源固件,ESP8266-NodeMCU是一个开源硬件开发板,支持WiFi功能,所以在物联网(IOT)领域具有很广泛的用途。
http://dd.clz.me:1080/blinker-2.6.5-3.apkhttp://dd.clz.me:1080/blinker-2.6.5-3.apk
https://apps.apple.com/cn/app/id1498805902https://apps.apple.com/cn/app/id1498805902
blinker · GitHubhttps://github.com/blinker-iot
引脚 | 说明 |
---|---|
DC+ (输入端) | 接直流(DC)电源正极 |
DC- (输入端) | 接直流(DC)电源负极 |
IN (输入端) | 通过高低电平控制继电器的吸合 |
NO (输出端) | 继电器常开端口(吸合后短接) |
COM (输出端) | 继电器公共端口 |
NC (输出端) | 继电器常闭端口(吸合后悬空) |
NodeMCU开发板 | 继电器 | 说明 |
---|---|---|
D1 | NO | 通过开发板D1引脚产生高电平,使常开端口为高电平,从而吸合短接 |
VCC、GND | 开发板和继电器分别接入各自电源 (继电器可引用开发板5V、GND作为电源) |
(1).点击“文件”中的“首选项”,“在其他开发板管理器地址”栏中输入“http://arduino.esp8266.com/stable/package_esp8266com_index.json”,点击“确定”
(2).在“工具”中点击“开发板”,然后点击“开发板管理器”
(3). 在“开发板管理器”中输入“esp8266”并搜索,在搜索结果中找到“esp8266 by ESP8266 Community”点击安装
(4).等待开发板资源安装完成,安装完成如下图所示
把以下代码输入到Arduino IDE中
/*
该代码由孟俊宇工作室根据Arduino IDE中blinker示例修改制作
*/
#define BLINKER_WIFI
#define relay1 D1 //定义引脚
#include <Blinker.h> //引用Blinker库
char auth[] = "在此处输入Blinker密钥"; //Blinker密钥(Secret Key)
char ssid[] = "在此处输入WiFi名称"; //WiFi名称
char pswd[] = "在此处输入WiFi密码"; //WiFi密码
// 新建组件对象
BlinkerButton Button1("relay1");
BlinkerNumber Number1("num-abc");
int counter = 0;
// 按下按键即会执行该函数
void button1_callback(const String & state)
{
BLINKER_LOG("get button state: ", state);
digitalWrite(relay1, !digitalRead(relay1));
}
// 如果未绑定的组件被触发,则会执行其中内容
void dataRead(const String & data)
{
BLINKER_LOG("Blinker readString: ", data);
counter++;
Number1.print(counter);
}
void setup()
{
// 初始化串口
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
BLINKER_DEBUG.debugAll();
// 初始化IO
pinMode(relay1, OUTPUT);
digitalWrite(relay1, HIGH);
// 初始化blinker
Blinker.begin(auth, ssid, pswd);
Blinker.attachData(dataRead);
Button1.attach(button1_callback);
}
void loop() {
Blinker.run();
}
将代码上传至硬件,并将各硬件接通电源进行测试。确保桥接WiFi正常,打开手机APP进行调试即可。
nodemcu8266_v1.2https://docs.ai-thinker.com/_media/esp8266/boards/nodemcu8266_v1.2_e8_a7_84_e6_a0_bc_e4_b9_a6.pdf
nodemcu8266_v1.0https://docs.ai-thinker.com/_media/nodemcu8266_v1.0.pdf
No Title (ai-thinker.com)https://docs.ai-thinker.com/_media/esp8266/boards/nodemcu-8266_v1.0.pdfnodemcu-8266_v1.2_ch340串口芯片_开发板原理图https://docs.ai-thinker.com/_media/esp8266/boards/nodemcu-8266_v1.2_ch340%E4%B8%B2%E5%8F%A3%E8%8A%AF%E7%89%87_%E5%BC%80%E5%8F%91%E6%9D%BF%E5%8E%9F%E7%90%86%E5%9B%BE.pdf
NodeMCU Documentationhttps://nodemcu.readthedocs.io/en/release/
以上为本篇文章的所有内容,如有疑问或提供意见,欢迎指出,谢谢 !!!
文章浏览阅读152次。文件夹1Bayesian model selection贝叶斯模型选择1奥卡姆剃刀Occams razor原理2Computing the marginal likelihood evidence2-1 BIC approximation to log marginal ..._a.students.guide.to.bayesian.statistics
文章浏览阅读1.6w次,点赞7次,收藏58次。RDP是Windows的远程桌面协议。我们要暴力破解3389号端口的前提是对方的3389号端口是开放的,不过大多数情况下电脑是默认关闭的,即使有远程协助的需要也不一定非得要用到3389号端口,开启不仅容易被对方破解,还容易成为肉鸡如果你发现你的端口是开放的,那么我建议你还是关上吧。用nmap查看目标端口是否开放。..._kali 3389
文章浏览阅读4.5k次,点赞5次,收藏33次。Android Studio 基础 之 截图,指定截图区域动态截图目录Android Studio 基础 之 截图,指定截图区域动态截图一、简单介绍二、实现原理三、注意事项四、预览效果五、实现步骤六、关键代码7、附录简版截图下面是简单的只要 x, y, width,heigth 输入进行屏幕截图的代码(也是从上面代码截取出来的,方便后期封装为工具类)一、简单介绍Android 开发中的一些基础操作,使用整理,便于后期使用。本节介绍,在Android中,_android studio 截图
文章浏览阅读3.5k次,点赞3次,收藏23次。1、安卓模拟器使用sudo snap install scrcpy_302.snap --dangerousscrcpy抓取gpio的状态cat sys/kernel/debug/gpio2、调试背光ifconfig -a 查看wifi是否起来fdb111c89802e2bd78ebacaedac8e56ab12704ce lams0c7ba9436091827cc233b197c1432f4af8b0f1fe cq#sudo upgrade_tool di -b boot.img_cat /d/gpio
文章浏览阅读2.4k次。一:导航条的返回按钮在讲导航条的返回按钮之前,先分享一个发现: 导航条自带 pop手势滑动功能,如果你没有自定义“返回”按钮,则可以直接手势滑动。栗子:页面A push到页面 B, B要pop回到A,在没有自定义返回按钮的情况下,可以直接点击导航条的Back按钮,也可以讲手指放在屏幕左边,向右滑动屏幕,即可pop回A。注:如果自定义了导航条的返回按钮,则滑动功能消失_返回按钮一般是什么颜色
文章浏览阅读762次。判断用户是否中止并离开了RESPONSE.ISCLIENTCONNECTED
文章浏览阅读348次。本章节的阅读对象是对机器学习和 TensorFlow 都不太了解的新手.就像我们学习编程的第一步往往是学习敲出 "Hello World" 一样,机器学习的入门就要知道 MNIST.MNIST 是一个入门级的计算机视觉数据集,它包含各种手写数字图片:它也包含每一张图片对应的标签,告诉我们这个是数字几;比如,上面这四张图片的标签分别是 5, 0, 4, 1。在此教程中,我们将训练一个机器学习模型用于..._python 自己拍摄手写数字的图片。根据前面训练得到的分类器,自行设计数据预处理流
文章浏览阅读2k次。我正在创建一个界面,我需要打开一个新的窗口,点击一个按钮。所以我创建了主窗口,创建了所有按钮,并在一个类下创建了新窗口。我不完全确定是否需要,但我也会包括这一部分信息。对python来说是新的,如果它充满了错误,那么很抱歉。如果有人也能回答在打开另一个窗口时如何隐藏主菜单,那就太好了。干杯。import wxversionwxversion.select("2.8")import wxclass ..._wxpython点击按钮出现新窗口
文章浏览阅读3.4k次,点赞3次,收藏29次。一.单选题二.填空题三.判断题一.单选题静态链接是在( )进行的。A、编译某段程序时B、装入某段程序时C、紧凑时D、装入程序之前Pentium处理器(32位)最大可寻址的虚拟存储器地址空间为( )。A、由内存的容量而定B、4GC、2GD、1G分页系统中,主存分配的单位是( )。A、字节B、物理块C、作业D、段在段页式存储管理中,当执行一段程序时,至少访问()次内存。A、1B、2C、3D、4在分段管理中,( )。A、以段为单位分配,每._系统抖动现象的发生由什么引起的
文章浏览阅读2.4k次。在实际的工作生产中,零件的加工制造一般都需要二维工程图来辅助设计。UG NX 的工程图主要是为了满足二维出图需要。在绘制工程图时,需要先确定所绘制图形要表达的内容,然后根据需要并按照视图的选择原则,绘制工程图的主视图、其他视图以及某些特殊视图,最后标注图形的尺寸、技术说明等信息,即可完成工程图的绘制。1.视图选择原则工程图合理的表达方案要综合运用各种表达方法,清晰完整地表达出零件的结构形状,并便于看图。确定工程图表达方案的一般步骤如下:口分析零件结构形状由于零件的结构形状以及加工位置或工作位置的不._ug-nx工程图
文章浏览阅读920次,点赞29次,收藏18次。原文《智能制造数字化工厂智慧供应链大数据解决方案》PPT格式主要从智能制造数字化工厂智慧供应链大数据解决方案框架图、销量预测+S&OP大数据解决方案、计划统筹大数据解决方案、订单履约大数据解决方案、库存周转大数据解决方案、采购及供应商管理大数据模块、智慧工厂大数据解决方案、设备管理大数据解决方案、质量管理大数据解决方案、仓储物流与网络优化大数据解决方案、供应链决策分析大数据解决方案进行建设。适用于售前项目汇报、项目规划、领导汇报。
文章浏览阅读2w次,点赞38次,收藏102次。在服务器端,socket()返回的套接字用于监听(listen)和接受(accept)客户端的连接请求。这个套接字不能用于与客户端之间发送和接收数据。 accept()接受一个客户端的连接请求,并返回一个新的套接字。所谓“新的”就是说这个套接字与socket()返回的用于监听和接受客户端的连接请求的套接字不是同一个套接字。与本次接受的客户端的通信是通过在这个新的套接字上发送和接收数_当在函数 'main' 中调用 'open_socket_accept'时.line: 8. connection request fa