使用ESP32-CAM打造智能家居监控系统
首先我们需要用到设备:
- ESP32-CAM(20元左右)
- USB转TTL串口(几块钱)or 底板
我这边使用到的是ESP32-CAM拼夕夕二十多买的,质量还可以,然后用到了USB转TTL串口。
首先我们先进行连线。
5V->5V
VOR->TX
VOT->RX
GND->GND
此时还要用杜邦线将IO0与GND连接起来,需要连接起来才能进行上传下载。下载完成后要查看的时候在断开。
在此处更改WIFI的账号与密码:
此处为视频的刷新FPS;越高越流畅
代码写完后。在此处点击上传;
如果出现以下状况
需要按一下板上的复位按键,就是唯一可以按的那个按钮。
上传成功后打开串口
拔掉IO0与GND连接。在按一下RST
连接成功。复制网址。
成功运行,我们也可以在APP端设计个软件。我简单的设计了一下。代码如下:
MainActivity:
package com.huangfushi.mjpeg_1;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.Bitmap;
import android.os.Build;
import android .os .Bundle;
import android.app.Activity;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AlertDialog;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.Window;
import android.webkit.WebChromeClient;
import android.webkit.WebResourceRequest;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ZoomButtonsController;
import java.lang.reflect.Field;
public class MainActivity extends Activity {
private WebView wv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
wv = (WebView) findViewById(R.id.wv);
wv.getSettings().setJavaScriptEnabled(true);
wv.getSettings().setPluginState(WebSettings.PluginState.ON);
wv.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
wv.getSettings().setAllowFileAccess(true);
wv.getSettings().setDefaultTextEncodingName("UTF-8");
wv.getSettings().setLoadWithOverviewMode(true);
wv.getSettings().setUseWideViewPort(true);
wv.setVisibility(View.VISIBLE);
wv.loadUrl("http://192.168.0.102/mjpeg/1");
}
}
布局文件如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.huangfushi.mjpeg_1.MainActivity">
<TextView
android:layout_width="348dp"
android:layout_height="wrap_content"
android:textSize="80sp"
android:text="家"
android:gravity="center" />
<WebView
android:layout_width="355dp"
android:layout_height="400dp"
android:id="@+id/wv"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true" />
</LinearLayout>
需要加入网络权限
最终的效果图: