Esp8266 mqtt 步进电机远程控制窗帘

Esp8266 mqtt 步进电机远程控制窗帘使用28BYJ-48步进电机esp8266-12f(或nodemcu)mqtt基于arduinoIDE开发实现通过mqtt发送指令给wifi模块进而控制电机,电机拖动窗帘打开或闭合效果演示地址:链接搭建模型如何制作电动窗帘,牛人给你解释它的原理参考这个视频搭建窗帘模型模型搭建很重要就算电机能够稳定控制但是模型搭建的不好窗帘的打开和关闭都会受到影响电机要粘牢固…

大家好,又见面了,我是你们的朋友全栈君。

使用 28BYJ-48步进电机 esp8266-12f(或nodemcu) mqtt 基于arduino IDE开发实现
通过mqtt发送指令给wifi模块进而控制电机,电机拖动窗帘打开或闭合

效果演示地址:
链接

搭建模型

如何制作电动窗帘,牛人给你解释它的原理
参考这个视频 搭建窗帘模型
enter description here

模型搭建很重要 就算电机能够稳定控制但是模型搭建的不好 窗帘的打开和关闭都会受到影响

  • 电机要粘牢固
  • 绳子要选细的粗糙的(摩擦力大)
  • 窗帘选软纸 或者布
  • 滑轮一定要认真做 很影响转动

我第一次试验论证是否能够行得通的时候 制作了一个窗帘模型,犯了很多错做的也很丑
但是试验成功了!!!
enter description here

第二次我们的窗帘模型是我和另外一个java大佬熬夜做出来的,两个工科生做手工真的是太折磨人了…
enter description here

步进电机原理

28BYJ-48步进电机
enter description here

28BYJ-48的含义为外径28毫米四相八拍式永磁减速型步进电机
对于驱动28BYJ-48步进电机,最常用的方法是使用ULN2003驱动板。
用Arduino开发板的+5V电源直接为ULN2003驱动板供电的方法短时间测试是可以的,但是不要在长时间使用Arduino为ULN2003驱动板进行供电。
enter description here

更详细的原理分析 链接

控制步进电机

电路接线图
enter description here

使用Stepper库
建立步进电机对象
定义电机控制引脚以及电机基本信息。
电机控制引脚为 8,9,10,11
以上引脚依次连接在ULN2003 驱动板 In1, In2, In3, In4
创建电机 对象

示例代码
参考 dianji.ino 学习stepper库的使用方法
创建对象 Stepper steppermotor(STEPS_PER_ROTOR_REV, 8, 10, 9, 11);
其中的第一个参数为 一次转动的步数
在这里可以设置为2048

示例代码

/* Arduino控制28BYJ-48步进电机测试程序 本示例程序旨在演示如何通过Arduino控制28BYJ-48步进电机。 */
 
//本示例程序使用Stepper库
#include 
 
// 定义电机控制用常量
 
// 电机内部输出轴旋转一周步数
const int STEPS_PER_ROTOR_REV = 32; 
 
// 减速比
const int GEAR_REDUCTION = 64;
 
/* * 转子旋转一周需要走32步。转子每旋转一周,电机输出轴只旋转1/64周。 * (电机内部配有多个减速齿轮,这些齿轮会的作用是让转子每旋转一周, * 输出轴只旋转1/64周。) * 因此电机输出轴旋转一周则需要转子走32X64=2048步,即以下常量定义。 */
 
// 电机外部输出轴旋转一周步数 (2048)
const float STEPS_PER_OUT_REV = STEPS_PER_ROTOR_REV * GEAR_REDUCTION;
 
// 定义电机控制用变量
 
// 电机旋转步数
int StepsRequired;
 
// 建立步进电机对象
// 定义电机控制引脚以及电机基本信息。
// 电机控制引脚为 8,9,10,11 
// 以上引脚依次连接在ULN2003 驱动板 In1, In2, In3, In4 
 
Stepper steppermotor(STEPS_PER_ROTOR_REV, 8, 10, 9, 11); 
 
void setup()
{ 
   
//setup函数内无内容
}
 
void loop()
{ 
   
  // 极慢转动4步用于观察ULN2003电机驱动板LED变化
  steppermotor.setSpeed(1);    
  StepsRequired  =  4;
  steppermotor.step(StepsRequired);
  delay(1000);
 
   // 慢速顺时针旋转一圈
  StepsRequired  =  STEPS_PER_OUT_REV; 
  steppermotor.setSpeed(500);   
  steppermotor.step(StepsRequired);
  delay(1000);
  
  // 快速逆时针旋转一圈
  StepsRequired  =  - STEPS_PER_OUT_REV;   
  steppermotor.setSpeed(800);  
  steppermotor.step(StepsRequired);
  delay(2000);
 
}

参考太极创客链接

wifi模块控制电机

依旧使用的stepper库更改了GPIO引脚
创建对象
Stepper steppermotor(STEPS_PER_OUT_REV, D1, D2, D5, D6);
Stepper steppermotor(STEPS_PER_OUT_REV, 5, 4, 14, 12);
(两个一样)

