首页
免费后端云服务
关于
推荐
免费图床源码
Search
1
小程序后端入门系列视频教程【一-微信开发工具介绍】
9,722 阅读
2
微信小程序三级联动之多列选择器
9,606 阅读
3
小程序开发免费后端之神秘利器分享
9,536 阅读
4
Golang-开发企业级资源权限管理【第一步表设计】-1
9,081 阅读
5
学会微信服务端开发第一步
8,979 阅读
日常记录
日常
随笔
Bmob后端云
从零开始学物联网
Serverless实战驾校小程序
心邮
Serverless
向量数据库
登录
Search
Magic
累计撰写
124
篇文章
累计收到
64
条评论
首页
栏目
日常记录
日常
随笔
Bmob后端云
从零开始学物联网
Serverless实战驾校小程序
心邮
Serverless
向量数据库
页面
免费后端云服务
关于
推荐
免费图床源码
搜索到
1
篇与
的结果
2024-10-28
从零开始学物联网-远程点亮一盏灯
作为一个程序员,想要学习物联网控制,并将学习过程记录下来,方便他人查阅。准备硬件:选择ESP8266 12F,它内置WiFi,适合入门。安装工具:使用Arduino IDE进行代码编写和上传。安装驱动与库:使用提供的一键安装包,简化ESP8266驱动和MQTT库的安装。获取Bmob云服务信息:注册并获取MQTT服务的必要信息。编写与上传代码:配置WiFi和MQTT连接,控制ESP8266内置灯。远程控制灯光:通过Bmob云实现远程开关灯。首先我们看最终效果输入on 开灯输入off 关灯这是是最终效果的录制视频https://www.ixigua.com/7403595674341605942?utm_source=iframe_share准备硬件:选择ESP8266 12F,它内置WiFi,适合入门。ESP8266-12F 是一个经济实惠的 WiFi 模块,广泛应用于物联网(IoT)开发。它自带 WiFi 功能,支持 2.4GHz 无线网络连接,适合需要无线通信的小型电子项目。模块体积小巧,拥有多个 GPIO 引脚,可轻松集成到各种硬件项目中。由于其低功耗和强大的处理能力,ESP8266-12F 在远程控制、智能家居、传感器网络等领域得到了广泛应用,成为了物联网开发的首选硬件之一。主要是他便宜,国产,并且最新手友好,他长这样,价格就十几块,网上随便找个店铺即可下单,我这因为购买了一些其他材料,所有价格需要30多安装工具:使用Arduino IDE进行代码编写和上传。这里选择Arduino IDE,下载地址:www.arduino.cc/en/software安装驱动与库:使用提供的一键安装包,简化ESP8266驱动和MQTT库的安装。下载安装后,安装esp8266模块开发工具安装mqtt链接库,由于github 被墙,这里我传个国内代码镜像,封装为bat命令,安装时关闭开发工具https://link.juejin.cn/?target=https%3A%2F%2Fbmob-cdn-31082.bmobpay.com%2Fiot%2Fesp8266_install.zip[图片上传失败...(image-72868c-1725876245397)]我们把代码上次的时候,需要选择我们上传的端口这样我们就可以把代码烧录到esp8266获取Bmob云服务信息:注册并获取MQTT服务的必要信息。登录控制台[图片上传失败...(image-5d830f-1725876245397)]左侧IOT栏目,拿到链接参数编写与上传代码:配置WiFi和MQTT连接,控制ESP8266内置灯。代码直接复制使用,把里面几个参数跟Bmob后端云一致即可// 加载WIFI头文件 #include <ESP8266WiFi.h> // 加载MQTT库文件 #include <PubSubClient.h> // 你的WIFI名称,需要修改 const char* WIFI_SSID = "WiFi名称"; // 你的WIFI密码,需要修改 const char* WIFI_PASSWORD = "WiFi密码"; // Bmob云的物联网地址 const char* MQTT_SERVER = "broker.codenow.cn"; // Bmob云的物联网端口 const int MQTT_PORT = 1883; // 灯光引脚 const int LED = 2; // 用户名,到Bmob云->创建的应用-> IOT -> 连接信息 中获取 #define APPID "603b85d874d1b5ea" // 密码,到Bmob云->创建的应用-> IOT -> 连接信息 中获取 #define APPPASSWORD "19a66167a0eadaca" // 你自己定义的设备类型,方便记忆就好,这里的LINE表示灯光的意思 #define TYPE "LINE" WiFiClient espClient; PubSubClient client(espClient); // 打开灯泡 void turnOnLed() { Serial.println("打开灯光"); digitalWrite(LED, LOW); } // 关闭灯泡 void turnOffLed() { Serial.println("关闭灯光"); digitalWrite(LED, HIGH); } // 配置esp8266的WIFI账号和密码 void setup_wifi() { delay(10); Serial.println(); Serial.print("Connecting to "); Serial.println(WIFI_SSID); // 设置WIFI的账号和密码 WiFi.begin(WIFI_SSID, WIFI_PASSWORD); // 检测WIFI是否联通 while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi已连接"); } // MQTT服务的回调 void callback(char* topic, byte* payload, unsigned int length) { Serial.print(topic); Serial.print(" 主题收到消息"); String message = ""; for (int i = 0; i < length; i++) { message += (char)payload[I]; } Serial.print(message); Serial.println(); if (message == "on") { //如果接收到on字符串,调用开灯方法 turnOnLed();//开灯函数 } else if (message == "off") { //如果接收到off字符串,调用关灯方法 turnOffLed(); } message = ""; } void reconnect() { while (!client.connected()) { Serial.print("正在尝试MQTT连接..."); String client_id = "esp8266client"; client_id += String(WiFi.macAddress()); if (client.connect(client_id.c_str(), APPID, APPPASSWORD)) { Serial.println("正常连接"); //这是你的主题名称 String topic = "devices/" + String(TYPE) + "/" + String(APPID) + "/" + client_id; client.subscribe(topic.c_str()); } else { Serial.print("连接异常,rc="); Serial.print(client.state()); Serial.println(" 5秒后重试"); // 5秒重试 delay(5000); } } } void setup() { pinMode(LED, OUTPUT); // 设置波特率 Serial.begin(115200); // 配置WIFI并连接上网 setup_wifi(); // 连接MQTT服务 client.setServer(MQTT_SERVER, MQTT_PORT); // 设置MQTT消息回掉 client.setCallback(callback); digitalWrite(LED, HIGH); } void loop() { if (!client.connected()) { reconnect(); } client.loop(); } 查看日志查看串口输出的时候,记得选择波特率位115200(代码中设置的)。[图片上传失败...(image-5ebe06-1725876245397)]这样esp8266 就已经链接上mqtt服务。 只要远程下指令,就可以实现开与关开关核心代码if (message == "on") { //如果接收到on字符串,调用开灯方法 turnOnLed();//开灯函数 } else if (message == "off") { //如果接收到off字符串,调用关灯方法 turnOffLed(); } 远程控制灯光:通过Bmob云实现远程开关灯。这样就实现了服务器控制远程开关灯, 后面我们把这个开关操作,使用小程序实现。
2024年10月28日
2,773 阅读
0 评论
48 点赞