WiFi+4G摄像头拍照图传模块(夜视2K高清1080P)-定时拍照http post(form-data方式)上传到服务器,然后低功耗休眠(休眠时长由服务器控制)
<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/product/audioCamera.html" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
测试
1,此功能需要web服务器,然后服务器上是使用PHP接收的数据
把这个文件放到自己的web服务器上

Windows:(根据自己的服务器配置!!!!),我放到了网站根目录的PHP文件夹里面

Linux:(根据自己的服务器配置!!!!),我放到了网站根目录的PHP文件夹里面

2,用户把这节工程放到开发环境的下面的目录(和hello word同一级目录)

3,测试连接自己的服务器时替换为自己的服务器ip地址, 然后编译下载

4, 上传完成以后,服务器下发休眠多少时间(分钟), 休眠的时候板子上的指示灯就灭了

服务器上可以看到上报的照片

还生成了一个txt文件,当前电压,信号强度

设备端程序说明
1,摄像头采集和发送图片





2,在http接收函数里面解析数据,并休眠


3,服务器程序上设置的是返回两个时间

sleep_time是拍照发送完成以后休眠的时间;
err_time 是执行失败以后休眠的时间
4,用户可以键盘按下 ctrl+F 来搜索下 err_time ,可以看到哪些地方设置了执行失败休眠

5,关于form-data使用

6,移植使用之前看一下audio_camera.h里面的版本
这边尽量做到版本向下兼容; 如果有不兼容的地方会在文档中说明

7,移植使用(如果想把http的form-data这个功能使用在自己的工程里面)
把例程文件夹里面的 libaudio_camera.a 文件拷贝到自己的工程(替换掉原先的)

把例程文件夹里面的 audio_camera.h 文件拷贝到自己的工程(替换掉原先的)

然后清理编译以后就可以使用了

服务器端PHP文件说明
<?php $client_id = $_POST['client_id'];//获取设备上传的client_id $time = $_POST['time'];//获取设备上传的时间 $vbat = $_POST['vbat'];//获取设备上传的电池电压 $rssi = $_POST['rssi'];//获取设备上传的信号强度 /*使用设备上传的client_id创建一个文件夹*/ $path = "./audio_camera/".$client_id; if( is_dir($path) === false ) { mkdir($path,0777); } // $imgname = $_FILES['files']['name']; //上传的文件临时存储的位置 $tmp = $_FILES['files']['tmp_name']; // $error = $_FILES['files']['error']; //把临时文件存储到 $path 文件夹($path 就是上面以设备的上传的client_id创建的文件夹) //文件的名字为:$time.".jpg" (上传的时间.jpg) move_uploaded_file($tmp, $path."/".$time.".jpg"); $filename = $path."/"."info.txt"; // 设置要创建的txt文件名为"new.txt" $content = "电压=".$vbat.";信号强度=".$rssi; // 设置要写入的内容 // 将内容写入txt文件 if (file_put_contents($filename, $content) !== false) { // echo "成功创建并写入了txt文件!"; } else { // echo "无法创建或写入txt文件。"; } $ret = array('code'=>'OK','imei'=>$client_id,'time'=>$time,'vbat'=>$vbat,'rssi'=>$rssi,'sleep_time'=>60,'err_time'=>30);//组合成key-value形式的数组 echo json_encode($ret);//把数组转为json格式 ?>
.
浙公网安备 33010602011771号