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

做问卷调查有哪些网站好六安哪家做网站不错

做问卷调查有哪些网站好,六安哪家做网站不错,以下属于购物搜索广告的是,网站模板下载地址环境简介 硬件环境 ESP32、光照传感器、温湿度传感器、继电器、蜂鸣器 基本工作流程 上位机先运行#xff0c;下位机启动后尝试连接上位机连接成功后定时上报传感器数据到上位机#xff0c;上位机将信息进行处理展示判断下位机传感器数据#xff0c;如果超过设置的阈值下位机启动后尝试连接上位机连接成功后定时上报传感器数据到上位机上位机将信息进行处理展示判断下位机传感器数据如果超过设置的阈值则下发控制命令控制下位机硬件点击上位机控制按钮即可下发控制指令控制硬件 上位机运行效果 硬件连接图 DHT11 温湿度传感器 接线图 VCC 3V3 GND GND DATA GPIO21D21 读取代码 #include stdio.h #include freertos/FreeRTOS.h #include freertos/task.h #include driver/gpio.h #include sdkconfig.h#define DHT11_PIN (21) //可通过宏定义修改引脚#define DHT11_CLR gpio_set_level(DHT11_PIN, 0) #define DHT11_SET gpio_set_level(DHT11_PIN, 1) #define DHT11_IN gpio_set_direction(DHT11_PIN, GPIO_MODE_INPUT) #define DHT11_OUT gpio_set_direction(DHT11_PIN, GPIO_MODE_OUTPUT)uint8_t DHT11Data[4]{0}; uint8_t Temp, Humi;//us延时函数误差不能太大 void DelayUs( uint32_t nCount) {ets_delay_us(nCount); } void DHT11_Start(void) { DHT11_OUT; //设置端口方向DHT11_CLR; //拉低端口 DelayUs(19*1000); // vTaskDelay(19 * portTICK_RATE_MS); //持续最低18ms;DHT11_SET; //释放总线DelayUs(30); //总线由上拉电阻拉高主机延时30uS;DHT11_IN; //设置端口方向while(!gpio_get_level(DHT11_PIN)); //DHT11等待80us低电平响应信号结束while(gpio_get_level(DHT11_PIN));//DHT11 将总线拉高80us }uint8_t DHT11_ReadValue(void) { uint8_t i,sbuf0;for(i8;i0;i--){sbuf1; while(!gpio_get_level(DHT11_PIN));DelayUs(30); // 延时 30us 后检测数据线是否还是高电平 if(gpio_get_level(DHT11_PIN)){sbuf|1; }else{sbuf|0;}while(gpio_get_level(DHT11_PIN));}return sbuf; }uint8_t DHT11_ReadTemHum(uint8_t *buf) {uint8_t check;buf[0]DHT11_ReadValue();buf[1]DHT11_ReadValue();buf[2]DHT11_ReadValue();buf[3]DHT11_ReadValue();check DHT11_ReadValue();if(check buf[0]buf[1]buf[2]buf[3])return 1;elsereturn 0; } void app_main(void) {printf(ESP32 DHT11 TEST:%s,%s!\r\n,__DATE__,__TIME__);gpio_pad_select_gpio(DHT11_PIN);while(1) {DHT11_Start();if(DHT11_ReadTemHum(DHT11Data)){TempDHT11Data[2];HumiDHT11Data[0]; printf(Temp%d, Humi%d\r\n,Temp,Humi);}else{printf(DHT11 Error!\r\n);}vTaskDelay(1000); //目前10s读取一次} } TEMT6000 接线图 VCC VCC GND GND OUT GPIO34D34 读取代码 #include driver/gpio.h #include driver/adc.h #include esp_adc_cal.h #include freertos/FreeRTOS.h #include freertos/task.h// ADC所接的通道 GPIO34 if ADC1 ADC1_CHANNEL_6 #define ADC1_TEST_CHANNEL ADC1_CHANNEL_6 // ADC斜率曲线 static esp_adc_cal_characteristics_t *adc_chars; // 参考电压 #define DEFAULT_VREF 3300 //使用adc2_vref_to_gpio获得更好的估计值void check_efuse(void) {//检查TP是否烧入eFuseif (esp_adc_cal_check_efuse(ESP_ADC_CAL_VAL_EFUSE_TP) ESP_OK) {printf(eFuse Two Point: Supported\n);} else {printf(eFuse Two Point: NOT supported\n);}//检查Vref是否烧入eFuseif (esp_adc_cal_check_efuse(ESP_ADC_CAL_VAL_EFUSE_VREF) ESP_OK) {printf(eFuse Vref: Supported\n);} else {printf(eFuse Vref: NOT supported\n);} } void adc_init(void) {adc1_config_width(ADC_WIDTH_BIT_12);// 12位分辨率adc1_config_channel_atten(ADC1_TEST_CHANNEL, ADC_ATTEN_DB_11);// 电压输入衰减adc_chars calloc(1, sizeof(esp_adc_cal_characteristics_t)); // 为斜率曲线分配内存esp_adc_cal_value_t val_type esp_adc_cal_characterize(ADC_UNIT_1, ADC_ATTEN_DB_11, ADC_WIDTH_BIT_12, DEFAULT_VREF, adc_chars);// print_char_val_type(val_type); } void app_main(void) {uint32_t read_raw;check_efuse();adc_init();while(1){read_raw adc1_get_raw(ADC1_TEST_CHANNEL);// 采集ADC原始值//这里可以多次采样取平均值uint32_t voltage esp_adc_cal_raw_to_voltage(read_raw, adc_chars);//通过一条斜率曲线把读取adc1_get_raw()的原始数值转变成了mVprintf(ADC原始值: %d 转换电压值: %dmV\n, read_raw, voltage);vTaskDelay(1000 / portTICK_RATE_MS);} }延时1s 1200 手电筒1档2688 手电筒2档4079 手电筒3档 烟雾传感器 接线图 3V3 VCC GND GND DO GPIO15 AO GPIO2 读取代码 /* ADC1 ExampleThis example code is in the Public Domain (or CC0 licensed, at your option.)Unless required by applicable law or agreed to in writing, thissoftware is distributed on an AS IS BASIS, WITHOUT WARRANTIES ORCONDITIONS OF ANY KIND, either express or implied. */ #include stdio.h #include stdlib.h #include freertos/FreeRTOS.h #include freertos/task.h #include driver/gpio.h #include driver/adc.h #include esp_adc_cal.h#define DEFAULT_VREF 1100 //Use adc2_vref_to_gpio() to obtain a better estimate #define NO_OF_SAMPLES 64 //Multisamplingstatic esp_adc_cal_characteristics_t *adc_chars; #if CONFIG_IDF_TARGET_ESP32 static const adc_channel_t channel ADC_CHANNEL_6; //GPIO34 if ADC1, GPIO14 if ADC2 static const adc_bits_width_t width ADC_WIDTH_BIT_12; #elif CONFIG_IDF_TARGET_ESP32S2 static const adc_channel_t channel ADC_CHANNEL_6; // GPIO7 if ADC1, GPIO17 if ADC2 static const adc_bits_width_t width ADC_WIDTH_BIT_13; #endif static const adc_atten_t atten ADC_ATTEN_DB_0; static const adc_unit_t unit ADC_UNIT_1;static void check_efuse(void) { #if CONFIG_IDF_TARGET_ESP32//Check if TP is burned into eFuseif (esp_adc_cal_check_efuse(ESP_ADC_CAL_VAL_EFUSE_TP) ESP_OK) {printf(eFuse Two Point: Supported\n);} else {printf(eFuse Two Point: NOT supported\n);}//Check Vref is burned into eFuseif (esp_adc_cal_check_efuse(ESP_ADC_CAL_VAL_EFUSE_VREF) ESP_OK) {printf(eFuse Vref: Supported\n);} else {printf(eFuse Vref: NOT supported\n);} #elif CONFIG_IDF_TARGET_ESP32S2if (esp_adc_cal_check_efuse(ESP_ADC_CAL_VAL_EFUSE_TP) ESP_OK) {printf(eFuse Two Point: Supported\n);} else {printf(Cannot retrieve eFuse Two Point calibration values. Default calibration values will be used.\n);} #else #error This example is configured for ESP32/ESP32S2. #endif }static void print_char_val_type(esp_adc_cal_value_t val_type) {if (val_type ESP_ADC_CAL_VAL_EFUSE_TP) {printf(Characterized using Two Point Value\n);} else if (val_type ESP_ADC_CAL_VAL_EFUSE_VREF) {printf(Characterized using eFuse Vref\n);} else {printf(Characterized using Default Vref\n);} }void app_main(void) {//Check if Two Point or Vref are burned into eFusecheck_efuse();//Configure ADCif (unit ADC_UNIT_1) {adc1_config_width(width);adc1_config_channel_atten(channel, atten);} else {adc2_config_channel_atten((adc2_channel_t)channel, atten);}//Characterize ADCadc_chars calloc(1, sizeof(esp_adc_cal_characteristics_t));esp_adc_cal_value_t val_type esp_adc_cal_characterize(unit, atten, width, DEFAULT_VREF, adc_chars);print_char_val_type(val_type);//Continuously sample ADC1while (1) {uint32_t adc_reading 0;//Multisamplingfor (int i 0; i NO_OF_SAMPLES; i) {if (unit ADC_UNIT_1) {adc_reading adc1_get_raw((adc1_channel_t)channel);} else {int raw;adc2_get_raw((adc2_channel_t)channel, width, raw);adc_reading raw;}}adc_reading / NO_OF_SAMPLES;//Convert adc_reading to voltage in mVuint32_t voltage esp_adc_cal_raw_to_voltage(adc_reading, adc_chars);printf(Raw: %d\tVoltage: %dmV\n, adc_reading, voltage);vTaskDelay(pdMS_TO_TICKS(1000));} }蜂鸣器 接线图 VCC VCC GND GND I/O D2GPIO2 设置代码 #include stdio.h #include stdlib.h #include unistd.h #include driver/gpio.h#define LED_PIN 2void app_main(void) {gpio_reset_pin(LED_PIN); //引脚复位gpio_pad_select_gpio(LED_PIN); //GPIO引脚功能选择gpio_set_direction(LED_PIN, GPIO_MODE_OUTPUT); //设置方向为输出while (1){gpio_set_level(LED_PIN,1); //设置LED_PIN为高电平sleep(1);gpio_set_level(LED_PIN,0); //设置LED_PIN为低电平sleep(1);} } 继电器 DCVCC 接 1口 DC- (GND)接 6 口 IN1 接 7 口 系统整体代码 Github仓库地址
http://www.hkea.cn/news/14529267/

