- 2024-08-21
-
加入了学习《CH582 微信小程序控制LED》,观看 CH582 微信小程序控制LED
-
加入了学习《CH582 AHT 温湿度计》,观看 CH582 AHT10 温湿度计
- 2024-05-23
-
加入了学习《直播回放: TI 毫米波雷达在楼宇自动化的应用》,观看 TI 毫米波雷达在楼宇自动化的应用
- 2024-05-06
-
加入了学习《直播回放: ADI 惯性 MEMS 传感器的应用价值与选型》,观看 ADI 惯性 MEMS 传感器的应用价值与选型
- 2024-03-05
-
发表了主题帖:
【安信可BW16-Kit开发板】BLE应用—温度测量与显示
【安信可BW16-Kit开发板】BLE应用—温度测量与显示
在《【安信可BW16-Kit开发板】DHT11应用》和《【安信可BW16-Kit开发板】WifiWebClient应用》中分别介绍了利用安信可BW16-Kit开发板进行温度测试和wifi应用,本篇介绍一下安信可BW16-Kit开发板在ArduinoIDE下的BLE应用示例。有关BW16-Kit开发板基本性能和Arduino开发环境搭建不在赘述。
一、BLE应用开发示例
按下图连接好线路,注意BW16-Kit开发板DHT11信号线连接A26引脚。
ArduinoIDE环境下选择开发板为Ameba。
选择“Tools” -> “Board” -> “Arduino Ameba”
然后打开AmebaBLE下的DHT over BLEUart示例,“Files”->“Examples” ->“AmebaBLE”->“DHT_over_BLEUart”。
程序如下
/*
Example
*/
#include "BLEDevice.h"
#include "DHT.h"
#define UART_SERVICE_UUID "6E400001-B5A3-F393-E0A9-E50E24DCCA9E"
#define CHARACTERISTIC_UUID_RX "6E400002-B5A3-F393-E0A9-E50E24DCCA9E"
#define CHARACTERISTIC_UUID_TX "6E400003-B5A3-F393-E0A9-E50E24DCCA9E"
#define STRING_BUF_SIZE 100
#define DHTPIN 8
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
BLEService UartService(UART_SERVICE_UUID);
BLECharacteristic Rx(CHARACTERISTIC_UUID_RX);
BLECharacteristic Tx(CHARACTERISTIC_UUID_TX);
BLEAdvertData advdata;
BLEAdvertData scndata;
bool notify = false;
void writeCB (BLECharacteristic* chr, uint8_t connID) {
Serial.print("Characteristic ");
Serial.print(chr->getUUID().str());
Serial.print(" write by connection ");
Serial.println(connID);
if (chr->getDataLen() > 0) {
Serial.print("Received string: ");
Serial.print(chr->readString());
Serial.println();
}
}
void notifCB(BLECharacteristic* chr, uint8_t connID, uint16_t cccd) {
if (cccd & GATT_CLIENT_CHAR_CONFIG_NOTIFY) {
Serial.print("Notifications enabled on Characteristic");
notify = true;
} else {
Serial.print("Notifications disabled on Characteristic");
notify = false;
}
Serial.print(chr->getUUID().str());
Serial.print(" for connection");
Serial.println(connID);
}
void setup() {
Serial.begin(115200);
advdata.addFlags();
advdata.addCompleteName("AMEBA_BLE_DEV");
scndata.addCompleteServices(BLEUUID(UART_SERVICE_UUID));
Rx.setWriteProperty(true);
Rx.setWritePermissions(GATT_PERM_WRITE);
Rx.setWriteCallback(writeCB);
Rx.setBufferLen(STRING_BUF_SIZE);
Tx.setReadProperty(true);
Tx.setReadPermissions(GATT_PERM_READ);
Tx.setNotifyProperty(true);
Tx.setCCCDCallback(notifCB);
Tx.setBufferLen(STRING_BUF_SIZE);
UartService.addCharacteristic(Rx);
UartService.addCharacteristic(Tx);
BLE.init();
BLE.configAdvert()->setAdvData(advdata);
BLE.configAdvert()->setScanRspData(scndata);
BLE.configServer(1);
BLE.addService(UartService);
BLE.beginPeripheral();
dht.begin();
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
String msg = ("Humidity: " + String((int) h) + "%\t" + "Temperature: " + String((int) t) + "°C\n");
Tx.writeString(msg);
if (BLE.connected(0) && notify) {
Tx.notify(0);
}
delay(5000);
}
二、运行
1、打开手机蓝牙客户端,搜索到蓝牙名为AMEBA_BLE_DEV,并配对;
2、在列表中选择名为“AMEBA_BLE_DEV”,点击进入下面的界面后,选择“UNknown Service”选项;
运行结果如下:
- 2024-02-25
-
发表了主题帖:
【安信可BW16-Kit开发板】WifiWebClient应用
【安信可BW16-Kit开发板】WifiWebClient应用
随着物联网的兴起,在许多项目中,我们需要使用Arduino开发板来实现与互联网的无线连接。使用WiFi模块,我们可以轻松实现物联网应用,将传感器数据发送到云平台或者通过云平台控制设备。安信可BW16-Kit具有Ble、Wifi功能。本文将介绍一下在Arduino下使用BW16-Kit开发板连接WEB客户端方法。
一、安信可BW16-Kit介绍
安信可科技BW16是双频 Wi-Fi+蓝牙SoC模组,支持双频(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和BT5.0协议功能。
【特性】
支持 802.11a/b/g/n 1x1,2.4GHz or 5GHz
支持 HT20/HT40 模式
支持低功耗信标监听模式,低功耗接收模式,低功耗挂起模式
内置 AES / DES / SHA 硬件引擎
支持 TrustZone-M,支持安全启动
支持 SWD 调试端口访问保护和禁止模式
支持 BLE 和 BT5.0
蓝牙支持高功率模式(7dBm,与 Wi-Fi 共享同一 PA)
Wi-Fi 和 BT 共用同一天线
支持 STA/AP/STA+AP 工作模式
支持安卓、IOS 的 Simple Config(APP)WiFi一键配网
支持蓝牙辅助配网
支持串口本地升级和远程固件升级(FOTA)
二、环境搭建
BW16-Kit开发板的Arduino开发环境搭建介绍的文章很多,这里就不在赘述,可参考相关文章。【安信可BW16-Kit】+搭建环境 - RF/无线 - 电子工程世界-论坛 (eeworld.com.cn)
三、WifiWebClient应用开发示例
我们使用Ameba连上WiFi,作为客户端,从百度上获取资讯。
ArduinoIDE环境下选择开发板为Ameba,
选择“Tools” -> “Board” -> “Arduino Ameba”
然后打开 WiFi Web Client的范例, “File” -> “Examples” -> “WiFi” -> “WiFiWebClient”
将WiFi连线的相关讯息,如下图中黄色标注的地方进行对应的修改。
4、程序如下
#include <WiFi.h>
char ssid[] = "xxxx"; // your network SSID (name)
char pass[] = "xxxx"; // your network password (use for WPA, or use as key for WEP)
int keyIndex = 0; // your network key Index number (needed only for WEP)
int status = WL_IDLE_STATUS;
IPAddress server(153,3,238,102); // numeric IP for Google (no DNS)
//char server[] = "www.baidu.com"; // name address for Google (using DNS)
WiFiClient client;
void setup() {
Serial.begin(115200);
while (!Serial) {
;
}
if (WiFi.status() == WL_NO_SHIELD) {
Serial.println("WiFi shield not present");
while (true);
}
while (status != WL_CONNECTED) {
Serial.print("Attempting to connect to SSID: ");
Serial.println(ssid);
status = WiFi.begin(ssid, pass);
delay(10000);
}
Serial.println("Connected to wifi");
printWifiStatus();
Serial.println("\nStarting connection to server...");
if (client.connect(server, 80)) {
Serial.println("connected to server");
client.println("GET /search?q=ameba HTTP/1.1");
client.println("Host: www.baidu.com");
client.println("Connection: close");
client.println();
}
delay(100);
}
void loop() {
while (client.available()) {
char c = client.read();
Serial.write(c);
}
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting from server.");
client.stop();
while (true);
}
}
void printWifiStatus() {
Serial.print("SSID: ");
Serial.println(WiFi.SSID());
IPAddress ip = WiFi.localIP();
Serial.print("IP Address: ");
Serial.println(ip);
long rssi = WiFi.RSSI();
Serial.print("signal strength (RSSI):");
Serial.print(rssi);
Serial.println(" dBm");
}
5、程序使用到下面的API函数:
在连线WiFi时会使用到WiFi.begin();
连线成功后会读取WiFi的信息:显示WiFi的名称WiFi.SSID()
显示WiFi的讯号强度WiFi.RSSI()
显示Ameba的IP信息WiFi.localIP()
建立一个Client: WiFiClient()
客户端通过服务器的IP和端口连线client.connect()
向服务器对发送数据并开启新的一行 client.println()
判断是否有数据从服务器端发送过来client.available()
客户端读取数据client.read()
客户端断开与服务器的连线client.stop()
四、运行结果
显示运行结果如下:
- 2024-02-21
-
发表了主题帖:
【安信可BW16-Kit开发板】DHT11应用
【安信可BW16-Kit开发板】DHT11应用
按照安信可BW16-Kit开发板官方介绍,此款开发版支持Linux、Arduino IDE、Python开发环境。Linux、Arduino IDE开发环境搭建已经有很多文章介绍,这里就不在赘述。本文重点介绍Python开发环境搭建及程序烧录。
一、DHT11介绍
DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,内部由一个 8 位单片机控制一个电阻式感湿元件和一个 NTC 测温元件。其温度测量范围为 0~50℃,误差在±2℃;湿度的测量范围为 20%~90%RH,误差在±5%RH。DHT11 电路很简单,只需要将 DATA 引脚连接单片机的一个 I/O 即可,不过该引脚需要上拉一个 5K 的电阻,DHT11 的供电电压为 3~5.5V。
1、DHT11引脚说明
pin
名称
注释
1
VDD
供电3~5V
2
DATA
串行数据,单总线
3
NC
空脚
4
GND
接地,电源负极
2、传感器性能参数
参数
条件
Min
Type
Max
单位
湿度
分辨率
1
1
1
%RH
8
Bit
重复性
±1
%RH
精度
25℃
±4
%RH
0~25℃
±5
%RH
互换性
可完全互换
量程范围
0℃
30
90
%RH
25℃
20
90
%RH
50℃
20
80
%RH
响应时间
1/e(63%)25℃,
1m/s空气
6
10
15
S
迟滞
±1
%RH
长期稳定性
典型值
±1
%RH/yr
温度
分辨率
1
1
1
℃
8
8
8
Bit
重复性
±1
℃
精度
±1
±2
℃
量程范围
0
50
℃
响应时间
1/e(63%)
6
30
S
3、接口说明
建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻。DHT11的供电电压为3-5.5V。传感器上电后,要等待1s以越过不稳定状态在此期间无需发送任何指令。电源引脚(VDD,GND)之间可增加一个100nF的电容,用以去耦滤波。
4、MCU连接示意图
5、串行接口(单线双向)
DATA用于微处理器与DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零。操作流程如下:
一次完整的数据传输为40bit,高位先出。
数据格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和
数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。
用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据。从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集。采集数据后转换到低速模式。
总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号。主机发送开始信号结束后,延时等待20-40us后,读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可,总线由上拉电阻拉高。
二、运行范例
1、Arduino环境下程序如下
#include "DHT.h"
#define DHTPIN 8
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
Serial.println(F("DHTxx test!"));
dht.begin();
}
void loop() {
// Wait a few seconds between measurements.
delay(2000);
float h = dht.readHumidity();
// Read temperature as Celsius (the default)
float t = dht.readTemperature();
// Read temperature as Fahrenheit (isFahrenheit = true)
float f = dht.readTemperature(true);
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
float hif = dht.computeHeatIndex(f, h);
float hic = dht.computeHeatIndex(t, h, false);
Serial.print(F("Temperature: "));
Serial.print(hic);
Serial.print(F(" ℃ "));
Serial.print(F("Humidity: "));
Serial.print(hif);
Serial.println(F(" ℉"));
}
2、运行结果
显示运行结果如下:
三、总结
从上面示例我们可以看出,在Arduino环境下可以很容易对安可信BW16-Kit进行二次开发。
- 2024-02-12
-
发表了主题帖:
【安信可BW16-Kit开发板】Python开发环境搭建
【安信可BW16-Kit开发板】Python开发环境搭建
按照安信可BW16-Kit开发板官方介绍,此款开发版支持Linux、Arduino IDE、Python开发环境。Linux、Arduino IDE开发环境搭建已经有很多文章介绍,这里就不在赘述。本文重点介绍Python开发环境搭建及程序烧录。
一、开发环境搭建
1、首先进入官网Ameba MicroPython – Realtek IoT/Wi-Fi MCU Solutions (amebaiot.com),找到BW16 Type C (Ameba RTL8720DN)位置,详细阅读入门指南。
2、进入指南Ameba MicroPython: Getting Started with BW16 Type C – Realtek IoT/Wi-Fi MCU Solutions (amebaiot.com),阅读指南中的《设置开发环境》内容,主要是安装python环境。
3、固件烧录
步骤1: 找到“Firmware_and_DownloadTool.zip”文件夹
从 https://github.com/ambiot/micropython 点击 Releases 选项。
您将能够找到如下图所示的资料夹。
点击下载,解压缩资料夹,找到名为“Images”文件夹下的“BW16”文件夹,有4个.bin文件。
步骤2: 打开串口终端
通过type C将BW16-Kit连接上PC,按下“RST”不要松开,再按住“Burn”按钮,然后依次松开“RST”和“Burn”按钮,此时开发板进入下载模式,串口中断显示内容如下:
步骤3: 上传固件
下载固件烧录软件BW16-flash_tool,运行ImageTool.exe工具软件,并按照图中所标步骤进行,第1步芯片选择8721,COM口依据实际选择,波特率选115200,点击OPEN按钮,显示CLOSE,选择需要上传的.BIN文件(步骤1下载解压的文件),点击DOWNLOAD按钮,上传成功后,您会看到屏幕上打印一行 – “All images are sent successfully”。大约需要3~5分钟。
步骤4: 运行
上传成功后,按下“RST”按钮,在串口终端显示如下内容,说明python环境搭建成功。
二、运行WiFi扫描范例
步骤1: 打开 python IDE,配置选项
第一次使用时要进行设置项,进行配置,点击“工具”à“设置”,如下图:
配置完毕后重启BW16。
步骤2:运行示例
在命令窗口中输入如下代码:
from wireless import WLAN
wifi = WLAN(mode = WLAN.STA)
wifi.scan()
点击运行按钮,显示运行结果如下:
三、总结
通过对python开发环境的搭建,我们可以使用python对安可信BW16-Kit进行二次开发,由于python的便捷性和低代码特点,使得开发更简单。
- 2024-01-28
-
发表了主题帖:
【安信可BW16-Kit开发板】开箱报告
【安信可BW16-Kit开发板】开箱报告
首先真诚感谢eeword、安信可给了我这次参与《安信可BW16-Kit开发板》评测的机会。打开快递,取出安信可BW16-Kit开发板,第一感觉是小巧,质量优。
一、硬件配置介绍
BW16-Kit 开发板是安信可针对BW16 模组而设计的一款核心开发板,该开发板引出全部I/O 至两侧的排针,板载RGB 七彩灯,开发者也可以根据自己的需求连接外设。
BW16 是基于RTL8720DN 开发的双频Wi-Fi+蓝牙SoC 模组。它支持双频(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 和BT5.0协议功能。
主要参数:
支持802.11a/b/g/n 1x1,2.4GHz or 5GHz
支持HT20/HT40 模式
支持低功耗信标监听模式,低功耗接收模式,低功耗挂起模式
内置AES/DES/SHA 硬件引擎
支持TrustZone-M,支持安全启动
支持SWD 调试端口访问保护和禁止模式
支持BLE 和BT5.0
蓝牙支持高功率模式(7dBm,与Wi-Fi 共享同一PA)
Wi-Fi 和BT 共用同一天线
支持STA/AP/STA+AP 工作模式
支持安卓、IOS 的Simple Config(APP)/AirKiss(微信) 一键配网
支持串口本地升级和远程固件升级(FOTA)
通信接口:1个SPI,2个UART,1路ADC,3路PWM,1个I2C,1个Type-C接口
二、开发板硬件
原理图
图1 BW16-Kit 开发板原理图
开发板实物及引脚
图2 BW16-Kit 开发板实物正面
图3 BW16-Kit 开发板实物背面
图4 BW16-Kit 开发板及模块引脚图
三、上电运行
使用type_C USB连线与PC连接,打开串口终端程序,按下RST键,便可得到如图5所示界面,表明BW16-Kit 开发板运行正常。此时打开手机,运行蓝牙AAP,便可搜索到名为:U-EWHCB66的蓝牙设备,见图6。
图5 BW16-Kit 开发板连接PC通信界面
图6 BW16-Kit 开发板与手机蓝牙APP连接界面
- 2024-01-12
-
回复了主题帖:
【入围名单】: 安信可BW16-Kit
收到 ,地址没有错,请发货