10

我的创客项目:物联网“物理”开关

 2 years ago
source link: https://www.taholab.com/23457
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

我的创客项目:物联网“物理”开关

By: taho
On: 2021年8月17日
Tagged: 创客, 生活记录
With: 0 Comments

很多家用电器都是物理按键式的,而且不带智能功能。如果有“机器人”帮我们按一下多好。

还有台式电脑,开机总得按开机键才可以,要改造只能开机,就得打开机箱,插线,很不友好。

于是,我就想能不能造一个物理按键,这个物理按键可以进行物联网控制。于是我找到了如下的电机:

O1CN01V2cJqw27Zwdnl9ctL_107357812.jpg

推拉式小型电磁铁 通电推出/断电复位电磁铁 DC5V-DC12V 行程5mm

ARVE Error: Invalid URL https://www.taholab.com/wp-content/uploads/2021/08/20210817-第1版.mp4 in mp4


我使用的是NodeMCU单片机,以下是本次实验的代码:

Arduino
#define BLINKER_WIFI  /*MQTT协议所需要的宏定义*/
#include <ESP8266WiFi.h>
#include <Blinker.h> /*blinker的头文件调用*/
char auth[] = "保密"; /*设备的安全密钥,在添加设备时选择电灯科技后生成,生成后用新密钥修改此处*/
char ssid[] = "保密";      /*修改为本地WiFi的名称*/
char pswd[] = "保密";  /*修改为本地WiFi的密码*/
// 新建组件对象
BlinkerButton Button1("btn-abc");
BlinkerNumber Number1("num-abc");
int counter = 0;
int control_port = D5; /*继电器控制端口*/
int power_port = D6;   /*供电端口*/
/* 按下按键即会执行该函数*/
void button1_callback(const String & state)  /*理解成这是一个中断调用函数 state 是调用中断后手机app发来的值*/
    BLINKER_LOG("get button state: ", state); /*在blinker和Monitor(监视器的意思)上显示这一项*/
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));/*按一次小灯状态取反一次 亮就变成灭 灭就变成亮*/
    digitalWrite(control_port, !digitalRead(control_port));
    delay(300);
    digitalWrite(control_port, !digitalRead(control_port));
    digitalWrite(power_port, !digitalRead(control_port));
/* 如果未绑定的组件被触发,则会执行其中内容*/
void dataRead(const String & data)
    BLINKER_LOG("Blinker readString: ", data);
    counter++;
    Number1.print(counter);
void setup()
    Serial.begin(9600);
    BLINKER_DEBUG.stream(Serial);
    BLINKER_DEBUG.debugAll();
    pinMode(LED_BUILTIN, OUTPUT);/*LED灯通过继电器接D2引脚,给LED灯供电流*/
    pinMode(control_port, OUTPUT);/*网络端口引脚通过电流*/
    pinMode(power_port, OUTPUT);/*接地引脚通电流*/
    digitalWrite(LED_BUILTIN, HIGH);/*给LED灯提供5v电压*/
    digitalWrite(control_port, LOW);/*将该引脚设置为HIGH(5v)*/
    digitalWrite(power_port, LOW);/*将该引脚设置为HIGH(5v)*/
    Blinker.begin(auth, ssid, pswd);
    Blinker.attachData(dataRead);
    Button1.attach(button1_callback);
void loop() {
    Blinker.run();

装电机的底座,我3D打印出来了:

20210817172431.jpg
20210817172337.jpg

ARVE Error: Invalid URL https://www.taholab.com/wp-content/uploads/2021/08/底座.mp4 in mp4

凌乱的桌面:

20210817172343.jpg
2021-08-17

发表评论 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

评论

显示名称 *

电子邮箱地址 *

网站地址

在此浏览器中保存我的显示名称、邮箱地址和网站地址,以便下次评论时使用。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK