【好奇心驱动力】ESP8266驱动SG90舵机开关灯

0.前言

ESP8266弄丢了好几个都忘记放在哪,重新买了个typeC接口的方便多了,看到驱动SG90舵机作为智能开关,简单复现了一下,代码比较简单,没有连接小爱同学或者其他语音助手。

1.实验方法

ESP8266连接SG90舵机,连接点灯科技APP(Blinker),远程控制舵机旋转角度,达到开关灯目的。

器材主要包括
ESP8266
SG90舵机(180度)–【推荐买SG90舵机360度】
手机APP

环境搭建
由于新换了台式机,导致arduino的环境需要重新配置,主要涉及8266库需要重新安装,找了一圈才找到一个可用的国内源,备份一下。

https://arduino.me/packages/esp8266.json

线路连接
SG90舵机
黄线–D4(GPIO2–可选其他接口)
红线–3V3
褐线–GND

在这里插入图片描述

程序烧录
内容比较简单,主要是连接WIFI,使用KEY连接BlinkerAPP,新建Blinker组件,定义组件功能
滑块功能比较鸡肋,可以删除,Blinker里好像没有可以调整固定值的按钮,所以前期可以使用滑块调整旋转角度用;初始设置为90°,90°时置于水平,这样0-180°方便调节角度。
开关灯都是固定角度,调整好就可以不用滑块的功能;这里设置的分别是40°和160°。

