整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

内容创作者初体验:三星SD卡PRO Plus的“变与

内容创作者初体验:三星SD卡PRO Plus的“变与不变”

济生活的富足让内容创作领域,出现了久违的百家争鸣之势,细数近年来内容平台的种类和数量,以及趋势,就可以看到内容创作的生命力和影响力不断在提升。而内容创作的背后,更依赖的是人和工具,是他们联合创造了时下丰富多彩、百花绽放的内容形态和展现形式。

专职内容创作人——小杰

其中,用于储存和记录原生内容,为后期处理提供原始数据的存储卡产品,是我们最应该关注却最被忽略的内容工具。为了探寻存储卡对于内容创作的重要性,我们邀请了一位长期处于一线内容创作的专职创作人——小杰,一同体验了不久前刚刚发布的三星PRO Plus,通过一周的使用和感受后,我们记录了小杰对于这款存储卡的真实初体验。

三星 PRO Plus

01三星PRO Plus的“不变” 4K下的高性能传输

经过一周的使用感受后,小杰对于三星PRO Plus的第一感官便是性能。

小杰工作照

熟悉内容创作流程的朋友应该都知道,存储卡的功能特效决定了其需要相当的读写性能,才能完成相机感光器件记录光信号转换成电信号的重要原始数据,快速记录和安全存储下来,并以我们熟悉的图像格式,呈现出来。

假设存储卡的读写性能跟不上相机电信号的转换效率,就会发生相机成像不完整,相机显示屏回放出现马赛克,甚至严重的直接无法完成数据和图像的记录。

图源于三星存储官网

而三星PRO Plus,理论读取速度达到100MB/S,写入速度达到90MB/S,经过小杰的实际测试,即使在采集4K级别的原始素材的时候,它依旧能够完美进行图像数据的快速记录,成像效果完整,相机回放清晰高效,让小杰在创作的过程中,无需担心数据记录的问题。

当然除了在相机内部进行原始数据的采集之外,存储卡另一个重大使命便是在设备和设备之间进行数据的传递,也就是将原始数据导入到个人PC之中,进行后期加工。这个过程,也是我们普通用户较为熟悉的环节,同时也是影响内容创作者效率的重要指标。

三星PRO Plus实际传输速度

根据小杰的实操,我们可以看到,在峰值状态下,三星PRO Plus的传输速度甚至一度超过了理论性能,达到夸张的103MB/S,这让小杰也感到十分吃惊,高效的数据传输,稳定的数据记录,极大的提升了小杰在后期处理上的效率。

02三星PRO Plus的“变” 七重防护、10年有限保修、万次插拔的硬核体质

高性能是内容创作的基础,而存储卡的稳定和耐用程度才是支撑内容创作的灵魂。聊到稳定性和耐久程度的时候,小杰也表示,存储卡的性能其实大家都差不多,然而在稳定性和耐用程度方面,不同存储卡的差距却是十分巨大。

没错,目前主流的存储卡在稳定性和耐用程度上,都进行了探索和补足,常规的存储卡单品基本都配置3重防护,或是5重防护,用以提升存储卡的耐用程度。

三星PRO Plus 七重防护概念

而三星PRO Plus这款不久前问世的单品,则破天荒的提出了7重防护的概念,即三星PRO Plus能够实现防磨损、防水、耐高低温、防X射线、防磁、防摔、抗冲击等七种复杂环境,并在这些严苛的条件下,安全稳定进行原始数据的采集和记录。

实际上在小杰的日常体验中,经常遇到严寒酷暑下进行实景拍摄,将存储卡和手机、电脑、信用卡等强磁产品共存的尴尬局面;回到工作室,时不时也会出现打翻水杯,浸湿存储卡,或是存储卡跌落到地面,乃至无意间被踩踏等现象,然而经过一周的体验后,小杰发觉这款三星PRO Plus依旧能够正常运转,高效完成数据传输和记录。

此外,当笔者告诉小杰,此款三星PRO Plus还支持10年有限保修,以及支持10000次插拔不损坏的强硬体质的时候,小杰表示这个卡太硬核太优秀了吧,当下决定为工作室小哥们立即采购一批三星PRO Plus。

03“变与不变” 三星品牌存储始终在路上

