当前位置: 首页 > news >正文

网站被k 但收录内页长白山网站学做管理平台

网站被k 但收录内页,长白山网站学做管理平台,qq推广中心,手机wap在线浏览器一、硬件介绍 1、产品特点 Arduino Nano 33 BLE Rev2,利用了nRF52840微控制器的先进功能。这款32位Arm Cortex-M4 CPU 64 MHz与MicroPython的兼容性增强了板子的灵活性,该开发板的突出特点是其蓝牙低功耗(BLE)功能,使…

一、硬件介绍

1、产品特点

Arduino Nano 33 BLE Rev2,利用了nRF52840微控制器的先进功能。这款32位Arm® Cortex®-M4 CPU 64 MHz与MicroPython的兼容性增强了板子的灵活性,该开发板的突出特点是其蓝牙低功耗(BLE)功能,使其能够轻松与其他蓝牙低功耗设备进行通信。Nano 33 BLE Rev2设计具备多功能性,配备了内置的9轴惯性测量单元、提供位置、方向和加速度的精确测量等。

在这里插入图片描述
在这里插入图片描述

微控制器nRF52840-
USB连接器Micro USB-
管脚LED引脚IO13
-通用数字I/O 引脚14个
-模拟输入引脚8个
-PWM 引脚所有数字I/O 引脚 (4 at once)
-外部中断所有数字I/O 引脚
连接Bluetooth®u-blox® NINA-B306
传感器IMUBMI270 (三轴加速度计+三轴陀螺仪) BMM150 (三轴磁力计)
麦克风MP34DT06JTR
手势检测、接近检测、数字环境光感(ALS)和色感(RGBC)APDS9960
气压LPS22HB
温湿度HS3003
通信UARTRX/TX
-I2CA4 (SDA), A5 (SCL)
-SPID11 (COPI), D12 (CIPO), D13 (SCK). Use any GPIO for Chip Select (CS)
供电输入 / 输出电压3.3 V
-输入电压(标准)5-18 V
-每个I/O引脚的电流10 mA
nRF52840时钟速度64 MHz
-存储256 KB SRAM、1 MB flash
尺寸重量0.32g
-宽度18 mm
-长度45 mm

2、功能引脚示意图 / 原理图

板载LED灯

IO13 引脚控制

原理图:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5V引脚仅在满足以下两个条件时可用:标记为VUSB的两个焊盘上制作焊接桥 / 通过USB端口为 Nano 33 BLE Sense Rev2 供电;如果从VIN引脚给电路板供电,不会得到任何稳定的5V,即使你做焊接桥,5V引脚也不会输出。

二、项目功能实现思想

【室内空气质量语音检测蓝牙调光台灯】

实现效果:

通过板载麦克风识别相关语音指令,可获取当前室内的温湿度、气压等信息输出到串口上,以及声控打开 / 关闭LED;

并且通过蓝牙功能,通过手机连接开发板,发送相关指令实现PWM调节LED亮度等功能;

实物效果搭建如下:

在这里插入图片描述

系统框图如下:

在这里插入图片描述

运行流程图如下:

在这里插入图片描述

三、功能实现主要步骤

主要相关代码

1、LED控制部分

int Ble_Data;   //接收到的蓝牙数据
int led = D2;   //LED引脚void Led_Init(void){pinMode(led, OUTPUT);digitalWrite(led,LOW);
}

2、温湿度获取部分

#include <Arduino_HS300x.h>void HS300x_Init(void){if (!HS300x.begin()) {Serial.println("温湿度传感器初始化失败!");while (1);}
}void HS300x_Get(void){float temperature = HS300x.readTemperature();	//温度float humidity    = HS300x.readHumidity();	//湿度Serial.print("温度 = ");Serial.print(temperature);Serial.println(" °C");Serial.print("湿度 = ");Serial.print(humidity);Serial.println(" %");Serial.println();
}

3、气压、海拔高度获取部分

#include <Arduino_LPS22HB.h>void LPS22HB_Init(void){
if (!BARO.begin()) {Serial.println("气压传感器初始化失败!");while (1);}
}void LPS22HB_Get(void){float pressure = BARO.readPressure(); //获取气压float altitude = 44330 * ( 1 - pow(pressure/101.325, 1/5.255) );  //获取海拔高度Serial.print("当前大气压 = ");Serial.print(pressure);Serial.println(" Kpa");Serial.print("当前海拔高度 = ");Serial.print(altitude);Serial.println(" m");
}

4、语音识别部分

唤醒词:
100 Hi Arduino

命令词:
10000 打开LED
10001 关闭LED
10002 获取室内空气质量

