其实在学习单片机的道路上我发现,所有单片机的功能都是基于通过内部程序控制对输出引脚进行配置实现的。这样说来,一切都可以看作是对“点灯”这一实践的延伸。我们常说“点灯”是学习单片机的第一步,那么这篇文章将从“物联网”这一概念作为连接单片机和互联网的第一次“点灯”。
这个实验无需额外配置硬件,只需要一块ESP32开发板。一般网上选购ESP开发板有30Pin(30个引脚)的还有38Pin(38个引脚)的,我们可以选择30Pin的那款。只要是开发板上芯片封装写着“ESP-WROOM-32”且是30Pin的款式(或者搜索ESP32 DEVKIT v1),通常这款都会带有两个LED显示,一个是电源信号灯(一般显示红色),一个是由GPIO2引脚/D2引脚控制的LED(一般显示蓝色)。而我们就是利用这个开发板自带的LED进行实验,因此无需再买其他硬件。(以下是参考图片)
这次软件部分我们需要用到米思齐(电脑上)和点灯科技(手机)。
关于米思齐的下载,可以在这个网站下载http://mixly.org/,下载教程可以参考http://t.csdn.cn/t2Lvu这篇文章。下载好之后,打开找到Arduino ESP32并点进去。
点进去后在右上角找到“设置”再找到“管理库”,点开之后可以看到这界面:
选择名字叫“点灯科技Blinker”的那一项,点击那项最前面的空白框:
然后在这个库管理器界面右上角点击这个标志即可完成配置:
完成配置关闭库管理器界面后可以在左侧看到有这么一栏即为配置成功:
关于点灯科技的信息,可以参照官方文档:https://diandeng.tech/doc/home
关于点灯科技的下载,可以通过手机的应用商城搜索“点灯blinker”,找到名字一模一样的应用下载即可,要是担心下载的应用不对,也可以用手机浏览器打开这个链接:https://diandeng.tech/home下载手机APP。
下载之后注册登陆,一般登陆后悔显示为空白界面,这时点击右上角的加号:
点进去后悔显示这个界面,选择“独立设备”并点击:
点击进去后下方选择网络接入:
选择点灯科技:
之后会等到一个密钥,这个密钥是接入设备的重要途径,可以先复制下来或者先不管,每个设备在创建后都会得到一个专属的密钥,这个密钥最好不要透露给其他人,防止设备被人占用或盗用。创建完新的设备之后返回主界面,点击刚刚创建的“新的设备”:
点进来可以看到这个界面,选择“载入示例”即可:
载入后就会显示这个画面:
这样我们就配置好点灯科技APP的部分了,可以开始编程了。
在之前的说明中,我们在创建新设备的时候有出现过密钥:
在推出这个界面后,我们可以在设备的按键界面再次找到密钥信息:
一般点进这个界面后密钥那一栏是隐藏的,可以点击密钥旁边的眼睛图标让他显示出来。
密钥作为识别设备的重要标准,在编程时往往需要输入对应的密钥码,这样通过点灯科技的服务器才能找到搭载密钥的设备。
在这个界面,我们可以看到有多个按键和一个显示代码的文本框,每个按键需要通过键名识别收到和发送的按键指令,而想要设置按键的键名,可以在这个界面点击右上角的编辑按钮:
随之可以看到这个界面:
在这个界面可以添加自己想要的按键功能块,以及选择要做具体设置的按键。
在每个按键的左上角淡蓝色框内的的就是键名,不同的按键设置的键名不同,我们一般在编程时设置键名方便点灯科技的服务器接收和发送APP里设置好的同名的按键信息。
当我们点击进入一个按键的具体设置时,我们可以看到这些信息:
我们可以设置图标的形状或图样,也可以设置按键键名、颜色等等信息。在编程时,我们可以通过程序设置接收信号后返回给APP的信息,这些信息会改变按键的状态,一般包括按键的颜色、按键底下的文本内容、按键的状态、按键涉及的数值等等信息。
按键一共有5种状态:打开(on)、关闭(off)、点按(tap)、长按开始(press)、长按结束(pressup)。打开和关闭是类似普通点灯开关,按下后会保持当前状态;点按相当于只是告诉程序执行过一次“按下”这个动作;长按开始和长按结束就好比饮料机,需要人对按键一直进行按下或松手的操作。一般我们用点按来计数,其余用来开关灯或其他功能。
如果你想自己DIY设计一个独属于自己的程序,但是不知道从何下手,可以点击点灯科技那部分中的“示例组合”:
在“示例组合”中,第一项有一个写着“示例程序:XXXX 打开”的选项:
将他拖出来,可以点击他的下拉菜单:
里面只要点击你想选择的功能,再点击“打开”,就会出现功能对应的图形化程序。然后根据自己的需要和配置设置好各个按键的键值和密钥,就可以下载到板子上进行实验了。
这个点灯程序,我们首先要让设备连接上网络,并通过密钥和APP里设置好的设备界面进行连接:
我们在设置按键的时候首先要考虑按键的键名,然后是按键所操控的单片机引脚,我们这块开发板的自备LED在GPIO2/D2引脚上,所以我们通过按键控制该引脚:
此处扩展一个可以用来计数和通过长按控制LED亮灭的按键,可以配合APP中计数界面的使用:
此版本为无第二个按键的版本:
此版本为包含第二个按键的版本:
文章目录1.开发板选择*用到的资源2.串口通信(个人理解)3.代码分析(注释比较详细)1.主函数2.串口1配置3.串口2配置以及中断函数4.注意问题5.源码链接1.开发板选择我用的是STM32F103RCT6的板子,不过代码大概在F103系列的板子上都可以运行,我试过在野火103的霸道板上也可以,主要看一下串口对应的引脚一不一样就行了,不一样的就更改一下。*用到的资源keil5软件这里用到了两个串口资源,采集数据一个,串口通信一个,板子对应引脚如下:串口1,TX:PA9,RX:PA10串口2,TX:PA2,RX:PA32.串口通信(个人理解)我就从串口采集传感器数据这个过程说一下我自己的理解,
LL库和HAL库简介LL:Low-Layer,底层库HAL:HardwareAbstractionLayer,硬件抽象层库LL库和hal库对比,很精简,这实际上是一个精简的库。LL库的配置选择如下:在STM32CUBEMX中,点击菜单的“ProjectManager”–>“AdvancedSettings”,在下面的界面中选择“AdvancedSettings”,然后在每个模块后面选择使用的库总结:1、如果使用的MCU是小容量的,那么STM32CubeLL将是最佳选择;2、如果结合可移植性和优化,使用STM32CubeHAL并使用特定的优化实现替换一些调用,可保持最大的可移植性。另外HAL和L
一、RIPV2协议简介 RIP(RoutingInformationProtocol)路由协议是一种相对古老,在小型以及同介质网络中得到了广泛应用的一种路由协议。RIP采用距离向量算法,是一种距离向量协议。RIP-1是有类别路由协议(ClassfulRoutingProtocol),它只支持以广播方式发布协议报文。RIP-1的协议报文无法携带掩码信息,它只能识别A、B、C类这样的自然网段的路由,因此RIP-1不支持非连续子网(DiscontiguousSubnet)。RIP-2是一种无类别路由协议(ClasslessRoutingProtocol),支持路由标记,在路由策略中可根据路由标记对
目录一、ESP32简单介绍二、ESP32Wi-Fi模块介绍三、ESP32Wi-Fi编程模型四、ESP32Wi-Fi事件处理流程 五、ESP32Wi-Fi开发环境六、ESP32Wi-Fi具体代码七、ESP32Wi-Fi代码解读6.1主程序app_main7.2自定义代码wifi_init_sta()八、ESP32Wi-Fi连接验证8.1测试方法8.2服务器模拟工具sscom58.3测试代码8.4测试结果前言为了开发一款亚马逊物联网产品,开始入手ESP32模块。为了能够记录自己的学习过程,特记录如下操作过程。一、ESP32简单介绍ESP32是一套Wi-Fi(2.4GHz)和蓝牙(4.2)双模解决方
有道无术,术尚可求,有术无道,止于术。本系列SpringBoot版本3.0.4本系列SpringSecurity版本6.0.2本系列SpringAuthorizationServer版本1.0.2源码地址:https://gitee.com/pearl-organization/study-spring-security-demo文章目录前言1.OAuth2AuthorizationServerMetadataEndpointFilter2.OAuth2AuthorizationEndpointFilter3.OidcProviderConfigurationEndpointFilter4.N
在我的代码中,我需要使用各种算法(包括CRC32)对文件进行哈希处理。因为我还在Digest系列中使用其他加密哈希函数,所以我认为为它们维护一个一致的接口(interface)会很好。为了记录,我确实找到了digest-crc,一颗完全符合我要求的gem。问题是,Zlib是标准库的一部分,并且有一个我想重用的CRC32工作实现。此外,它是用C编写的,因此它应该提供与digest-crc相关的卓越性能,后者是纯ruby实现。实现Digest::CRC32一开始看起来非常简单:%w(digestzlib).each{|f|requiref}classDigest::CRC32一切正常:
我正在尝试在我的机器上安装win32-apigem,但在构建native扩展时我遇到了一些问题:$geminstallwin32-api--no-ri--rdocTemporarilyenhancingPATHtoincludeDevKit...Buildingnativeextensions.Thiscouldtakeawhile...C:\Programs\dev_kit\bin\make.exe:***Couldn'treservespaceforcygwin'sheap,Win32error0ERROR:Errorinstallingwin32-api:ERROR:Failed
我在Windows上运行ruby1.9.2并试图移植在Ruby1.8中工作的代码。该代码使用以前运行良好的Open4.popen4。对于1.9.2,我做了以下事情:通过geminstallPOpen4安装了POpen4需要POpen4通过require'popen4'尝试像这样使用POpen4:Open4.popen4("cmd"){|io_in,io_out,io_er|...}当我这样做时,我得到了错误:nosuchfiletoload--win32/open3如果我尝试安装win32-open3(geminstallwin32-open3),我会收到错误消息:win32-op
目录1. 研究范围定义2. 流程中台市场分析3. 厂商评估:微宏科技4. 入选证书 1. 研究范围定义近年来,随着外部市场环境快速变化、客户需求愈发多样,企业逐渐意识到,自身业务需要更加敏捷、高效,具备根据市场需求快速迭代的能力。业务流程的自动化能够帮助企业实现业务的敏捷高效,因此受到越来越多企业的关注。企业的“自动化武器库”品类丰富,包括低/零代码平台、RPA、BPM、AI等。企业可以使用多项自动化工具,但结果往往是各项自动化工具处于各自的“自动化烟囱”之中,仅能实现碎片式自动化。例如,某企业的IT团队可能在使用低代码平台、财务团队可能在使用RPA、呼叫中心则可能在使用聊天机器人。自动
目录1.1访问Cisco路由器的方法1.1.1通过Console口访问路由器1.1.2通过Telnet访问路由器1.1.3终端访问服务器1.2终端访问服务器配置命令汇总1.1访问Cisco路由器的方法 路由器没有键盘和鼠标,要初始化路由器需要把计算机的串口和路由器的Console口进行连接。访问Cisco路由器的方法还有Telnet、WebBrowser和网络管理软件(如CiscoWorks)等,本节讨论前2种。1.1.1通过Console口访问路由器 计算机的串口和路由器的Console口是通过反转线(Rollover)进行连接的,反转线的一端接在路由器的Console口上,另一