如同标题所言,三星PRO Plus的“变与不变”,对于存储卡单品而言,受制于设备的通用性和制作标准的一致性,能够进行产品创新和功能迭代的空间其实并不多,所以我们可以看到大部分的存储卡在外观和功能描述方面都大同小异,更多的是在体验和内置的功能方面进行探索,如同小杰感到惊艳的,7重防护,10年有限保修以及10000次插拔不损坏的体验提升,这也是三星PRO Plus的“变”;

至于“不变”的部分,自然是三星品牌存储对于产品性能的持续追求,连续读取100MB/S,连续写入90MB/S,实际体验下来甚至超过峰值的表现,对于极致性能的追求,三星品牌存储一直在行动。

最后,插播个广告,三星PRO Plus正在参与三星品牌存储京东旗舰店的“星存春意处处生机”活动,购买指定存储单品,即有机会抽奖赢取蓝牙音箱,同时晒单还能返E卡。

三星品牌存储旗舰店直通车:https://mall.jd.com/index-1000075981.html

“品质星品”活动直通车:https://pro.m.jd.com/mall/active/YgPoau1qE891Zs5gWyXYhM4Qx4Z/index.html

(7649748)

过前面的介绍,我们已经学会了如何使用 .NET nanoFramework 为 ESP32 设备连接 Wi-Fi 网络。然而,在实际的物联网环境中,我们往往需要使用更便捷的式来满足配网需求。这篇文章将带你了解一些常见的配网方案,并以 ESP32 为例,介绍如何使用 .NET nanoFramework 实现为 ESP32 蓝牙配网。

1. 引言

经过前面的介绍,我们已经学会了如何 为 ESP32 设备连接 Wi-Fi 网络,然后这种代码中硬编码的方式,虽然简单,但在实际的物联网环境中,我们往往需要使用更便捷的方式来满足配网需求。而且,也不适合于产品化的物联网设备。今天,我们就来看看如何使用 .NET nanoFramework 实现为 ESP32 蓝牙配网。

2. 常见配网方案

为了能让我们的物联网设备连接到网络,配网的方式也有很多种,每种方式都有其特定的应用场景和优缺点。在这里我们不再详细的描述其原理,只是带大家做一个简单的了解,如果你感兴趣,可以自行搜索。下面是一些常见的配网方式的总结:

3. 蓝牙配网的实现

虽然方案有很多,但是针对这一款 ESP32-S3-Zero 开发板,其拥有蓝牙模块,刷写 ESP32_S3_BLE 固件后,我们可以使用蓝牙配网的方式来为其配网。

3.1. 蓝牙配网协议 Improv

使用蓝牙配网我们处理可以自己定义进行私有的实现外,也可以使用开源的协议快速完成开发。除了不用自己造轮子外,配网的工具也不需要自己设计了。Improv 是一个免费且开放的标准,它允许设备通过蓝牙进行安全的 Wi-Fi 配网,这个过程可以通过以下步骤完成:

1.打开设备2.客户端使用Improv协议将Wi-Fi凭据发送到待配网设备3.设备连接到Wi-Fi网络并返回一个URL。4.客户端使用该URL连接到设备并继续设置设备。

Improv协议可以通过蓝牙低功耗(Bluetooth Low Energy)或通过串行端口使用。这两种协议都可以从浏览器中使用。不过,串口就需要连线了,我们这里使用的是蓝牙低功耗的方式。

关于 Improv 协议的详细信息,可以参考其官方文档[1]

3.2 依赖准备

首先我们需要安装以下三个包:

?nanoFramework.System.Device.Wifi:用于连接 Wi-Fi 网络?nanoFramework.Device.Bluetooth:用于实现蓝牙配网?nanoFramework.System.Net.Http:用于演示联网后的网络服务

对于 Improv 协议的实现,没有依赖包,但是在官方的 Samples 仓库中有一个ImprovWifi示例[2],我们可以参考其实现,直接使用其 Improv.cs,然后 using ImprovWifi; 即可。

3.3 编码实现

ImprovWifi 已经实现了 Improv 协议,我们只需要在 Program.cs 中实现一些简单的代码。