#include <Arduino.h>
#include <DSpotterSDK_MakerHL.h>
#include "CybLicense_1750150084.h"
#define DSPOTTER_LICENSE g_lpdwLicense#if defined(TARGET_ARDUINO_NANO33BLE) || defined(TARGET_PORTENTA_H7) || defined(TARGET_NICLA_VISION)
#include "Model_1750150084.h"    
#endif      #define DSPOTTER_MODEL g_lpdwModel
static DSpotterSDKHL g_oDSpotterSDKHL;// 回调处理函数
void VRCallback(int nFlag, int nID, int nScore, int nSG, int nEnergy)
{if (nFlag==DSpotterSDKHL::InitSuccess)  // 初始化成功{//ToDo}else if (nFlag==DSpotterSDKHL::GetResult) // 获取识别结果{//ToDo  处理代码switch(nID){case 100:Serial.println(F("Arduino 已唤醒!"));// Add your own code herebreak;case 10000:Serial.println(F("LED已打开"));digitalWrite(led,HIGH);break;case 10001:Serial.println(F("LED已关闭"));digitalWrite(led,LOW);break;case 10002:HS300x_Get();LPS22HB_Get();Ble_Init();delay(800);break;default:break;}}else if (nFlag==DSpotterSDKHL::ChangeStage) // 命令 / 指令状态切换{switch(nID){case DSpotterSDKHL::TriggerStage:     //唤醒词//To Dobreak;case DSpotterSDKHL::CommandStage:     //指令词//To Dobreak;default:break;}}else if (nFlag==DSpotterSDKHL::GetError)  //错误处理{if (nID == DSpotterSDKHL::LicenseFailed){}g_oDSpotterSDKHL.Release();// 释放SDK资源while(1);}}void voiceControl_Init(void){DSpotterSDKHL::ShowDebugInfo(true);if (g_oDSpotterSDKHL.Init(DSPOTTER_LICENSE, sizeof(DSPOTTER_LICENSE), DSPOTTER_MODEL, VRCallback) != DSpotterSDKHL::Success)return;
}void setup()
{voiceControl_Init();
}void loop()
{g_oDSpotterSDKHL.DoVR();
}

5、蓝牙控制部分

#include <ArduinoBLE.h>void Ble_Init(void){pinMode(LED_BUILTIN, OUTPUT); //初始板载LEDdigitalWrite(LED_BUILTIN, LOW);                if (!BLE.begin()) {Serial.println("蓝牙启动失败!");while (1);}// 蓝牙设备名称BLE.setLocalName("Nano 33 BLE Sense V2");BLE.setAdvertisedService(ledService);ledService.addCharacteristic(bleCharacteristic);BLE.addService(ledService);// 初始值bleCharacteristic.writeValue(0);BLE.advertise();
}void Ble_Get(void){BLEDevice central = BLE.central();// 连接成功if (central) {digitalWrite(LED_BUILTIN, HIGH);       //打开板载LEDwhile (central.connected()) {if (bleCharacteristic.written()) {int data = bleCharacteristic.value();if(data>=0 && data<=100){Ble_Data = map(data, 0, 100, 0, 255); // 蓝牙值 0~100 映射到PWM 0~255;analogWrite(led,Ble_Data);}}}//断开连接时 关闭所有LEDSerial.print(F("断开连接"));digitalWrite(LED_BUILTIN, LOW);digitalWrite(led, LOW); }
}

完整代码

