
Linux Arm
文章平均质量分 85
菜老越
学习使我快乐
展开
-
【开源小项目】室内环境远程监测系统
一、前言此开源小项目纯属个人需求突发奇想,适用于以下场合:1.需要获取室内温湿度、空气质量;2.需要远程获取;3.室内没有电源,没有wifi热点;基于以上3个需求,指定了以下方案:1.温湿度采集使用DHT11传感器,空气质量使用SGP30传感器;2.远程获取,需要搭建云服务器,刚好双十一花50买了个linux百度云服务器,正好可以在这上边写server端;同时,为了方便远程获取数据,基于QtforAndroid编写手机APP,只要能上网,即可通过TCP/IP连接至云服务器拉取数据;3.没有电原创 2021-02-04 10:24:33 · 1621 阅读 · 2 评论 -
【物联网】esp8266+云服务器搭建物联网通道
一 概要接触过一些物联网云平台,如阿里云、华为云、腾讯云、机智云等,要想使一个嵌入式设备接入物联网平台,一般需要一下几个步骤:1.通过2G、4G、NB-IOT、WIFI等手段让你的嵌入式设备能接入公网;2.将物联网云平台生成的设备密钥写入嵌入式设备,其中,这个密钥相当于设备唯一ID;3.在云平台创建“数据节点”、“控制节点”等。4.移植云平台的SDK程序到你的嵌入式设备。以上2、3、4步确实能通过云平台现有的功能来极大的提高设备接入物联网的效率。但想真正理解物联网、云平台,还需要自己研究、或者说原创 2020-11-18 19:29:04 · 4913 阅读 · 1 评论 -
【Linux】定时器发出的SIGALRM信号与sleep、usleep、select、poll等函数冲突的解决办法
在Linux应用编程时,有需要用到定时器的场合,类似于单片机内的定时器中断——规定时间到了之后执行特定代码。一、定时器的使用简介以下为定时器的一个简单例子,初始化定时器后每隔一秒调用一次TimerFuc进行打印。#include <stdio.h>#include <stdlib.h>#include <signal.h>#include <time.h>#include <sys/time.h>void TimerFuc(){原创 2020-07-20 16:07:47 · 3781 阅读 · 1 评论 -
【Linux】将4G模组挂载为网卡,利用socket进行网络通讯
在使用4g模组时,传统单片机的做法是mcu通过串口连接模组,通过AT指令结合串口收发实现对4g模组的操作,最终目的是实现tcp、udp等网络通信。而在linux中编程中,通常以建立socket套接字的形式进行网络通讯,在linux-arm开发板上,若要实现4g通讯,且还想保留socket的通讯方式,则需要将4g模组通过usb连接arm板,挂载为linux的一张网卡,从而通过这张网卡进行socket通讯。这很像早年的usb无线上网卡,设备里要插一张SIM卡,然后用usb连接电脑,电脑就可以用它上网了。要实现原创 2020-07-10 19:38:50 · 6576 阅读 · 4 评论 -
【Linux】移植USB、CH340驱动到arm板,并作测试
手里的linux-arm开发板引出了USB接口,可以接各种设备进行控制、通讯。单片机开发中我们经常用到基于CH340芯片的TTL转USB小模块进行单片机与电脑间的通信。为了验证开发板原创 2020-07-01 16:56:49 · 7497 阅读 · 2 评论 -
【Opencv】OSD反色处理
通过上一篇博文【海思】利用opencv给海思抓拍图像加OSD,现在已经可以在摄像头抓拍照片的基础上进行OSD叠加了,同时也实现了背景色透明的OSD叠加。基于上一篇结尾留出的小问题,今天利用Opencv实现了叠加字体的反色,从而使得OSD在图片中更为突出。具体思路如下:1、获取OSD中每个字符将要叠加到原图的区域2、根据区域获取原图在此区域的平均灰度值3、若平均灰度值大于某一值(即偏白色),则将OSD位图相应区域重画为黑色,否则(偏黑色)不做处理,因为生成的字符串是本来就是白色的。我封装了一个函数,原创 2020-06-04 11:59:40 · 1720 阅读 · 0 评论 -
【海思】利用opencv给海思抓拍图像加OSD
上一篇博文【海思图像视频OSD准备——移植freetype、SDL、SDL_ttf到开发板】已能利用freetype+SDL+SDL_ttf的方式生成字串位图了。现在以抓拍为例,介绍一种OSD的方法。可以明确的是:我们可以通过海思的region区域管理来实现OSD的叠加,也可以通过opencv的方式实现OSD的叠加。由于海思已有现成的sample_region来实现OSD了,那我就通过另一种方式——opencv叠加OSD。1、图像叠加摄像头拍照后,将编码数据赋值给opencv的Mat图像处理类,然后读入原创 2020-06-03 19:24:41 · 2850 阅读 · 0 评论 -
【海思】图像视频OSD准备——移植freetype、SDL、SDL_ttf到开发板
在图像视频监控中,需要在画面中增加监控地点、时间戳等水印,通过我之前写的【opencv交叉编译移植到linux-arm开发板,并做测试】已经可以利用opencv方便的将时间戳打到抓拍的图像上。使用opencv打水印虽然简单方便,但存在两个缺点:1.putText不可放置中文;2.应用在视频OSD显然是不方便的,因为海思的region区域管理通常以bmp位图叠加的方式进行OSD,通过阅读官方SDK例程的sample_region源码可以看出,其例程是读入已有的bmp文件叠加在视频流中,例程中bmp是死的,原创 2020-06-02 18:40:08 · 4172 阅读 · 7 评论 -
【Linux】多进程管道通信,及select、poll函数在其中的应用
管道是最常用的进程间的通信方法。通常的实验例程为——创建管道->创建进程->父进程通过管道发送数据->子进程通过管道接收数据并显示。如下代码所示,需要的东西都写在注释中。#include <stdio.h>#include <unistd.h>#include <sys/wait.h>int main(){ int res; char *buf = "this is data to trans"; //管道发送的原创 2020-05-08 19:23:09 · 1361 阅读 · 0 评论 -
【Linux】一种多线程创建、监视手段
目前对Linux的多进程、多线程理解还不够深入。在现有理解的基础上,写了一套多线程的创建、维护例程。具备以下特性:1.批量创建,类似于注册;2.批量监视;3.重启机制直接上代码,注释很详细#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>...原创 2020-05-07 19:18:23 · 538 阅读 · 1 评论 -
【Linux】基于Linux系统的云服务器TCP server编写,多线程并发
腾讯云、华为云等可以申请个人云服务器,一般为15-30天。其作用是使你获得一个公网IP,使得任意设备都可以由这个IP向你发起通讯。同时提供24小时在线的云虚拟机,作为服务器,云虚拟机一般安装linux系统,并能通过SSH远程登陆虚拟机并进行linux下的终端操作。说通俗点就是腾讯给你提供一个安装了linux的虚拟机,主机在腾讯那,并给你提供了固定的公网IP,相当于你有了一个公网IP和一个linux...原创 2019-11-09 16:12:22 · 1135 阅读 · 0 评论 -
【Linux】利用eclipse远程调试目标板程序
在单片机开发中,都可以利用iar或keil等ide,用仿真器对单片机进行调试。而在linux-arm开发中,应用程序运行在目标板的linux系统下,高效的调试能大大提高开发效率。这个过程自然少不了linux下的调试神器gdb。但问题在于,我现在要调试的是目标板的程序——交叉编译后运行在目标板的程序,而且还要进行远程调试。这里就带来了两个问题:1.如何远程连接目标板,并使程序进入调试状态;2.调试...原创 2020-05-06 17:34:24 · 1496 阅读 · 1 评论 -
【Linux】opencv交叉编译移植到linux-arm开发板,并做测试
1.下载源码使用opencv3.4.1,官网下载。下载后解压获得opencv-3.4.1文件夹,进入后新建一个文件夹并进入,用于后续的交叉编译。mkdir arm-buildcd arm-build2.安装环境安装cmake以及图形界面配置的cmake-guisudo apt-get install cmakesudo apt-get install cmake-gui3.c...原创 2020-05-04 21:48:46 · 9474 阅读 · 15 评论 -
【Linux】安装opencv4避坑指南
linux环境:虚拟机Ubuntu16.04如果要安装opencv3.x.x,请移步Linux学习之安装OpenCV3.4.1,只要按步骤来就没有问题。问题是如果安装opencv4.x.x,那么上述就行不通了。下面给出linux下安装opencv4的步骤:1.安装依赖sudo apt-get install cmake sudo apt-get install build-essenti...原创 2020-04-28 14:42:30 · 7604 阅读 · 2 评论