milk-V Duo で POE 監視カメラを作ろう

こんなものを、作ります。

![IMG_20231111_003518.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/a208f79d-89cc-c925-0414-f69c69592101.jpeg)

![IMG_20231111_004125.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/54f75aa2-c2cd-1216-9efc-1aa954c5d0bb.jpeg)


「milk-V Duo First impression」
https://qiita.com/nanbuwks/items/2e704af9ea7d64480321

で紹介した小さい Linux マシン。

実は Milk-V Duo はRJ-45をつなぐことができる。
通常はパルストランス付きのRJ-45コネクタをつなぐのだが、Ethernetケーブルを直接はんだづけする猛者もいて、なんとそれで動いている。



さて、POE ケースというのがあって、

![IMG_20231110_235756.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/43f1b6bb-40c9-f919-a9a5-1ee388fbcaec.jpeg)

この中身はこんな。

![IMG_20231110_235807.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/3ed3e1a0-ae34-5557-f7e2-3e346facd9c7.jpeg)

DCJACK には 12V が出るようになっている。milk-V は https://github.com/milkv-duo/duo-hardware

によると 18V  まで VSYS に入力できるらしい。

ということは、これを使うと 有線LANと電源、およびケースも一挙に milk-V に提供できるようになる。

楽しい工作を、はじめよう!


# 用意するもの 

- milk-V Duo
- milk-V 用カメラ
- ケーブルなど
- PoE ケース

# 工作しよう

ケーブルをカットし、線をむきます。

![IMG_20231111_001235.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/762358c6-1dcb-3e6d-325d-b90d25b231a2.jpeg)

このように、接続します。赤の線は延長してください。

![IMG_20231111_002216.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/7fa68e94-b637-a9b1-6a82-d344261ce4ed.jpeg)

裏側はみ出たはんだを、カットします。

![IMG_20231111_002410.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/782a0d8a-e07e-6e9b-abad-e98798e92726.jpeg)

microSDカードに干渉
しないように。

![IMG_20231111_002517.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/ee2e9545-d0a0-8f3b-9c74-19972c34d28c.jpeg)

カメラのケースを土台にして、両面テープで止めます。


![IMG_20231111_003201.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/2568357b-09fb-db86-2734-c6fca1d9958d.jpeg)


LANケーブルを配線
![IMG_20231111_003229.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/b18ef4b0-d124-ec2d-c958-17016fd589ab.jpeg)




ケースを閉じて、カメラを両面テープで貼ります。
![IMG_20231111_003339.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/9d200859-f786-97a0-c2e8-de24c98abe53.jpeg)

動作しているところ


![IMG_20231111_003450.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/b57fb81c-f2ad-0d57-639e-f59eb8921c6e.jpeg)


この状態でのネットワーク状態
```
# ifconfig
eth0      Link encap:Ethernet  HWaddr A6:7B:4B:0E:8C:DA  
          inet addr:192.168.0.105  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: 2409:11:8c60:a00:6af5:62aa:787d:9220/64 Scope:Global
          inet6 addr: fe80::eb1a:a1f6:290e:6cf3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:567 errors:0 dropped:0 overruns:0 frame:0
          TX packets:134 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:50407 (49.2 KiB)  TX bytes:11357 (11.0 KiB)
          Interrupt:22 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:112 errors:0 dropped:0 overruns:0 frame:0
          TX packets:112 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:6776 (6.6 KiB)  TX bytes:6776 (6.6 KiB)

usb0      Link encap:Ethernet  HWaddr B2:A7:11:F9:F8:FD  
          inet addr:192.168.42.1  Bcast:192.168.42.255  Mask:255.255.255.0
          inet6 addr: fe80::b0a7:11ff:fef9:f8fd/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:87 errors:0 dropped:0 overruns:0 frame:0
          TX packets:49 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:14087 (13.7 KiB)  TX bytes:7792 (7.6 KiB)

```

インターネットにも繋がります。
```
[root@milkv-duo]~# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=0 ttl=60 time=10.268 ms
64 bytes from 8.8.8.8: seq=1 ttl=60 time=7.418 ms
^C
--- 8.8.8.8 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 7.418/8.843/10.268 ms
```


当然ながら、PoE アダプタを使うと USB ケーブルがなくても電源を供給することができます。
|
![IMG_20231111_004125.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/6550ae8e-6d12-5f38-e275-5f919e5c0a53.jpeg)

PoE アダプタを使わないときには、通常のLANインターフェースとして使います。そのときには USBケーブルから電源を供給します。


# ソフトウェア設定

milk-V カメラについては以下で解説されています。
https://milkv.io/docs/duo/camera/gc2083

その中のリンクから、 duo_camera_test_v0.2.tar.gz を milk-V にダウンロードして、設定すると rtsp サーバとして動作するようになります。

# カメラ映像を見てみる

ネットワーク接続で、rtsp プレーヤを使って見てみます。

rtsp は

`rtsp://servername:portno/name` でアクセスします。例えば milk-V Duo を USB の RDS ネットワークで接続していた場合、

`rtsp://192.168.42.1:8554/stream0`

 で動作します。