#include <Arduino.h>
#include <DSpotterSDK_MakerHL.h>
#include "CybLicense_1750150084.h"#include <Arduino_LPS22HB.h>
#include <Arduino_HS300x.h>
#include <ArduinoBLE.h>
#define DSPOTTER_LICENSE g_lpdwLicense#if defined(TARGET_ARDUINO_NANO33BLE) || defined(TARGET_PORTENTA_H7) || defined(TARGET_NICLA_VISION)
#include "Model_1750150084.h"    
#endif      #define DSPOTTER_MODEL g_lpdwModel
static DSpotterSDKHL g_oDSpotterSDKHL;int led = D2;   //LED引脚BLEService ledService("180A"); BLEByteCharacteristic bleCharacteristic("2A57", BLERead | BLEWrite);// 回调处理函数
void VRCallback(int nFlag, int nID, int nScore, int nSG, int nEnergy)
{if (nFlag==DSpotterSDKHL::InitSuccess)  // 初始化成功{//ToDo}else if (nFlag==DSpotterSDKHL::GetResult) // 获取识别结果{//ToDo  处理代码switch(nID){case 100:Serial.println(F("Arduino 已唤醒!"));// Add your own code herebreak;case 10000:Serial.println(F("LED已打开"));digitalWrite(led,HIGH);break;case 10001:Serial.println(F("LED已关闭"));digitalWrite(led,LOW);break;case 10002:HS300x_Get();LPS22HB_Get();Ble_Init();delay(800);break;default:break;}}else if (nFlag==DSpotterSDKHL::ChangeStage) // 命令 / 指令状态切换{switch(nID){case DSpotterSDKHL::TriggerStage:     //唤醒词//To Dobreak;case DSpotterSDKHL::CommandStage:     //指令词//To Dobreak;default:break;}}else if (nFlag==DSpotterSDKHL::GetError)  //错误处理{if (nID == DSpotterSDKHL::LicenseFailed){}g_oDSpotterSDKHL.Release();// 释放SDK资源while(1);}}void Led_Init(void){pinMode(led, OUTPUT);digitalWrite(led,LOW);pinMode(LED_BUILTIN, OUTPUT); //初始板载LEDdigitalWrite(LED_BUILTIN, LOW);         
}void voiceControl_Init(void){DSpotterSDKHL::ShowDebugInfo(true);if (g_oDSpotterSDKHL.Init(DSPOTTER_LICENSE, sizeof(DSPOTTER_LICENSE), DSPOTTER_MODEL, VRCallback) != DSpotterSDKHL::Success)return;
}void HS300x_Init(void){if (!HS300x.begin()) {Serial.println("温湿度传感器初始化失败!");while (1);}
}void LPS22HB_Init(void){if (!BARO.begin()) {Serial.println("气压传感器初始化失败!");while (1);}
}void Ble_Init(void){if (!BLE.begin()) {Serial.println("蓝牙启动失败!");while (1);}// 蓝牙设备名称BLE.setLocalName("Nano 33 BLE Sense V2");BLE.setAdvertisedService(ledService);ledService.addCharacteristic(bleCharacteristic);BLE.addService(ledService);// 初始值bleCharacteristic.writeValue(0);BLE.advertise();}void HS300x_Get(void){float temperature = HS300x.readTemperature();	//温度float humidity    = HS300x.readHumidity();	//湿度Serial.print("温度 = ");Serial.print(temperature);Serial.println(" °C");Serial.print("湿度 = ");Serial.print(humidity);Serial.println(" %");
}void LPS22HB_Get(void){float pressure = BARO.readPressure(); //获取气压float altitude = 44330 * ( 1 - pow(pressure/101.325, 1/5.255) );  //获取海拔高度Serial.print("当前大气压 = ");Serial.print(pressure);Serial.println(" Kpa");Serial.print("当前海拔高度 = ");Serial.print(altitude);Serial.println(" m");
}void Ble_Get(void){BLEDevice central = BLE.central();// 连接成功if (central) {digitalWrite(LED_BUILTIN, HIGH);       //打开板载LEDwhile (central.connected()) {if (bleCharacteristic.written()) {int data = bleCharacteristic.value();if(data>=0 && data<=100){int Ble_Data = map(data, 0, 100, 0, 255); // 蓝牙值 0~100 映射到PWM 0~255;analogWrite(led,Ble_Data);}}}//断开连接时 关闭所有LEDSerial.print(F("断开连接"));digitalWrite(LED_BUILTIN, LOW);analogWrite(led,LOW);}
}void setup()
{Serial.begin(9600);while(!Serial);voiceControl_Init();Led_Init();HS300x_Init();LPS22HB_Init();
}void loop()
{g_oDSpotterSDKHL.DoVR();Ble_Get();
}

四、实现现象

ARDUINO NANO 33 BLE SENSE V2

http://www.dtcms.com/a/510069.html

相关文章:

  • 网站建设炫彩图片网站切换城市代码
  • 模板建站教程网站制作 培训
  • 专门做算法项目的网站深圳旅游网站建设
  • wordpress本地建站教程帮人做钓鱼网站
  • 郑州建网站费用哈尔滨旅游团购网站建设
  • 优秀网站建设空间有哪些网站建设工作
  • 桥的设计网站建设西地那非一粒能硬几天
  • 有没有可以免费做试卷的网站_最好可以学会...泊美网站建设总目的
  • 做产品推广得网站厦门做网站seo的
  • Huber损失函数:稳健回归的智慧之选
  • 网站访问流量怎么赚钱百度站长平台官网
  • 公司网站建设及维护有没有专门招代理的网站
  • 山西大同企业做网站做h的小说网站
  • 田园综合体建设网站背景网站建设
  • 最好的国内科技网站建设wordpress 导航函数
  • app手机网站模板免费下载网络营销专业专升本考什么
  • 如何通过网站做网上报名系统泉州seo建站
  • 做网站的人 优帮云做简单的网站首页
  • 蓝色商务网站模板diy平台
  • 无锡城乡建设局网站三国网页游戏排行榜前十名
  • wap手机网站尺寸html网页设计作品中国传统文化
  • 网站开发公司排名360排名优化工具
  • 个人免费开发网站自助建微网站
  • 网站简易后台天津有哪些互联网公司
  • 盐城专业做网站的公司林州网站建设策划
  • 平台网站建设所需资质网站建设公司net2006
  • 怎样做像绿色和平组织类似的网站长宁做手机网站建设
  • 做做网站app企业网站运营问题
  • 深圳建英文网站公司做企业网站须知
  • 为网站的特色功能设计各种模板免费ppt模板免费