相关文章:

  • 淘宝网站建设需求分析最专业的营销网站建设
  • 工厂做网站有用吗做外贸的网站主要有哪些内容
  • 德语网站制作九天娱乐代理平台
  • html5高端网站建设织梦模板wordpress默认logo图片路径
  • 成都网页编辑器开发seo推广效果
  • 视频解析网站如何做搜索网站图怎么做会高清图片
  • 网站在线开发网站 title 被修改
  • 泉州企业做网站手机网站建设好吗
  • 网站建设etw建设网站比较好公司吗
  • 深圳前十网站建设公司成品网页大全下载
  • 网站运营部的职责8黄页网站建设
  • 网站建设的后台登录wordpress怎样电影导航
  • 青岛市建设局网站停工网站上的验证码怎么做的
  • 网站建设合同中的违约责任网站建设的ppt模板
  • 做门用什么网站好网站优化策略分析
  • 网站建设968用什么网站开发巴西客户
  • 建设网站需要支付什么插件费用吗网站建设最新
  • 行业做门户网站挣钱吗erp系统十大软件
  • 做网站电话销售说辞外卖网站制作
  • 做网站找投资人传智播客网页平面设计
  • 福州网站排名百度seo搜搜
  • jsp做就业网站seo站长工具
  • django 网站开发视频扬中网站推广价格
  • 深圳如何搭建制作网站个人网站空间准备
  • 宁波专业网站推广平台咨询物联网平台层
  • 诸暨企业网站建设dedecms 网站 经常无法连接
  • 购物网站开发过程合肥全员核酸检测
  • 杭州网站建设(推荐乐云践新)服务器网站路径问题
  • 广州技术支持:网站建设网站建设兰州
  • 有没有做网站的联系方式vps 网站上传