#include <Servo.h>
#define BLINKER_WIFI
#define BLINKER_MIOT_OUTLET
#include <Blinker.h>char auth[] = "XXXXXXXXXXXX";   //key
char ssid[] = "XXXX";             //wifi名称
char pswd[] = "XXXXXXXX";      //wifi密码Servo myservo;
// 新建组件对象
BlinkerButton Button1("btn-max");   //最大值按钮
BlinkerButton Button2("btn-min");   //最小值按钮
BlinkerButton Button3("btn-set");   //复位-90°
BlinkerSlider Slider3("ser-num");   //滑块int servo_max,servo_min,servo_set,ser_num,time_num;void button1_callback(const String & state) {    //最大值按钮功能BLINKER_LOG("get button state: ", servo_max);myservo.write(servo_max);Blinker.vibrate();
}void button2_callback(const String & state) {   //最小值按钮功能BLINKER_LOG("get button state: ", servo_min);myservo.write(servo_min);Blinker.vibrate();
}void button3_callback(const String & state) {   //重置按钮功能BLINKER_LOG("get button state: ", servo_set);myservo.write(servo_set);Blinker.vibrate();
}void slider3_callback(int32_t value) //滑块功能
{ser_num = value;myservo.write(ser_num);Blinker.delay(500);BLINKER_LOG("get slider value: ", value);
}void setup() {Serial.begin(115200);BLINKER_DEBUG.stream(Serial);Blinker.begin(auth, ssid, pswd);Button1.attach(button1_callback);Button2.attach(button2_callback);Button3.attach(button3_callback);Slider3.attach(slider3_callback);myservo.attach(2); //servo.attach():设置舵机数据引脚myservo.write(90);servo_max=160;servo_min=40;servo_set=90;time_num=2000;}void loop() {Blinker.run();}

APP设置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.实验结果

在这里插入图片描述

3.实验总结

8266连接电脑后莫名反复重启,换了USB口解决问题
舵机塑料齿、塑料舵角不耐用,尤其是塑料舵角容易偏置
Blinker比巴法云方便,整体流程简化了不少,库也比较完善

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/192231.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git企业开发级讲解(五)

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、bug 分⽀二、删除临时分支三、小结 一、bug 分⽀ 假如我们现在正在 dev2 分⽀上进⾏开发…

Leetcode—剑指OfferII LCR 022.环形链表II【中等】

2023每日刷题&#xff08;三十三&#xff09; Leetcode—LCR 022.环形链表II 算法思想 参考k神的博客 实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode *detectCycle(struct List…

jvm 内存模型概述

一、类加载子系统 1、类加载的过程&#xff1a;装载、链接、初始化&#xff0c;其中&#xff0c;链接又分为验证、准备和解析 装载&#xff1a;加载class文件 验证&#xff1a;确保字节流中包含信息符合当前虚拟机要求 准备&#xff1a;分配内存&#xff0c;设置初始值 解析&a…

二、ST-Link驱动的安装

1、灵动mm32单片机 (1)上海灵动微电子股份有限公司 (2)mm32单片机支持ST-Link下载程序。 2、ST-Link驱动的安装 (1)下载地址 ST-Link 官网下载地址 (2)点击获取软件下载ST-Link驱动。(需要登陆ST官网账户) (3)下载后解压&#xff0c;根据电脑位数安装 .exe 文件即可。 6…

亚马逊云Amazon OpenSearch Serverless“利刃在手,‘向量’八方“

全Serverless架构新价值 随着Amazon OpenSearch Serverless正式上线“商用”&#xff0c;亚马逊云科技的全栈“Serverless”应用架构也“初见雏形”&#xff0c;这也意味着&#xff0c;未来企业可以在亚马逊云科技之上简单和轻松的搭建完整的无服务器应用架构。 数据也显示&am…

搜索二叉树(二叉搜索树)的实现(递归与非递归)

一、搜索二叉树的概念 搜索二叉树又称二叉排序树&#xff0c;二叉搜索树&#xff0c;它或者是一棵空树&#xff0c;或者是具有以下性质的二叉树: 若它的左子树不为空&#xff0c;则左子树上所有节点的值都小于根节点的值 若它的右子树不为空&#xff0c;则右子树上所有节点…

LeetCode994.腐烂的橘子

看完题我觉得这不是和上一道岛屿的题一样简单嘛&#xff0c;然后写了将近2个小时才写出来&#xff0c;我的思路就是&#xff0c;用check()先对grid检查一下&#xff0c;是否有以下情况&#xff1a; &#xff08;如果有1的周围都是空&#xff0c;则这个位置用不腐烂&#xff0c;…

cesium雷达效果(脉冲圆)

cesium雷达效果(脉冲圆) 下面富有源码 实现思路 使用ellipse方法加载圆型,修改ellipse中‘material’方法重写glsl来实现当前效果 示例代码 index.html <!DOCTYPE html> <html lang="en"><head>

RT-Thread基于STM32H743的网络通信调试

使用STM32H743开发网络通信&#xff0c;本以为会很简单&#xff0c;实际却遇到好多问题&#xff0c;记录一下&#xff0c;以备后续查看。 1.新建工程&#xff0c;系统版本选择的是4.1.1&#xff0c;芯片型号是STM32H743IIK6. 2.修改系统时钟&#xff0c;使用外部25MHz晶振&…

复旦大学EMBA深度链接深圳科创产业:聚焦智联,产融未来

作为科创成就的经济大区&#xff0c;深圳南山区通过跨界创新研发生态链条&#xff0c;领跑科创产业创新&#xff0c;以187.5平方公里的面积&#xff0c;雄踞着204家上市公司&#xff0c;地均生产总值产出达到了40.7亿元&#xff0c;相当于每平方公里出产超过1家上市公司&#x…

从C语言的面向过程编程过渡理解面向对象编程风格中的封装

黑发不知勤学早&#xff0c;白首方悔读书迟 专栏推荐Easyx学习实践 有所收获希望大家能够三连哇&#xff01;&#xff01;&#xff01; 在C语言中&#xff0c;我们解决一个问题通常是采用在了解了问题如何解决后&#xff0c;设置一个一个的函数&#xff0c;依次调用实现不同的功…

解决:微软在登录时总是弹出需要家长或监护人同意才能使用该账户并且不断循环?

目录 问题来源&#xff1a; 解决办法&#xff1a; 问题来源&#xff1a; 我的edge浏览器账号登录&#xff0c;一直弹出来需要家长或监护人同意才能使用&#xff0c;然后按照提示操作&#xff0c;会一直循环&#xff0c;是个无穷循环。 解决办法&#xff1a; 参考&#xff1…