esp8266分为三种工作模式:
STA:8266连接到网络比如wifi、手机热点等。
AP:8266作为热点,由手机连接到8266.
STA+AP:两种模式兼容。
本文章的实现是采用第一种方式。
首先百度搜索原子云(手机通讯就是用原子云app),进入设备管理,新建设备,(图中的是我以前建的,如果你第一次使用原子云下图应该没有设备)。

选择ESP8266,填写设备名称和密码。

上图的的编号和你刚才设置的密码接下来会用到。(用你自己的编号)
硬件连接:

必须短接:PB11(RX)和 GBC_TX 以及 PB10(TX)和 GBC_RX。
此时8266与开发板的串口3相连(波特率为115200)。
代码实现:
利用hal库与keil5进行实现。cubemx里配置好串口1(需要在代码里重定义printf函数)和串口3。(既然使用8266了,相信这一步对你来说小菜一碟)
首先了解几个AT指令
AT+CWMODE=1 //设置8266为STA模式
AT+RST //复位
WIFI CONNECTEDWIFI GOT IPAT+CWJAP=“热点名称”,“热点密码”//连接手机热点
AT+ATKCLDSTA=“上面说的编号”,“设置的密码”//连接到原子云
除连接到原子云需要每次上电都配置外,其余指令只需初始化一次,因此我们可以利用串口1和串口助手直接发送AT指令完成前三个指令。
将8266的VCC连到单片机的5V,GND与单片机的GND相连,TXD与单片机的RXD相连,RXD与单片机的TXD相连
发送指令如下图,发送第一个指令时极有可能乱码,再发送一次就好了

发送复位指令后会出现乱码和一个logo,如下图

最后发送连接手机热点的指令。在此步骤之前要先打开手机热点,然后就可以出现下图内容。

完成以上步骤后将8266插到之前的排母上,然后只需在代码里实现连接到原子云即可。
代码实现:
在主函数中添加如下代码

你可能发现代码好像怪怪的,好像多了好多 \ ,这里要提到转义字符的概念,字符串中是不能直接输出 " 的,解决方法就是在 " 前加 \ ,这样就可以输出 " 了,这里的 \ " 就是转义字符。

然后编译,下载到单片机,稍等片刻,即可连接到原子云。

这样就完成了电脑与单片机通讯了吗?并没有!我们现在是在已经连接到手机热点的基础上进行的与原子云连接。那如果将热点关闭,单片机断电。然后打开热点,单片机重新上电会发生什么?你可以试一下,你会发现连接不到原子云了。
这是因为代码的执行速度比8266连接到手机的速度快得多,也就是当8266还没连接到手机时,8266连接原子云的指令已经执行完毕了。
所以在执行连接到原子云的指令之前,应该延时几秒等待8266连接到手机热点,我的8266连接到手机时间是7s左右,所以我延时8s。

上文说过,单片机重新上电后发送的第一条消息会乱码,所以这里我们发送两次指令,间隔500ms。这样就实现了电脑与单片机通讯。
手机与单片机通讯
下载原子云app。
链接:https://pan.baidu.com/s/1Kzpj4MArcxq1judQC3swPA
提取码:t7vu
安装成功之后进入登陆界面,需要输入的token需要到原子云网页里找,进入原子云网页,点击左下角账号信息,即可看到API TOKEN.
登陆成功后会发现一片空白。
点击分组管理,点击创建分组,分组名称随便起。之后点击操作里的分组设置。

之后勾选,并移动到右面,点击保存。

按以上步骤操作后,重新登陆原子云app。即可与单片机通讯。
下面举个例子,手机输入123使led亮灭
代码如下:
首先定义有三个元素的数组,
uint8_t buffer[3];
之后在主函数的while里添加以下代码,

