首页
免费后端云服务
关于
Search
1
小程序后端入门系列视频教程【一-微信开发工具介绍】
9,812 阅读
2
微信小程序三级联动之多列选择器
9,710 阅读
3
小程序开发免费后端之神秘利器分享
9,632 阅读
4
Golang-开发企业级资源权限管理【第一步表设计】-1
9,174 阅读
5
学会微信服务端开发第一步
9,049 阅读
日常记录
日常
随笔
Bmob后端云
从零开始学物联网
Serverless实战驾校小程序
心邮
Serverless
向量数据库
登录
Search
Typecho
累计撰写
124
篇文章
累计收到
22
条评论
首页
栏目
日常记录
日常
随笔
Bmob后端云
从零开始学物联网
Serverless实战驾校小程序
心邮
Serverless
向量数据库
页面
免费后端云服务
关于
搜索到
2
篇与
的结果
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,815 阅读
0 评论
48 点赞
2024-10-23
XCode15, XCode16版本使用Cocoapods报错解决
XCode15, XCode16版本使用Cocoapods报错解决Xcode版本 Version 16.0 (16A242d)新建一个项目bmob2024071.界面加入一个按钮2.新增一个podfile文件platform :ios, '11.0' # Specify the platform and deployment target target 'bmob202407' do pod 'BmobSDK' end 3.安装pod pod install Analyzing dependencies ――― MARKDOWN TEMPLATE ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ### Command ``` /Users/magic/.rbenv/versions/3.2.5/bin/pod install ``` ### Report * What did you do? * What did you expect to happen? * What happened instead? ### Stack ``` CocoaPods : 1.15.2 Ruby : ruby 3.2.5 (2024-07-26 revision 31d0f1a2e7) [arm64-darwin24] RubyGems : 3.5.22 Host : macOS 15.0.1 (24A348) Xcode : 16.0 (16A242d) Git : git version 2.39.5 (Apple Git-154) Ruby lib dir : /Users/magic/.rbenv/versions/3.2.5/lib Repositories : master - git - git@github.com:CocoaPods/Specs.git @ 3c25b942607c8dc669d5d708aeafaa9067522375 trunk - CDN - https://cdn.cocoapods.org/ ``` ### Plugins ``` cocoapods-deintegrate : 1.0.5 cocoapods-plugins : 1.0.0 cocoapods-search : 1.0.1 cocoapods-trunk : 1.6.0 cocoapods-try : 1.2.0 ``` ### Podfile ```ruby platform :ios, '11.0' # Specify the platform and deployment target target 'bmob202407' do pod 'BmobSDK' end ``` ### Error ``` RuntimeError - `PBXGroup` attempted to initialize an object with unknown ISA `PBXFileSystemSynchronizedRootGroup` from attributes: `{"isa"=>"PBXFileSystemSynchronizedRootGroup", "exceptions"=>["3036C49C2CC74D2A00E71FAF"], "path"=>"bmob202407", "sourceTree"=>"<group>"}` If this ISA was generated by Xcode please file an issue: https://github.com/CocoaPods/Xcodeproj/issues/new /Users/magic/.rbenv/versions/3.2.5/lib/ruby/gems/3.2.0/gems/xcodeproj-1.25.1/lib/xcodeproj/project/object.rb:359:in `rescue in object_with_uuid' /Users/magic/.rbenv/versions/3.2.5/lib/ruby/gems/3.2.0/gems/xcodeproj-1.25.1/lib/xcodeproj/project/object.rb:349:in `object_with_uuid' /Users/magic/.rbenv/versions/3.2.5/lib/ruby/gems/3.2.0/gems/xcodeproj-1.25.1/lib/xcodeproj/project/object.rb:300:in `block (2 levels) in configure_with_plist' /Users/magic/.rbenv/versions/3.2.5/lib/ruby/gems/3.2.0/gems/xcodeproj-1.25.1/lib/xcodeproj/project/object.rb:299:in `each' /Users/magic/.rbenv/versions/3.2.5/lib/ruby/gems/3.2.0/gems/xcodeproj-1.25.1/lib/xcodeproj/project/object.rb:299:in `block in configure_with_plist' /Users/magic/.rbenv/versions/3.2.5/lib/ruby/gems/3.2.0/gems/xcodeproj-1.25.1/lib/xcodeproj/project/object.rb:296:in `each' /Users/magic/.rbenv/versions/3.2.5/lib/ruby/gems/3.2.0/gems/xcodeproj-1.25.1/lib/xcodeproj/project/object.rb:296:in `configure_with_plist' /Users/magic/.rbenv/versions/3.2.5/lib/ruby/gems/3.2.0/gems/xcodeproj-1.25.1/lib/xcodeproj/project.rb:272:in `new_from_plist' /Users/magic/.rbenv/versions/3.2.5/lib/ruby/gems/3.2.0/gems/xcodeproj-1.25.1/lib/xcodeproj/project/object.rb:350:in `object_with_uuid' /Users/magic/.rbenv/versions/3.2.5/lib/ruby/gems/3.2.0/gems/xcodeproj-1.25.1/lib/xcodeproj/project/object.rb:290:in `block in configure_with_plist' /Users/magic/.rbenv/versions/3.2.5/lib/ruby/gems/3.2.0/gems/xcodeproj-1.25.1/lib/xcodeproj/project/object.rb:287:in `each' /Users/magic/.rbenv/versions/3.2.5/lib/ruby/gems/3.2.0/gems/xcodeproj-1.25.1/lib/xcodeproj/project/object.rb:287:in `configure_with_plist' /Users/magic/.rbenv/versions/3.2.5/lib/ruby/gems/3.2.0/gems/xcodeproj-1.25.1/lib/xcodeproj/project.rb:272:in `new_from_plist' /Users/magic/.rbenv/versions/3.2.5/lib/ruby/gems/3.2.0/gems/xcodeproj-1.25.1/lib/xcodeproj/project.rb:213:in `initialize_from_file' /Users/magic/.rbenv/versions/3.2.5/lib/ruby/gems/3.2.0/gems/xcodeproj-1.25.1/lib/xcodeproj/project.rb:113:in `open' /Users/magic/.rbenv/versions/3.2.5/lib/ruby/gems/3.2.0/gems/cocoapods-1.15.2/lib/cocoapods/installer/analyzer.rb:1194:in `block (2 levels) in inspect_targets_to_integrate' /Users/magic/.rbenv/versions/3.2.5/lib/ruby/gems/3.2.0/gems/cocoapods-1.15.2/lib/cocoapods/installer/analyzer.rb:1193:in `each' /Users/magic/.rbenv/versions/3.2.5/lib/ruby/gems/3.2.0/gems/cocoapods-1.15.2/lib/cocoapods/installer/analyzer.rb:1193:in `block in inspect_targets_to_integrate' /Users/magic/.rbenv/versions/3.2.5/lib/ruby/gems/3.2.0/gems/cocoapods-1.15.2/lib/cocoapods/user_interface.rb:64:in `section' /Users/magic/.rbenv/versions/3.2.5/lib/ruby/gems/3.2.0/gems/cocoapods-1.15.2/lib/cocoapods/installer/analyzer.rb:1188:in `inspect_targets_to_integrate' /Users/magic/.rbenv/versions/3.2.5/lib/ruby/gems/3.2.0/gems/cocoapods-1.15.2/lib/cocoapods/installer/analyzer.rb:107:in `analyze' /Users/magic/.rbenv/versions/3.2.5/lib/ruby/gems/3.2.0/gems/cocoapods-1.15.2/lib/cocoapods/installer.rb:422:in `analyze' /Users/magic/.rbenv/versions/3.2.5/lib/ruby/gems/3.2.0/gems/cocoapods-1.15.2/lib/cocoapods/installer.rb:244:in `block in resolve_dependencies' /Users/magic/.rbenv/versions/3.2.5/lib/ruby/gems/3.2.0/gems/cocoapods-1.15.2/lib/cocoapods/user_interface.rb:64:in `section' /Users/magic/.rbenv/versions/3.2.5/lib/ruby/gems/3.2.0/gems/cocoapods-1.15.2/lib/cocoapods/installer.rb:243:in `resolve_dependencies' /Users/magic/.rbenv/versions/3.2.5/lib/ruby/gems/3.2.0/gems/cocoapods-1.15.2/lib/cocoapods/installer.rb:162:in `install!' /Users/magic/.rbenv/versions/3.2.5/lib/ruby/gems/3.2.0/gems/cocoapods-1.15.2/lib/cocoapods/command/install.rb:52:in `run' /Users/magic/.rbenv/versions/3.2.5/lib/ruby/gems/3.2.0/gems/claide-1.1.0/lib/claide/command.rb:334:in `run' /Users/magic/.rbenv/versions/3.2.5/lib/ruby/gems/3.2.0/gems/cocoapods-1.15.2/lib/cocoapods/command.rb:52:in `run' /Users/magic/.rbenv/versions/3.2.5/lib/ruby/gems/3.2.0/gems/cocoapods-1.15.2/bin/pod:55:in `<top (required)>' /Users/magic/.rbenv/versions/3.2.5/bin/pod:25:in `load' /Users/magic/.rbenv/versions/3.2.5/bin/pod:25:in `<main>' ``` ――― TEMPLATE END ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― [!] Oh no, an error occurred. Search for existing GitHub issues similar to yours: https://github.com/CocoaPods/CocoaPods/search?q=%60PBXGroup%60+attempted+to+initialize+an+object+with+unknown+ISA+%60PBXFileSystemSynchronizedRootGroup%60+from+attributes%3A+%60%7B%22isa%22%3D%3E%22PBXFileSystemSynchronizedRootGroup%22%2C+%22exceptions%22%3D%3E%5B%223036C49C2CC74D2A00E71FAF%22%5D%2C+%22path%22%3D%3E%22bmob202407%22%2C+%22sourceTree%22%3D%3E%22%3Cgroup%3E%22%7D%60%0AIf+this+ISA+was+generated+by+Xcode+please+file+an+issue%3A+https%3A%2F%2Fgithub.com%2FCocoaPods%2FXcodeproj%2Fissues%2Fnew&type=Issues If none exists, create a ticket, with the template displayed above, on: https://github.com/CocoaPods/CocoaPods/issues/new Be sure to first read the contributing guide for details on how to properly submit a ticket: https://github.com/CocoaPods/CocoaPods/blob/master/CONTRIBUTING.md Don't forget to anonymize any private data! Looking for related issues on cocoapods/cocoapods... Searching for inspections failed: undefined method `map' for nil:NilClass这个错误,你把项目转为组即可解决1.打开你的 Xcode 项目。 2.在左侧的项目导航器中,右键点击项目文件夹(通常是项目名称)。 3.选择“Convert to Group”(转换为组)。继续pod installDon't forget to anonymize any private data! Looking for related issues on cocoapods/cocoapods... - Cocoapods not working in Xcode 16 macOS 15.0.1 https://github.com/CocoaPods/CocoaPods/issues/12625 [open] [12 comments] a day ago - PBXFileSystemSynchronizedRootGroup causing pod init to fail with CocoaPods 1.15.2a https://github.com/CocoaPods/CocoaPods/issues/12627 [closed] [7 comments] a week ago - pod install has bug https://github.com/CocoaPods/CocoaPods/issues/10723 [closed] [33 comments] 11 Jun 2024 and 2 more at: https://github.com/cocoapods/cocoapods/search?q=%5BXcodeproj%5D%20Unable%20to%20find%20compatibility%20version%20string%20for%20object%20version%20%6077%60.&type=Issues&utf8=✓ [!] [!] Xcodeproj doesn't know about the following attributes {"preferredProjectObjectVersion"=>"77"} for the 'PBXProject' isa. If this attribute was generated by Xcode please file an issue: https://github.com/CocoaPods/Xcodeproj/issues/new [!] [Xcodeproj] Xcode project version (77) is higher than the latest supported by xcodeproj (63).错误已经发生改变, 提示我们本地Xcode版本77太高, pod最新版本最高支持631.找到并打开 `project.pbxproj` 文件,使用文本编辑器(如 sublime之类)。 2.删除以下两行: minimizedProjectReferenceProxies = 1; preferredProjectObjectVersion = 77; 3.更新以下行: objectVersion = 77; 修改为: objectVersion = 63; 提示安装成功>bmob202407 pod install Analyzing dependencies Downloading dependencies Installing BmobSDK (2.4.21) Generating Pods project Integrating client project [!] Please close any current Xcode sessions and use `bmob202407.xcworkspace` for this project from now on. Pod installation complete! There is 1 dependency from the Podfile and 1 total pod installed.安装之后,真机可以,模拟器不行,提示building for ios simulator but linking in object file built for ios m1这样设置即可解决,有更多问题也可以留言给我
2024年10月23日
294 阅读
0 评论
0 点赞