NoOneZero

  • 2024-03-05
  • 回复了主题帖: 【安信可BW16-Kit】 WebServer服务器下测试双频Wi-Fi传输速率

    wangerxian 发表于 2024-3-5 09:20 确实速率感觉没有很明显的区别,要不测测5G和2.4G的功耗? 好主意,我测试下

  • 2024-03-04
  • 发表了主题帖: 【安信可BW16-Kit】 WebServer服务器下测试双频Wi-Fi传输速率

    # 【安信可BW16-Kit】 WebServer服务器下测试双频Wi-Fi传输速率 # 前言 BW16支持双频(2.4GHz 或 5GHz)WLAN 这种支持5g WiFi的模组 可以用于一些上传,下载大文件的情况中 比如,无线打印,升级固件等 这次评测下 BW16 作为server 在2.4g 和 5g wifi下传输大文件的时间差别 ## 代码 ``` #include char ssid[] = "wh5";          // wifi账号密码 char pass[] = "password"; // ADC引脚号 // int analogChannel = PB3; int status = WL_IDLE_STATUS; // 测试文本 char text[] = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; // 实例化sever 端口80 WiFiServer server(80); void setup() {     // 打开串口     Serial.begin(115200);     // 等待开启完成     while (!Serial) {         ; // 等待串口连接。仅本机 USB 端口需要     }     Serial.println("noonezero111");     // 检查防护罩是否存在:     if (WiFi.status() == WL_NO_SHIELD) {         Serial.println("WiFi shield not present");         // don't continue:         while (true);     }     // 连接Wifi     while (status != WL_CONNECTED) {         Serial.print("Attempting to connect to SSID: ");         Serial.println(ssid);         // 连接到 WPA/WPA2 网络         status = WiFi.begin(ssid, pass);         // 等待         delay(10000);     }     // 开启服务器     server.begin();     // 打印网络     printWifiStatus(); } void loop() {     // 传入客户端     WiFiClient client = server.available();     if (client) {         Serial.println("new client");         // HTTP 请求以空行结尾         boolean currentLineIsBlank = true;         while (client.connected()) {             if (client.available()) {                 char c = client.read();                 Serial.write(c);                 // http请求结束                 if (c == '\n' && currentLineIsBlank) {                     // 发送响应头                     client.println("HTTP/1.1 200 OK");                     client.println("Content-Type: text/html");                     client.println();                     client.println("");                     client.println("");                     for(int i=0; i

  • 发表了主题帖: 【安信可BW16-Kit】 智能家居项目应用

    # 【安信可BW16-Kit】 智能家居项目应用 ## 前言 本次项目使用BW16作为受控端,接收MQTT指令,操作继电器实现控制电器的目的 首先需要BW16烧录代码 其次,安装MQTT客户端,我这里使用MQTTX 具体效果请看下方演示 ## 代码 ```c #include #include #define GPIO_sw1 PA26   // 定义继电器引脚 #define GPIO_sw2 PA27 #define ON        LOW   // 开关对应电平高低 char ssid[] = "wh5";          // wifi账号 char pass[] = "noonezero";    // wifi密码 int status = WL_IDLE_STATUS;  // wifi状态 char mqttServer[] = "test.mosquitto.org";   // 测试MQTT服务器 char clientId[] = "noonezeroamebaClient";   // 客户端ID char topic_sw1[] = "topic_sw1";             // 订阅开关主题 char topic_sw2[] = "topic_sw2"; WiFiClient wifiClient;    // 实例化Wifi PubSubClient client(wifiClient);  // 创建一个MQTT客户端 // 订阅主题收到消息回调 void callback(char* topic, byte* payload, unsigned int length) {   // 用于和收到的命令进行对比   char cmd_on[] = "1";   char cmd_off[] = "0";   // 主题1操作   if (strcmp(topic, topic_sw1) == 0) {     // 开关操作     if (memcmp((char*)payload, cmd_on, strlen(cmd_on)) == 0) {       digitalWrite(GPIO_sw1, ON);     } else if (memcmp((char*)payload, cmd_off, strlen(cmd_off)) == 0) {       digitalWrite(GPIO_sw1, !ON);     }   } else if (strcmp(topic, topic_sw2) == 0) {     if (memcmp((char*)payload, cmd_on, strlen(cmd_on)) == 0) {       digitalWrite(GPIO_sw2, ON);     } else if (memcmp((char*)payload, cmd_off, strlen(cmd_off)) == 0) {       digitalWrite(GPIO_sw2, !ON);     }   }   Serial.print("Message arrived [");   Serial.print(topic);   Serial.print("] ");   for (int i = 0; i < length; i++) {       Serial.print((char)(payload));   }   Serial.print(" -> sw1: ");   Serial.print(digitalRead(GPIO_sw1));   Serial.print(" sw2: ");   Serial.print(digitalRead(GPIO_sw2));   Serial.println("      Receive subscribe."); } void reconnect() {   // 连接MQTT 订阅主题   while (!(client.connected())) {     Serial.print("Attempting MQTT connection...");     // Attempt to connect     if (client.connect(clientId)) {       Serial.println("connected");       // Once connected, publish an announcement...       // ... and resubscribe       client.subscribe(topic_sw1);    // 订阅主题       client.subscribe(topic_sw2);     } else {       Serial.print("failed, rc=");       Serial.print(client.state());       Serial.println(" try again in 5 seconds");       // Wait 5 seconds before retrying       delay(5000);     }   } } void setup() {   Serial.begin(115200);   // 初始化串口   pinMode(GPIO_sw1, OUTPUT);  // 初始化引脚   digitalWrite(GPIO_sw1, !ON);   pinMode(GPIO_sw2, OUTPUT);   digitalWrite(GPIO_sw2, !ON);   // 连接wifi   while (status != WL_CONNECTED) {     Serial.print("Attempting to connect to SSID: ");     Serial.println(ssid);     // Connect to WPA/WPA2 network. Change this line if using open or WEP network:     status = WiFi.begin(ssid, pass);     // wait 10 seconds for connection:     delay(10000);   }   // 设置MQTT服务器url和端口   client.setServer(mqttServer, 1883);   // 设置回调   client.setCallback(callback);   // Allow the hardware to sort itself out   delay(1500); } void loop() {   if (!(client.connected())) {     reconnect();   }   client.loop(); } ``` ## MQTT客户端安装 建议搜索MQTTX,免费还好用 ## 演示效果 ## 使用安信可小安派实现 #### 之前使用小安派做了一个MQTT控制器 #### 这次使用那个小安派来控制BW16 #### 演示看视频 [localvideo]d571f0052867c34617aa239c9191759f[/localvideo]

  • 2024-02-27
  • 发表了主题帖: 【安信可BW16-Kit】 linux环境搭建

    # 【安信可BW16-Kit】linux环境搭建 ## 01 clone SDK ```git clone -b dev https://github.com/ambiot/ambd_sdk.git```克隆DEV分支 #### 文件有点大,如果克隆失败,下载压缩包并解压 #### 最后目录 ## 02 增加权限 ```chmod -R 777 ./project/realtek_amebaD_va0_example/GCC-RELEASE/``` #### 官方写的是777,自己开发,省事 ## 03 安装依赖 ```sudo apt-get install git wget  libc6-i386 lib32ncurses5 make bc gawk ncurses-dev ``` #### ubuntu22 版本有些依赖木有了,本次搭建使用ubuntu18版本,成功搭建 ## 04 编译project_lp ```cd ./project/realtek_amebaD_va0_example/GCC-RELEASE/project_lp/``` ```make all ``` #### make完成 #### 镜像文件 h ## 04 编译project_hp ```cd ../project_hp/```切换到hp目录 ```make all ``` #### 镜像文件 ## 至此,编译完成 ## 烧录 #### 烧录部分linux无法烧录,需要复制镜像文件到windows进行烧录 #### 复制3个文件:km0_boot_all.bin,km0_km4_image2.bin,km4_boot_all.bin #### 烧录教程请看我AT指令篇章,有详细介绍 #### 教程链接 https://bbs.eeworld.com.cn/thread-1271098-1-1.html

  • 2024-02-17
  • 发表了主题帖: 【安信可BW16-Kit】Arduino环境搭建 + 亮灯

    本帖最后由 NoOneZero 于 2024-2-18 08:23 编辑 # 【安信可BW16-Kit】Arduino环境搭建 + 亮灯 # 01 添加开发板网址 #### 在箭头位置填入开发板地址点击确定 ```json https://github.com/ambiot/ambd_arduino/raw/master/Arduino_package/package_realtek_amebad_index.json ``` # 02 安装开发板 #### 正常箭头3位置是安装,点击安装即可。我的之前已经装过3.1.6,就演示了 #### 安装完成即可 #### 安装过程需要访问github,如果不能流畅访问,可能会安装失败 # 03 点个灯 ```c // RGB灯由PA12(R),PA13(B),PA14(G) void setup() {   pinMode(PA12, OUTPUT);   pinMode(PA13, OUTPUT);   pinMode(PA14, OUTPUT);   // digitalWrite(PA12, HIGH);   // digitalWrite(PA13, HIGH);   // digitalWrite(PA14, HIGH); } void loop() {   for(int i=0; i

  • 发表了主题帖: 【安信可BW16-Kit】AT指令体验之MQTT

    # 【安信可BW16-Kit】AT指令体验之MQTT 我用emqx在本地搭建了一个MQTT服务器,搭建过程可以查看官网搭建方式 # 01 连接Wifi 连接WiFi请看上篇帖子 # 02 配置MQTT 命令: ```AT+MQTT=,``` 参数2:``````设置的参数 参数1:``````MQTT参数。 1:设置连接的域名或 IP 2:设置服务器端口号 3:设置连接方式(暂时默认 1:使用tcp连接) 4:设置客户端ID 5:设置用户名(最大长度63字节) 6:设置登录密码(最大长度63字节) 7:设置遗嘱消息 格式为 ```c AT+MQTT=7,,,, LWT_topic:遗嘱主题(不需要遗嘱这里设置为空) LWT_qos:遗嘱 QOS(0/1/2) LWT_Retained:遗嘱 retained(0/1) LWTpayload:遗嘱消息内容 ``` ## 示例 ```shell AT+MQTT=1,192.168.1.9        // 设置MQTT服务器URL [AI_HalWriteFlash()-328]flash save ok [AI_FAtMqtt()-183]AI_HalWriteFlash success OK [MEM] After do cmd, available heap 120224 AT+MQTT=2,1883                // 设置MQTT服务器端口 [AI_HalWriteFlash()-328]flash save ok [AI_FAtMqtt()-183]AI_HalWriteFlash success OK [MEM] After do cmd, available heap 120224 AT+MQTT=3,1                // 设置连接方式 TCP [AI_FAtMqtt()-204]don't need save flash OK [MEM] After do cmd, available heap 120224 AT+MQTT=4,bw16                        // 设置客户端ID [AI_HalWriteFlash()-328]flash save ok [AI_FAtMqtt()-183]AI_HalWriteFlash success OK [MEM] After do cmd, available heap 120224 AT+MQTT=5,                        // 设置用户名 我这里为空 [AI_FAtMqtt()-77]cmd format error +MQTT:3 ERROR [MEM] After do cmd, available heap 120224 AT+MQTT=6,                        // 设置密码 我这里为空 [AI_FAtMqtt()-77]cmd format error +MQTT:3 ERROR [MEM] After do cmd, available heap 120224 AT+MQTT?                        // 查询 MQTT 连接和配置情况 +MQTT:0,192.168.1.9,1883,1,bw16,,,,0,0, OK [MEM] After do cmd, available heap 120224 AT+MQTT                        // 连接MQTT [AI_MqttPrvMQTTTask()-2351]not set LWT [AI_MqttPrvMQTTTask()-2357]MQTT connect config   host:192.168.1.9:1883   username:   password:   clientID:bw16   use tcp OK [MEM] After do cmd, available heap 103680 [AI_MqttDataHandle()-1507]start MQTT connect   host:192.168.1.9:1883   username:   password:   clientID:bw16   willFlag:0   use tcp [AI_MqttNetworkConnect()-532]addr=192.168.1.9 [AI_MqttSetStatus()-1487]Set mqtt status to MQTT_CONNECT [AI_MqttDataHandle()-1544]send mqtt connect cmd success [AI_MqttDataHandle()-1555]Read packet type is CONNACK [AI_MqttDataHandle()-1576]recive MQTT Connected ack // 连接成功 ``` 此时,后台会有对应客户端连接 # 03 订阅消息 命令: ```AT+MQTTSUB=,``` 参数1:``````要订阅的主题。(最多订阅四个主题) 参数2:``````qos 等级(0,1,2)。 ```c AT+MQTTSUB=topic,0 [AI_MqttSetStatus()-1487]Set mqtt status to MQTT_SUBTOPIC [AI_MqttAppSubscribeTopic()-2225]send topic topic cmd success,wait ack [AI_MqttDataHandle()-1555]Read packet type is SUBACK [AI_MqttDataHandle()-1625]wait subscribe ack success,grantedQoS=0 [AI_MqttSetStatus()-1487]Set mqtt status to MQTT_RUNNING [AI_MqttAppSubscribeTopic()-2240]recive Subscribe ack,subscribe success OK [MEM] After do cmd, available heap 103136 ``` 后台显示 ## 当订阅消息后,该主题有消息后,就会通过串口显示 ### 其他客户端发送消息 ### BW16收到主题 ```c [AI_MqttMessageArrived()-2140]Message arrived +EVENT:MQTT_SUB,topic,18,{ "msg": "hello" } ``` # 04 发布消息 命令: ```AT+MQTTPUB=,,,``` 参数1:``````要发布的主题 参数2:``````qos 等级(0,1,2)。 参数3:``````0:普通消息 1:保留消息 参数4:``````数据内容(最大长度为1024个字节) ```c AT+MQTTPUB=topic,0,0,hello bw16                // 发送消息 [AI_MqttAppPublishMessage()-2097]Publish Topic topic:0 [AI_MqttAppPublishMessage()-2132]Qos0 not need Ack OK [MEM] After do cmd, available heap 103136 [AI_MqttDataHandle()-1555]Read packet type is PUBLISH [AI_MqttMessageArrived()-2140]Message arrived +EVENT:MQTT_SUB,topic,11,hello bw16                // 接收消息 ``` ### 客户端显示 # 05取消订阅 命令: ```AT+MQTTUNSUB=``` 参数1:``````要取消订阅的主题 ```c AT+MQTTUNSUB=topic [AI_MqttDataHandle()-1555]Read packet type is UNSUBACK [AI_MqttDataHandle()-1697]topic:topic set AI_MQTT_RECIVE_UNSUBACK [AI_MqttAppUnsubscribeTopic()-2308]recive UnSubscribe ack,UnSubscribe success OK [MEM] After do cmd, available heap 103200 ``` 取消订阅成功

  • 2024-02-16
  • 发表了主题帖: 【安信可BW16-Kit】AT指令体验之WiFi HTTP

    # 【安信可BW16-Kit】AT指令体验之WiFi HTTP ## 连接WiFi ### 01 设置模式 STA 命令: ```AT+WMODE=,``` 参数1:``````Wi-Fi工作模式(0:未初始化或者关闭Wi-Fi 1:STA 2:AP 3:AP+STA) 参数2:``````是否保存到flash(0:不保存 1:保存) ```c AT+WMODE=1,0 WIFI is already running[AI_FAtWMode()-117]wifi start success OK [MEM] After do cmd, available heap 160064 ``` ### 02 查找WiFi ```c AT+WSCAN +WSCAN:index SSID,CH,SECURITY,RSSI,BSSID 1 wenhou,1,WPA/WPA2 AES,-42,a4:1a:3a:5d:56:08 2 ,1,WPA/WPA2 AES,-44,a6:1a:3a:2d:56:08 3 wh5,153,WPA/WPA2 AES,-48,a4:1a:3a:5d:56:0a 4 ,153,WPA/WPA2 AES,-48,a6:1a:3a:5d:56:08 OK [MEM] After do cmd, available heap 160064 ``` ### 03 连接WiFi 命令: ```AT+WJAP=,[,]``` 参数1:``````连接的AP的SSID(最大长度为32字节) 参数2:``````连接的AP的密码(最大长度为32字节) 参数3:``````连接的AP的BSSID(一般不用) ```c AT+WJAP=wenhou,password [AI_FAtWJAP()-598]Connect to wenhou RTL8721D[Driver]: set ssid [wenhou] RTL8721D[Driver]: rtw_set_wpa_ie[1160]: AuthKeyMgmt = 0x2 RTL8721D[Driver]: rtw_restruct_sec_ie[4279]: no pmksa cached RTL8721D[Driver]: start auth to a4:1a:3a:5d:56:08 RTL8721D[Driver]: auth alg = 2 RTL8721D[Driver]: OnAuthClient:algthm = 0, seq = 2, status = 0, sae_msg_len = 0 RTL8721D[Driver]: auth success, start assoc RTL8721D[Driver]: association success(res=3) RTL8721D[Driver]: ClientSendEAPOL[1650]: no use cache pmksa RTL8721D[Driver]: set pairwise key to hw: alg:4(WEP40-1 WEP104-5 TKIP-2 AES-4) RTL8721D[Driver]: set group key to hw: alg:4(WEP40-1 WEP104-5 TKIP-2 AES-4) keyid:2 [AI_WifiReConnectCallbak()-756](220)wenhou +EVENT:WIFI_CONNECT +EVENT:WIFI_GOT_IP [AI_SocketTTAutoRunThread()-4027]socket auto TT not set Interface 0 IP address : 192.168.1.100 OK [MEM] After do cmd, available heap 152032 ``` ### 04 AT+WAUTOCONN 上电自动重连Wi-Fi 命令: ```AT+WAUTOCONN=``` 参数1:``````0:禁用 1:使能 ## HTTP通信 命令: ```AT+HTTPCLIENTLINE=,,,,,[,]``` 参数1:``````请求协议(1:HTTP 2:HTTPS) 参数2:``````请求类型(2:GET 3:POST) 参数3:``````请求数据类型,仅 POST 生效,可以填写任意字符串,参考类型如下(```application/x-www-form-urlencoded``` ```application/json``` ```multipart/form-data``` ```text/xml``` ```text/html```) 参数4:``````服务器域名或 IP(www.baidu.com 或 192.168.1.100) 参数5:``````端口号(HTTP 缺省值80 HTTPS 缺省值443) 参数6:``````HTTP(S)路径(缺省值”/”) 参数7:``````请求携带的数据(如下) 1:当opt为GET时接在path中的,格式(?key1=value1&key2=value2 …) 2:当opt为POST时这个是POST携带的主体。 示例GET ```c AT+HTTTPCLIENTLINE=1,2,"application/x-www-form-urlencoded","httpbin.org",80,"/get?key1=123&key2=456" [AI_InitiateHttpRequest()-465]Request: GET /get?key1=123&key2=456 HTTP/1.1 Host: httpbin.org [AI_InitiateHttpRequest()-506]need send len=58 ,send succest len=58 [AI_InitiateHttpRequest()-538]curren parse data len 230 [AI_InitiateHttpRequest()-552]get bodylen=256 {   "args": {     "key1": "123",     "key2": "456"   },   "headers": {     "Host": "httpbin.org",     "X-Amzn-Trace-Id": "Root=1-65cf25c0-7cc21e33360f850d6c15f176"   },   "origin": "118.74.161.3",   "url": "http://httpbin.org/get?key1=123&key2=456" } OK [MEM] After do cmd, available heap 152032 ``` 示例POST ```c AT+HTTTPCLIENTLINE=1,3,"application/json","httpbin.org",80,"/post",{"key1": 123} [AI_InitiateHttpRequest()-486]Request: POST /post HTTP/1.1 Host: httpbin.org Content-Type: application/json Content-Length: 13 {"key1": 123} [AI_InitiateHttpRequest()-506]need send len=107 ,send succest len=107 [AI_InitiateHttpRequest()-538]curren parse data len 230 [AI_InitiateHttpRequest()-552]get bodylen=363 {   "args": {},   "data": "{\"key1\": 123}",   "files": {},   "form": {},   "headers": {     "Content-Length": "13",     "Content-Type": "application/json",     "Host": "httpbin.org",     "X-Amzn-Trace-Id": "Root=1-65cf2617-2251e9f04b427bc40c26c29c"   },   "json": {     "key1": 123   },   "origin": "118.74.161.3",   "url": "http://httpbin.org/post" } OK [MEM] After do cmd, available heap 152032 ```

  • 发表了主题帖: 【安信可BW16-Kit】AT指令体验之GPIO和PWM

    # 【安信可BW16-Kit】AT指令体验之GPIO和PWM 本篇帖子分享GPIO操作 # 设置高低电平 **根据原理图得知,RGB灯由PA12(R),PA13(B),PA14(G)** **芯片对应序号20,21,22** ## 01 AT+SYSIOMAP 查询或设置 IO 映射表 命令: ```AT+SYSIOMAP=,,,...,``` 参数1:``````要设置的 IO 总数 参数2:``````模组 IO 引脚(从模组左上角逆时针排序,引脚序号从 1 开始)对应的芯片引脚编号(1~254,这个根据芯片手册上的引脚编号来就可以)如果模组没有对应芯片引脚则设置为 NC) ```c AT+SYSIOMAP=22,PinMap:NC,NC,NC,NC,NC,NC,NC,NC,NC,NC,NC,NC,NC,NC,NC,NC,NC,NC,NC,20,21,22 ``` ## 02 AT+SYSGPIOWRITE 设置 GPIO 输出电平 命令: ```AT+SYSGPIOWRITE=,``` 参数1:``````模组 IO 引脚号(从模组左上角逆时针排序,引脚序号从 1 开始) 参数2:``````引脚电平(0低电平 1高电平) ```c AT+SYSGPIOWRITE=20,1  // 红灯亮 AT+SYSGPIOWRITE=21,1  // 蓝灯亮 AT+SYSGPIOWRITE=22,1  // 绿灯亮 ``` ## 成功进阶点灯大湿 # PWM使用 前面已经端口映射了,这里就不重复映射了 ## AT+PWMCFG 配置 PWM 功能 命令: ```AT+PWMCFG=,,``` 参数1:``````模组 IO 引脚号(从模组左上角逆时针排序,引脚序号从 1 开始) 参数2:``````PWM 周期(单位 us) 参数3:``````占空比(整数 0~100) **由于PA14号引脚没有PWM功能,这次就使用PA12 PA13引脚** **这次我们生成一个紫色** ```c AT+PWMCFGS=20,1000,60 AT+PWMCFGS=21,1000,60 ``` 点灯结束

  • 2024-01-28
  • 发表了主题帖: 【安信可BW16-Kit】开箱+AT指令体验

    本帖最后由 NoOneZero 于 2024-1-28 22:24 编辑 **目录** [TOCM] # 介绍 网址: https://docs.ai-thinker.com/rtl87xx BW16是基于 RTL8720DN开发的双频Wi-Fi+蓝牙SoC模组。BW16支持双频(2.4GHz 或 5GHz)WLAN和低功耗蓝牙5.0;它集成了ARM V8(兼容 Cortex-M4F)高性能 MCU、ARM V8M(兼容 Cortex-M0)低功耗 MCU、WLAN(802.11 a / b / g / n)、MAC,蓝牙基带和 RF 基带,并提供了一组可配置的 GPIO 口,用于不同外围设备的控制。BW16 同时集成了内部存储器,支持简单的应用程序开发,可实现完整的 Wi-Fi 和 BLE 5.0 协议功能。 - 支持802.11a/b/g/n 1×1,2.4GHz or 5GHz - 支持HT20/HT40模式 - 支持低功耗信标监听模式,低功耗接收模式,低功耗挂起模式 - 内置AES / DES / SHA硬件引擎 - 支持TrustZone-M,支持安全启动 - 支持SWD调试端口访问保护和禁止模式 - 支持BLE 5.0 - 蓝牙支持高功率模式(7dBm,与Wi-Fi共享同一PA) - Wi-Fi和BLE共用同一天线 - 支持 STA/AP/STA+AP 工作模式 - 支持安卓、iOS的 Simple Config(APP) 一键配网 - 支持串口本地升级和远程固件升级(FOTA) # 更新最新版固件 固件是2022年的 4.9.2 下载新版固件4.18_P5.6.4 ## 01下载固件和指导手册 地址:https://docs.ai-thinker.com/rtl87xx 下载,解压 里面有完整的烧录手册,也可以看我操作步骤 ## 02进入烧录模式 按住序号2按钮不动 在按序号1按钮(建议按的时间长点,偶尔会失败) 最后松开序号2按钮 进入烧录模式会串口一直发送0x15 开启HEX模式,否则会是方块 ## 烧录 ## 烧录完成 已经是最新版本 # AT指令 > Combo-AT 是安信可自主开发的可直接用于量产的物联网应用固件,旨在降低客户开发成本,快速形成产品。通过 Combo-AT 指令,您可以快速加入无线网络、连接云平台、实现数据通信以及远程控制等功能,真正的通过无线通讯实现万物互联。 Combo-AT 固件使 安信可模组作为从机,MCU 作为主机。MCU 发送 AT 命令给模组,控制模组执行不同的操作,并接收模组返回的 AT 响应。Combo-AT 提供了大量功能不同的 AT 命令,如 Wi-Fi 命令、TCP/IP 命令、Bluetooth LE 命令、Bluetooth 命令、MQTT 命令、HTTP 命令、GPIO操作命令等。 简单说,就是安信可为所有产品统一编写得AT指令,适用于安信可大部分产品 ## 联网

  • 2024-01-11
  • 回复了主题帖: 【入围名单】: 安信可BW16-Kit

    收到 ,地址没有错,请发货

  • 2024-01-02
  • 加入了学习《任务提交视频》,观看 任务四

  • 2023-11-15
  • 发表了主题帖: 【得捷电子Follow me第2期】任务汇总帖2

    本帖最后由 NoOneZero 于 2023-11-15 10:36 编辑 强烈建议大家看看我的视频,我文字描述太垃圾 之前汇总贴提交了任务一到任务三,然后夸下海口,说任务四和任务五要做个完整的项目 今天发这个帖子前想再次编辑下的,结果不能编辑了很想把“和任务五”四个字删除了, 原本想结合网络做一个音乐灯的,结果第三期esp32C3来了,将来和它做吧 1115补:很不幸,第三期没选上,有缘在参加   接下来给大家介绍下我的项目,任务四 分任务2:WS2812B效果控制——完成一个Neopixel(12灯珠或以上)控制器,通过按键和屏幕切换展示效果     如图,本次代码一共码了 615行 (含空格和注释) 妥妥的大项目 强烈建议大家看看我的视频,我文字描述太垃圾   具体可以看我视频演示 黑色板下面是100颗WS2812 紫色PCB用到的就是五个按键,实现上下左右切换菜单 挨着的是光传感器,实现LED调节亮度 面包板中间是蜂鸣器,右侧是ADC模块,也是用来调节亮度的   ESP32启动后,显示的是NTC校准的时间,当然,还有我的少司命     按下键,到下一个菜单【LED】,按【OK】键进入 (光太强,不挡着点只能照下灯屁股)       主菜单进入后是子菜单,分别是【彩虹】【追逐】【彗星】【火花】【循环】 依次确认子菜单将激活对应功能,100颗WS2812将根据菜单选择显示相应颜色   这是【彩虹】   这是【追逐】   这是【彗星】   这是【火花】彩虹火花     【循环】就是上面四种效果挨个显示,每个显示五秒钟,实现效果看视频   按【左键】返回上级菜单   按【下键】进入【游戏】菜单 游戏子菜单就做了一个,贪吃蛇,还想做俄罗斯方块的,结果来不及了,先完成任务     按【OK】键进入 屏幕显示 游戏开始,WS2812 会显示两节红色小蛇,和绿色随机位置食物,   按【上】【下】【左】【右】控制小蛇, 吃到食物就涨一节 如果检测撞墙了,屏幕显示游戏结束,然后回到子菜单,按【OK】键可再次开始游戏 游戏运行中按【OK】键会立马结束游戏,返回子菜单   按【左键】返回上级菜单 按【下键】进入【亮度】菜单 有三个子菜单【固定亮度】【光传感】【ADC读取】   默认选中,【固定亮度】,此时当前子菜单字体颜色为绿色 上下移动选择条,按【OK】键,此时,亮度按当前选中方式调节,字体颜色也由白色变为绿色。 【光传感】菜单,通过IIC调用光传感器亮度值,进行调节 【ADC读取】,通过IIC调用ADC模块,检测可调电阻电压值调节 此处设定好的亮度获取方式,在【游戏】菜单和【LED】菜单都会生效,但是游戏运行中不会动态改变,只会在游戏开始前或者结束后调节   再次按【下键】会回到时间界面,按【上键】同理 子菜单也是,可以循环 代码实现在视频下方,我已经尽量把每个功能都注释好了,有问题大家可以回帖,我会挨个回复的   实现效果视频:   代码详解视频: 二期所有代码:

  • 加入了学习《【得捷电子Follow me第2期】DIY天气时钟 》,观看 【得捷电子Follow me第2期】DIY天气时钟

  • 2023-11-08
  • 回复了主题帖: 如何制作属于自己的字库文件

    wangerxian 发表于 2023-11-6 13:21 这个字库文件的格式是直接可以给MicroPython用的吗? 可以BDF PCF都可以

  • 2023-11-06
  • 发表了主题帖: 如何制作属于自己的字库文件

    在做"Follow me"第二期 任务一 活动中 显示中文 此时,就需要制作属于自己的字库文件,方便加载   第一步:下载安装FontForge,此步跳过,一直下一步就可以   第二步:下载需要的字体.ttf文件   第三步:汉化 在FontForge安装目录找到fontforge.bat文件,用记事本打开 修改set LANGUAGE=zh_CN 重启软件即可     第三步:打开FontForge读取需要的字体   第四步:找到要选择的字体多选 按住Shift可多选   第五步:反选不需要的字体     第六步:删除不需要的字体     第七步:取消垂直尺寸 元素  ->  字体信息 -> 通用    取消垂直尺寸       第八步:设置需要尺寸 看自己需要的字体大小 这里我设置了40       最后生成字体文件     搞定

  • 2023-11-02
  • 加入了学习《【得捷电子Follow me第2期】 项目汇报》,观看 【得捷电子Follow me第2期】 项目汇报

  • 发表了主题帖: 【得捷电子Follow me第2期】任务汇总帖

    本帖最后由 NoOneZero 于 2023-11-4 07:51 编辑 非常感谢DigiKey和EEWORLD发起的Follow me活动 让我了解并学习了CircuitPython的用法和使用 烧录配置过程我不在详述,帖子中有好多了,烧录并下载库 接下来我详细解释下我各个任务完成过程以及效果展示   贴张引脚图 以下各个任务   任务1:控制屏幕显示中文(必做任务)     1,根据字体以及要显示得字建立bdf文件         此步骤会单独开一个帖子,详细讲解如何生成属于自己得字库     2,把对应得库和字体放到CIRCUITPY驱动器上(如图,字体文件放到fonts目录下,库放lib目录)                  3.编写code代码     import board import displayio from adafruit_display_text import label from adafruit_bitmap_font import bitmap_font # 屏幕配置 display = board.DISPLAY # 使用字体 font_file = "fonts/Thank.bdf" font = bitmap_font.load_font(font_file) # 创建text显示组 text_group = displayio.Group(scale=1, x=0, y=0) text1 = "感谢" text1_area = label.Label(font, text=text1, color=0xFF0000, x=20, y=10) text2 = "得捷电子" text2_area = label.Label(font, text=text2, color=0x00FF00, x=20, y=50) text3 = "电子工程" text3_area = label.Label(font, text=text3, color=0x0000FF) text3_area.x = 0 # 设置文本的X坐标 text3_area.y = 90 # 设置文本的Y坐标 text3_area.line_spacing = 0.5 # 设置文本行间距 text3_area.scale = 2 # 设置文本放大倍数 text_group.append(text1_area) text_group.append(text2_area) text_group.append(text3_area) while True: display.show(text_group)     4,显示效果                5.代码以及字体包                     任务2:网络功能使用(必做任务) 完成网络功能的使用,能够创建热点和连接到WiFi 基于CircuitPython的便利性,联网工作只需要配置ESP32驱动器中settings.toml文件,加入如下两行即可 CIRCUITPY_WIFI_SSID = "账号" CIRCUITPY_WIFI_PASSWORD = "密码"   创建热点 import wifi ap_ssid = "eeworld" ap_pwd = "12345678" wifi.radio.start_ap(ap_ssid, ap_pwd) print("[ %s ] ap is begin" % ap_ssid) while True: pass 效果展示       任务3:控制WS2812B(必做任务) 此代码实现LED灯实现挨个显示255 * 255 * 255 = 16581375种颜色,由于时间太长,每个颜色步进改为20 import time import board import neopixel import digitalio # WS2812电源控制 power = digitalio.DigitalInOut(board.NEOPIXEL_POWER) power.direction = digitalio.Direction.OUTPUT power.value = True # WS2812设置 pixel = neopixel.NeoPixel(board.NEOPIXEL, 1) # 亮度 pixel.brightness = 0.8 while True: for r in range(0, 256, 20): # 红 for g in range(0, 256, 20): # 绿 for b in range(0, 256, 20): # 蓝 print("%d %d %d" % (r, g, b)) pixel.fill((r, g, b)) time.sleep(0.1) 实现效果   任务4我选择的是,分任务2:WS2812B效果控制 和 任务五 一起完成一个完整的项目,单独开贴

  • 加入了学习《Digi-Key: Follow Me 系列(2) 直播回放》,观看 Adafruit ESP32-S3 TFT Feather开发板使用入门

  • 2023-10-19
  • 加入了学习《2023得捷电子第一期总结视频》,观看 2023得捷电子第一期总结视频

最近访客

< 1/1 >

统计信息

已有16人来访过

  • 芯积分:74
  • 好友:1
  • 主题:11
  • 回复:3

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言