这里我们在完成配网后,启动一个简易的网络服务,用于演示配网成功后的网络服务。这里我们使用 HttpListener 来实现一个简易的网络服务,当然你也可以使用其他的方式,比如 WebServer 等等。

  • static Improv _imp;
    public static void Main(){ Console.WriteLine("蓝牙配网 Improv 协议示例");
    _imp=new Improv(); // 配网完成后的回调 _imp.OnProvisioningComplete +=Imp_OnProvisioningComplete; // 开始配网服务,设备名称这里可以自定义,中文也是支持的,在搜索设备时会显示该名称 _imp.Start("ESP32 桑榆肖物"); // 纯演示,这里直接授权 _imp.Authorise(true);
    Console.WriteLine("等待设备配网...");
    while (_imp.CurrentState !=Improv.ImprovState.provisioned) { Thread.Sleep(500); }
    Console.WriteLine("设备配网完成,IP地址:" + _imp.GetCurrentIPAddress()); // 停止配网服务 _imp.Stop(); _imp=;
    Console.WriteLine("启动一个简易的网络服务,用于演示配网成功后的网络服务"); SimpleWebListener();
    Thread.Sleep(Timeout.Infinite);}
    private static void Imp_OnProvisioningComplete(object sender, EventArgs e){ SetProvisioningURL();}
    private static void SetProvisioningURL(){ _imp.RedirectUrl="http://" + _imp.GetCurrentIPAddress() + "/start.htm";}
    private static void SimpleWebListener(){ string responseString= "<html><head><meta charset='utf-8'>" + "<title>Hello from ESP32</title></head>" + "<body><h2>Hello from ESP32</h2>" + "<p>It works!</p>" + "<p>这里可以根据需求继续进行更多的设备配置信息</p>" + "</body></html>"; byte[] buffer=System.Text.Encoding.UTF8.GetBytes(responseString); HttpListener listener=new("http", 80); listener.Start();
    while (true) { try { HttpListenerContext context=listener.GetContext(); Console.WriteLine("Request received"); HttpListenerResponse response=context.Response; response.ContentLength64=buffer.Length; response.OutputStream.Write(buffer, 0, buffer.Length); context.Response.Close(); Console.WriteLine("Response sent"); context.Close(); } catch (Exception ex) { Console.WriteLine("Error: " + ex.Message + "\nSack=" + ex.StackTrace); } }}

    注意:以上代码只是功能的演示,在实际项目中,需要根据自己的需求进行修改,比如我们需要在验证连接后下次也自动完成连接,再者为了安全性,我们还需要进行验证等等。后面我会有一个实际的开源项目演示,介绍如何使用近期介绍的相关功能,敬请关注。

    4. 配网测试

    编译并刷写完成后,通过调试的数据输出,我们可以看设备成功进入等待配网状态。这时我们通过网页打开 Improv 的 web 配网客户端,也就是之前的 Improv 官方介绍站点[3]。当然,站点和协议都是开源的,你可以自己搭建一个。

    这里我们直接使用官方的进行测试使用即可,不过,需要注意的是,因为使用了蓝牙配网,所以这里需要你的电脑也支持蓝牙,否则无法搜索到设备。如果你的电脑没有蓝牙,也可以使用手机的 Chrome 或 Egde 浏览器打开该网页进行配网。


    配对列表


    这里可以看到,设备列表中已经搜索到了我们的设备,点击配对即可。配对成功后,我们可以会弹出下面的对话框,这里我们可以设置 Wi-Fi 的 SSID 和密码,然后点击 Connect 按钮即可。


    连接操作


    连接成功后,我们可以看到设备的状态已经变成了 Provisioned,这时我们就可以访问到设备启动的网络服务了。


    网页信息


    5. 总结

    通过这篇文章,我们学习了如何使用 .NET nanoFramework 为 ESP32 设备进行蓝牙配网。虽然这里我们使用的是 Improv 协议,但是其实现原理都是类似的,只是协议不同而已。在实际的项目中,我们可以根据自己的需求,选择合适的配网方式,或者自己实现一个配网协议,这里就不再赘述了。

    对于 Improv 协议的配网客户端,我们也可以通过微信小程序来实现,或者通过集成SDK到自己的应用中方便的实现配网,有兴趣的同学可以自行了解实现。

    References

    [1] 官方文档: https://www.improv-wifi.com/


者:刘小夕

转发链接:https://mp.weixin.qq.com/s/aEbqUt3zSnq8EjdBtkBcpw