看到国外一个使用nodemcu mqtt 以及 28BYJ-48步进电机的使用方法
更换了引脚 更改了部分参数 成功了

接线图
enter description here
enter description here
(对应GPIO 分别是GPIO 5,GPIO 4, GPIO14, GPIO12)

创建的对象为 Stepper steppermotor(STEPS_PER_OUT_REV, D1, D2, D5, D6);
其中第一个参数设置为200 速度设置80 相比于arduino都比较小
将第一个参数提升到600时电机转不动… 没找到原因

项目参考代码在下方

更多学习教程

ESP开发学习基础知识

基础知识包括对esp模块的认识与了解 mqtt协议的了解,arduino IDE运用代码编写等等。

  1. arduino基础学习
  2. esp系列模块的介绍
  3. mqtt协议的介绍与使用
  4. 利用mqtt esp模块 基于arduino IDE开发方法
  5. esp模块的AT指令 刷固件
  6. esp模块睡眠模式使用
  7. esp8266-01s介绍与使用
  8. esp8266-12f介绍与使用
  9. NodeMcu介绍与使用
esp开发IOT应用

基于esp8266的模块以及其他模块根据实际的应用场景与需求制作的物联网应用

  1. 基于FRID arduino 继电器 电磁锁开发的FRID门禁系统
  2. esp32-cam获取视频流图像处理
  3. 基于步进电机 esp8266 mqtt开发的自动窗帘控制
  4. 基于DHT11 Esp8266 mqtt获取室内温湿度
  5. 基于CCS811 esp8266 mqtt 获取室内空气质量
  6. 基于红外模块 esp8266 mqtt开发的智能遥控控制
  7. 基于ws2812 esp8266 mqtt开发的智能多级照明灯
  8. 基于ws2812 esp8266 mqtt开发的智能多模式氛围灯
  9. 基于mp3player esp8266 mqtt开发的智能语音播报系统
  10. IOT综合应用之智慧教室项目开发

如果以上内容对你有帮助或是对IOT开发感兴趣,欢迎关注我。

本人接下来一段时间承接人脸图像处理,IOT开发等相关项目(毕设 比赛等)
有需要可联系qq:1639206518

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/152469.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python – 0b、0o、0x

    Python – 0b、0o、0xa=0b010b=0o010c=0x010print(type(a),a)print(type(b),b)print(type(c),c)#————-print(0b010&0b111)print(0b001|0b010)print(0b010^0b100)print(~0b001)#原码->补码->求原码(原码的值+符…

    2022年6月24日
    27
  • 网络号和主机号的计算

    网络号和主机号的计算网络号和主机号的计算当前使用的IP地址有4个字节(32)组成,即IPV4编码方式。每个IP地址包换两部分:网络号和主机号。当分配给主机号的二进制位越多,则能标识的主机数就越多,相应地能标识的网络数就越少,反之亦然。IP地址分为五类,A类保留给政府机构,B类分配给中等规模的公司,C类分配给任何需要的人,D类用于组播,E类用于实验,各类可容纳的地址数目不同。A、B、C三类IP地址的特征:当将IP…

    2022年6月24日
    32
  • 网卡bonding模式 – bond0、1、4配置

    网卡bonding简介网卡绑定就是把多张物理网卡通过软件虚拟成一个虚拟的网卡,配置完毕后,所有的物理网卡的ip和mac将会变成相同的。多网卡同时工作可以提高网络速度,还可以实现网卡的负载均衡、冗余。bonding模式1    round-robin(mode=0)轮转策略,轮流在每一个slave网卡上发送数据包,提供负载均衡和容错能力。     

    2022年4月7日
    34
  • Idea实现WebService实例

    Idea实现WebService实例因为工作需要,数据传输部分需要使用webservice实现,经过两天的研究,实现了一个简单的例子,具体方法如下。首先需要新建一个项目,如图:下一步点击finish,然后会生成一个webservice项目,在HelloWorld类里面写自己的方法,在file下编译一下这个类,不编译,idea会提示不通过,编译后需要将为该服务发布WSDL文件,此文件必须生成,如下图:选择需要发

    2022年7月21日
    68
  • 【笔记】嵩天.Python语言程序设计.完成两个简单实例(温度转换和绘图)

    【笔记】嵩天.Python语言程序设计.完成两个简单实例(温度转换和绘图)PyCharm下编写、运行两个实例:温度转换,蟒蛇绘制

    2022年7月6日
    22
  • Jmeter刷csdn博客访问量

    Jmeter刷csdn博客访问量使用Jmeter刷csdn博客访问量首先我们先分析一下该网站的接口情况服务器ip为blog.csdn.net协议为https接口url为/qq_38776582请求方法为GET打开jmeter,分别将参数填写进去:copy请求头参数,填写在HTTP信息头管理器:接下来是最关键的一步,分析博客页面数据:添加边界提取器,提取数据:接下来我们把提取到数据添加到接口中:脚本总…

    2022年6月18日
    26

发表回复

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

关注全栈程序员社区公众号