方便你cv
HAL_UART_Receive(&huart3, buffer,3,0xffff);
if(strcmp(buffer,"123") == 0)
{
HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin);//我自己定义的
}
别忘了添加头文件
> #include <string.h>
之后编译,下载到单片机中。即可发现led一直在闪烁。
至此,本文所讲内容结束了,大家也可以尝试用串口中断来实现消息的发送。其实当你把这个功能和项目里其他功能结合时可能会出现一些逻辑上的问题,并不是直接cv就可以的。这里博主希望各位可以在学习过程中自己解决问题,最后希望我们一起进步。
其实做自媒体的成本并不高,入门只需要一部手机即可!在手机上找视频素材、使用手机剪辑视频、最后使用手机发布视频作品获得收益!方法并不难,今天这期内容就来给粉丝们分享一种小方法,每天稳定收益100-300,抓紧点赞收藏!1、找素材(1)使用手机拍摄自己喜欢的经典段落,使用程序把文案内容提取出来(2)也可以在豆瓣、知乎、微博等网站中找一些自己需要的文案素材(3)把文案进行润色修改,可以加入一些自己的观点(4)视频素材可以使用软件中自带的素材,也可以在素材网站中下载完整版的素材2、文案配音(1)把复制好的文案直接导入小程序中(2)调整音色、音调后一键合成音频即可(3)可以选择自己朗读配音,需要花一点时
文章目录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.串口通信(个人理解)我就从串口采集传感器数据这个过程说一下我自己的理解,
术语中文解释Ability原子化服务帮助用户完成任务的原子化服务,和用户的意图进行关联。Fulfillment服务履行通过图标,卡片,语音等形式呈现用户意图。开发者通过接口的方式,处理用户意图,返回内容。Intent意图用于表达用户想要达成的目标或完成的任务。HUAWEIAssistant智能助手“无微不智”的个人助手,通过不断的学习用户的使用习惯,不断的为用户提供贴心的精准的便捷的个性化服务。AISearch全局搜索用户可快速搜索关键词,与之匹配的原子化服务则会出现在搜索结果中。SmartService智慧服务用户订阅原子化服务,在到达特定触发条件(时间、地点、事件)后,卡片推送至用户智能助
LL库和HAL库简介LL:Low-Layer,底层库HAL:HardwareAbstractionLayer,硬件抽象层库LL库和hal库对比,很精简,这实际上是一个精简的库。LL库的配置选择如下:在STM32CUBEMX中,点击菜单的“ProjectManager”–>“AdvancedSettings”,在下面的界面中选择“AdvancedSettings”,然后在每个模块后面选择使用的库总结:1、如果使用的MCU是小容量的,那么STM32CubeLL将是最佳选择;2、如果结合可移植性和优化,使用STM32CubeHAL并使用特定的优化实现替换一些调用,可保持最大的可移植性。另外HAL和L
手机访问电脑后AnyViewer可以做什么? 您成功将手机连接到Windows电脑后,然后您可以做任何您想做的事情,例如:查看文件和运行应用程序。电源管理:在远程会话中,点击电源管理,您可以看到三个项目:锁定、重启和关机,供您在不同情况下管理计算机。如果您需要暂时离开远程会话,可以锁定计算机。如果计算机死机,您可以重新启动它,然后再次连接。如果您已完成计算机上的所有工作,您可以使用手机远程关闭它。更改图像质量:当电脑和手机的网络都处于良好状态时,您可以选择高图像质量以获得更好的体验。当网络状况不佳时,您可以选择低图像质量以获得更流畅的操作。 显示桌面:我们无法在手机上按Windows+
恢复出厂设置后数据还在吗?格式化真的彻底吗?数据到底该怎么删?文章目录前言为什么不能彻底删除数据?手机如何彻底删除数据?第一步:恢复出厂设置第二步:手动覆写数据电脑如何彻底删除数据?方法一:命令提示符方法二:文件粉碎方法三:低级格式化硬盘总结前言个人数据安全再次成为大家关注的热门话题:在日常使用手机和电脑时,我们可能需要删除一些敏感数据,例如银行账户信息、个人照片、聊天记录等。数据删除的目的是保护个人隐私,避免泄露。以下是一些关于如何删除数据的方法。恢复出厂设置,不一定彻底清除手机数据电子产品迭代升级速度越来越快,大家家中的旧手机、旧电脑也越来越多,一键删除、格式化、恢复出厂设置能彻底清除个人
目录一、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