首页
留言板
友链
统计
Search
1
树莓派换源最新教程及注意事项(更换为清华源)
1,677 阅读
2
Alist上传大文件报错Request failed with status code 413
746 阅读
3
google colab打包下载文件夹
701 阅读
4
Luat Air780E/Air700E使用MQTT协议接入巴法云物联网平台
398 阅读
5
Luat Air780E/Air700E获取设备经纬度后使用MQTT协议发送至巴法云
384 阅读
嵌入式笔记
stm32
esp8266
raspberry-pi
esp32
机器视觉笔记
opencv
yolo
typecho笔记
vps
typecho美化
悄悄话
登录
Search
标签搜索
esp8266
air700e
typecho
onenet
mediapipe
悄悄话
星星
累计撰写
34
篇文章
累计收到
23
条评论
首页
栏目
嵌入式笔记
stm32
esp8266
raspberry-pi
esp32
机器视觉笔记
opencv
yolo
typecho笔记
vps
typecho美化
悄悄话
页面
留言板
友链
统计
搜索到
34
篇与
的结果
2023-04-01
Luat Air780E/Air700E使用MQTT协议接入巴法云物联网平台
Air780E/Air700E开发板基于Lua语言使用MQTT协议接入巴法云物联网平台。
2023年04月01日
398 阅读
1 评论
0 点赞
2023-03-03
pip安装opencv并编写测试代码
步骤一:安装OpenCV使用以下命令安装OpenCV:pip3 install opencv-python步骤二:下载测试图片我们需要先下载一张测试图片,可以使用以下命令下载:wget https://raw.githubusercontent.com/opencv/opencv/master/samples/data/lena.jpg下载完成后,可以使用以下命令查看图片是否下载成功:ls如果能看到名为“lena.jpg”的文件,说明图片下载成功。步骤三:编写测试代码接下来,我们可以使用Python编写测试代码,并命名为test_opencv.py。代码如下:import cv2 # 读取图片 img = cv2.imread('lena.jpg') # 转换为灰度图像 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 对灰度图像进行直方图均衡化处理 eq = cv2.equalizeHist(gray) # 显示原图像和直方图均衡化处理后的图像 cv2.imshow('image', img) cv2.imshow('equalized', eq) # 等待按下任意按键 cv2.waitKey(0) # 关闭所有窗口 cv2.destroyAllWindows() 代码中使用了OpenCV的相关函数来读取图片、将图片转换为灰度图像、对灰度图像进行直方图均衡化处理,最后展示原图像和处理后的图像。其中,cv2.imshow()函数用于显示图像,cv2.waitKey()函数用于等待按键,cv2.destroyAllWindows()函数用于关闭所有窗口。步骤四:运行测试代码运行测试代码前,我们需要确保OpenCV已经成功安装并且可以正常工作。可以使用以下命令来检查OpenCV是否安装成功:python3 -c "import cv2; print(cv2.__version__)"如果成功安装,将会输出OpenCV的版本号。接下来,我们可以使用以下命令来运行测试代码:python3 test_opencv.py代码会打开名为“image”的窗口,显示原图像;同时打开名为“equalized”的窗口,显示直方图均衡化处理后的图像。可以使用鼠标拖动窗口或按下任意按键来关闭窗口。总结以上就是使用pip安装OpenCV并编写测试代码的完整教程。通过这个教程,我们可以快速搭建OpenCV的Python环境,并进行图像处理和计算机视觉应用的开发。
2023年03月03日
148 阅读
0 评论
0 点赞
2023-02-25
ESP8266通过MQTT(旧版)连接onenet平台
#include <ESP8266WiFi.h> #include <PubSubClient.h> #include <ArduinoJson.h> #include <Ticker.h> #include <SimpleDHT.h> #define WIFI_DEBUG 0 //1:使用一键配网,其它值则使用默认无线账号密码 #define ONENET_DISCONNECTED 1 //已经断开 #define ONENET_CONNECTED 2 //已经连接上 #define ONENET_RECONNECT 3 //重连成功 int pinDHT11 = 2; //设置DHT11的引脚 SimpleDHT11 dht11(pinDHT11); #define VER "ESP8266_MQTT_V1.0" //版本号 const char* ssid = "########";//wifi账号 const char* password = "########";//wifi密码 /*OneNet*/ PubSubClient mqttClient; const char* mqttServer = "183.230.40.39";//mqtt服务器 const uint16_t mqttPort = 6002; //端口号 #define onenet_productId "########" //产品ID #define onenet_deviceId "########" //设备ID #define onenet_apiKey "########" //API_KEY int state; Ticker delayTimer; WiFiClient espClient; /* 延时N秒 */ void delayNs(uint8_t m){ for(uint8_t index = 0;index<m;index ++){ delay(1000); ESP.wdtFeed(); } } /* 延时重启 */ void delayRestart(float t) { Serial.print("Restart after "); Serial.print(t); Serial.println("s"); delayTimer.attach(t, []() { Serial.println("\r\nRestart now!"); ESP.restart(); }); } /* 自动连接 */ bool autoConfig() { WiFi.begin(); for (int i = 0; i < 20; i++) { if (WiFi.status() == WL_CONNECTED) { Serial.println("AutoConfig Success"); Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str()); Serial.printf("PSW:%s\r\n", WiFi.psk().c_str()); WiFi.printDiag(Serial); return true; } else { Serial.print("AutoConfig Waiting......"); Serial.println(WiFi.status()); delay(1000); } } Serial.println("AutoConfig Faild!" ); return false; } /* 一键配网 */ void smartConfig() { WiFi.mode(WIFI_STA); Serial.println("\r\nWait for Smartconfig"); WiFi.beginSmartConfig(); while (1) { Serial.print("."); digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN)); if (WiFi.smartConfigDone()) { Serial.println("SmartConfig Success"); Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str()); Serial.printf("PSW:%s\r\n", WiFi.psk().c_str()); WiFi.setAutoConnect(true); // 设置自动连接 break; } delay(1000); // 这个地方一定要加延时,否则极易崩溃重启 } } /* 连接OneNet */ int connectToOneNetMqtt(){ int cnt = 0; while(!mqttClient.connected()){ ESP.wdtFeed(); cnt++; Serial.println("Connect to OneNet MQTT..."); if (mqttClient.connect(onenet_deviceId,onenet_productId,onenet_apiKey)) { Serial.println("connect success!"); return ONENET_RECONNECT; } else { Serial.print("connect fail!"); Serial.println(" try again in 5 seconds"); delayNs(5); } if(cnt >=10){ //只做10次连接到OneNet,连接不上重启8266 cnt = 0; delayRestart(1); } } return ONENET_CONNECTED; } /* 云端下发 */ void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Message arrived ["); Serial.print(topic); Serial.print("] "); for (int i = 0; i < length; i++) { Serial.print((char)payload[i]); } Serial.println(); if ((char)payload[0] == '1') { digitalWrite(LED_BUILTIN, LOW); } else { digitalWrite(LED_BUILTIN, HIGH); } } /* 发布温度信息 */ void Temp_pubMQTTmsg(uint32_t data){ long lastMsg = 0; char msg[50]; char tmp[28]; char d[3]; snprintf(tmp,sizeof(tmp),"{\"Temp\":%d}",data); uint16_t streamLen= strlen(tmp); d[0]='\x03'; d[1] = (streamLen >> 8); d[2] = (streamLen & 0xFF); snprintf(msg,sizeof(msg),"%c%c%c%s",d[0],d[1],d[2],tmp); mqttClient.publish("$dp", (uint8_t*)msg,streamLen+3,false); } /* 发布湿度信息 */ void Humi_pubMQTTmsg(uint32_t data){ long lastMsg = 0; char msg[50]; char tmp[28]; char d[3]; snprintf(tmp,sizeof(tmp),"{\"Humi\":%d}",data); uint16_t streamLen= strlen(tmp); d[0]='\x03'; d[1] = (streamLen >> 8); d[2] = (streamLen & 0xFF); snprintf(msg,sizeof(msg),"%c%c%c%s",d[0],d[1],d[2],tmp); mqttClient.publish("$dp", (uint8_t*)msg,streamLen+3,false); } /* 初始化系统 */ void initSystem(){ int cnt = 0; Serial.begin (115200); Serial.println("\r\n\r\nStart ESP8266 MQTT"); Serial.print("Firmware Version:"); Serial.println(VER); Serial.print("SDK Version:"); pinMode(LED_BUILTIN, OUTPUT); digitalWrite(LED_BUILTIN, HIGH); Serial.println(ESP.getSdkVersion()); ESP.wdtEnable(5000); if(WIFI_DEBUG==1)//开启一键配网模式 { if (!autoConfig()) { Serial.println("Start smartConfig"); smartConfig(); } } else { WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); cnt++; Serial.print("."); if(cnt>=40){ cnt = 0; //重启系统 delayRestart(1); } } } Serial.print("WIFI Connect \r\n"); } /* 初始化ONENET通信 */ void initOneNetMqtt(){ mqttClient.setServer(mqttServer,mqttPort); mqttClient.setClient(espClient); mqttClient.setCallback(callback); } /* 初始化 */ void setup() { initSystem(); initOneNetMqtt(); } /* 主函数 */ void loop() { ESP.wdtFeed(); state = connectToOneNetMqtt(); Serial.println(WiFi.status()); if(state == ONENET_RECONNECT){ mqttClient.loop(); } else if(state == ONENET_CONNECTED){ // read without samples. byte temperature = 0; byte humidity = 0; int err = SimpleDHTErrSuccess; if ((err = dht11.read(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess) { Serial.print("Read DHT11 failed, err="); Serial.print(SimpleDHTErrCode(err)); Serial.print(","); Serial.println(SimpleDHTErrDuration(err)); return; } Serial.print("Sample OK: "); Serial.print((float)temperature); Serial.print(" *C, "); Serial.print((float)humidity); Serial.println(" H"); Temp_pubMQTTmsg((float)temperature); Humi_pubMQTTmsg((float)humidity); mqttClient.loop(); } delay(2000); }
2023年02月25日
93 阅读
0 评论
0 点赞
2023-02-18
当kunkun遇上yolov8
本来挺喜欢yolov8的。{bilibili bvid="BV1kM411w7FJ" page=""/}
2023年02月18日
175 阅读
0 评论
0 点赞
2023-02-17
几个yolo的教程网站
github(yolov5) yolov5 github(yolov8) yolov8 yolov8 docs yolov8 docs roboflow yolo notebooks roboflow yolo yolov8 notebooks yolov8 notebooks
2023年02月17日
243 阅读
0 评论
0 点赞
2023-02-16
opencv采集视频流源码
程序源码import cv2 capture = cv2.VideoCapture(0) while True: ret, frame = capture.read() frame = cv2.flip(frame,0) #镜像操作 cv2.imshow("video", frame) key = cv2.waitKey(50) #print(key) if key == ord('q'): #判断是哪一个键按下 break cv2.destroyAllWindows()cv2.flip() 函数解析语法:cv2.flip(filename, flipcode) {message type="info" content="filename:需要操作的图像flipcode:翻转方式"/}flipcode作用1水平翻转0垂直翻转-1水平垂直翻转
2023年02月16日
182 阅读
0 评论
0 点赞
2023-02-16
树莓派VNC连接报错vnc cannot current show the desktop
可能问题一VNC远程桌面连接屏幕分辨率设置错误解决方案: 进入SSH,输入 sudo raspi-config 进入设置界面,进入 Display Options 选项,选择 VNC Resolution 进入调整VNC远程连接的分辨率。可能问题二树莓派内存不足解决方案: 进入SSH,输入以下命令清理内存。sudo apt-get clean sudo apt-get update可能问题三VNC功能未打开解决方案:进入SSH,输入 sudo raspi-config 进入设置界面,进入 Advance Option 中打开VNC功能,等待下载完成后重启树莓派再进行VNC连接。可能问题四直接重启解决
2023年02月16日
71 阅读
1 评论
0 点赞
1
2
3
...
5