DVRやIPカメラにネットからアクセスしたいがDDNS機能がないとき、使えない時

防犯カメラの録画機であるDVR(NVRやXVRとも呼ぶ)やIPカメラには
ほとんど全てといっていいほど、インターネットからのアクセス機能がついています。

外部からDVRに接続する設定方法には、
UPnP(ユニバーサルプラグアンドプレイ)やDDNSが代表格になるかと思います。

ですが本ブログでも何度か言っていますが、セキュリティが良くわからない場合には
UPnPは使用しない事をお勧めします。
楽天やYahoo!,Amazon等で販売されている中華DVRの場合には絶対に使用しないことを強くお勧めします。
(業務用以外の日本市場で販売されている民生用DVRはほぼ全て中華DVRです)

よくあるのが
「QRコードが表示されて、ここにアクセスして少し設定するだけで簡単アクセス!」
的なふれこみがされているものになります。

このUPnPはポートマッピングを行って、ルーターのNAT越えをしP2P通信をしたり、
中国にあるDNSサーバーにアクセスすることで通信を確立させます。

確かにネットワークがわからない方にとっては、特に何も設定をしなくても
インターネット経由(アプリ等)で簡単に見られるようになるので、
知らずしらずに利用している方は多いようです。

ですが、

「カメラの画像が誰でもみられるようになっていたり」、

「機器自体が容易に乗っ取られて、他サーバーを攻撃していた」

という事も多々発生しております。

なので、まだDDNSとルーターの組み合わせのほうが比較的安全なので、
外部からアクセスして映像を見たい方は
DDNSの設定をしてみてはいかがでしょうか?
(ルーターのポートフォワーディング設定もしっかり行いましょう!!)

ただ、DDNSはDVR設置されている箇所のIPアドレスとURLを紐づけるため
インターネット経由で誰でも、DVRまでアクセスが可能です。

なので、できればVPN経由でしかアクセスできないようにしましょう。
最近VPN付のルーターの価格が数千円で買えるようになってきたため
できればVPN機能付きのルーターを使い、VPNでアクセスする設定しましょう。
※VPNルータと言っても民生用(tp-link等)は脆弱性が指摘されているため100%安全というわけではありません
ただ、しないよりはだいぶマシです。

で、ここからが本題なのですが、タイトルにあるように
DDNSが自由に設定ができないDVRやIPカメラが売られている場合があります

特に、アマゾンや楽天等で売られている格安モデルには、
DDNS欄によく知らない会社のドメインが指定されていて、
自分が使いたいDDNSサービス会社のドメインを指定できない場合があります。

つまり、使用できるDDNSサービス会社を限定されている場合です。

こういう場合お手上げかというと、そうでもありません。

バッファローやコレガ、エレコムなどがルーターという機器をだしておりますが
おそらくほぼ全てのご家庭で使用しているかと思います。
「えっ、使っていない!」
と思った方でも、ご家庭では無線LANを使用していれば、
それが”ルーター”になります。(AP機能だけのものもありますが、その場合親ルーターがどこかにあるはず)

そのルーターに、DDNS機能が搭載されている機種が多くあります。
「ルーターのDDNS設定の箇所にDDNSサービス会社から指定されたご自分のURL、ユーザー名、パスワードを設定する」
だけでルーターが一定時間毎に自分のグローバルIPをDDNSサービス会社のDNSに通知するので、
DDNSアドレスにアクセスするだけで、そのルーターのあるネットワークにアクセスできるようになります。
(ルーターにDVRへのポートフォワーディング設定もしないと外部からは映像を見られません!)

これで、せっかく買ったIPカメラやDVRでDDNSが使えなくても、
ルーターのDDNS機能を使うことで外部から見る事ができるようになります。

ArduinoでI2Cを使って格安LCDの1602に文字を表示させよう!

写真左の格安液晶モジュール1602に
写真右のI2C アダプターを利用して、簡単に文字を表示させることができます。

LCDにI2Cドライバを実装(要ハンダ付)

下記のようにI2CモジュールとArduino UNOを繋ぐ
I2Cモジュール → Arduino UNO
GND → GND
VCC → 5V
SDA → A4
SCL → A5

まずは、LiquidCrystal_I2C ライブラリをダウンロードして取り込み。

LiquidCrystal_I2C ライブラリ

スケッチは下記

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2);

void setup() {
  lcd.init(); 
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("Hello, world!!");
}

void loop(){
}

どうでしょうか?表示されましたか?

画面が真っ青であったり、何も映らない場合には、モジュール裏面の可変抵抗がLCDコントラスト調整ツマミ
になっているので回して調整してみてください。

モジュール裏面のA0, A1, A2はハンダブリッジの組み合わせでアドレスを変更できます。
1個も半田ブリッジが無い「全てオープン」の状態では、デフォルトの
「0x27」
となっています。

LCDもI2Cモジュールも150円くらいで手に入るので、

約300円程度でArduinoに簡単に液晶表示をさせることができるようになります。