curious4dev

中国旅行、Arduinoなどを使った電子工作、その他色々。

*

Raspberry PI2 + HX003ZT + 0simで接続実験

 

お疲れ様です。高橋です。

ちょっと前に、so-netの毎月500MByteまで無料で使える0simというSIMをゲットしました。これをRaspberry PI2に挿して、スタンドアローンで何かしらのセンサーデータをどこかに投げられたら面白いかも、と思います。

前に、元同僚の凄いエンジニアの方から、ZTEのHX003ZTという3Gモデムを貰ったので、実験です。

手順1. HX003ZTに0simを挿す

届いた0simを3Gモデムに挿すだけです。

手順2. raspberry PI2にHX003ZTを挿して起動する

起動後にlsusbすると、

root@raspberrypi:/tmp# lsusb
Bus 001 Device 004: ID 056e:4008 Elecom Co., Ltd
Bus 001 Device 006: ID 19d2:0031 ZTE WCDMA Technologies MSM MF110/MF627/MF636
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

となり、ZTEの3Gモデムが認識されてます。

手順3. wvdialをインストール

3Gモデムを使ってppp接続するには、wvdialという物が必要っぽいので、早速インストール。

root@raspberrypi:/tmp# apt-get install wvdial

特に問題なくインストール完了。

手順4. wvdialのconfをいじる

wvdialの設定ファイルをいじって、0simが使えるようにします。

root@raspberrypi:/tmp# cat /etc/wvdial.conf
[Dialer Defaults]
Init1 = ATZ
Init2 = ATH
Init3 = AT+CGDCONT=2,"IP","so-net.jp"
Init4 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Dial Attempts = 3
Stupid Mode = yes
Modem Type = Analog Modem
Dial Command = ATD
New PPPD = yes
APN = so-net.jp
Modem = /dev/ttyUSB2
Baud = 115200
ISDN = 0
Phone = *99***2#
Auto Reconnect = yes
Username = nuro
Password = nuro
Carrier Check = no

これでok。

手順5. wvdialを実行する

結論から言うと、下記を行います。

root@raspberrypi:/tmp# eject /dev/cdrom
root@raspberrypi:/tmp# wvdial

最初にejectしないと、raspberry piに挿した3Gモデムが何故かcdromデバイスとして認識されます。ejectすると/dev/ttyUSB2が現れます。

wvdialを実行すると下記のように画面が表示されます。

root@raspberrypi:/home/pi# wvdial
--> WvDial: Internet dialer version 1.61
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATH
ATH
OK
--> Sending: AT+CGDCONT=2,"IP","so-net.jp"
AT+CGDCONT=2,"IP","so-net.jp"
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Modem initialized.
--> Sending: ATD*99***2#
--> Waiting for carrier.
CONNECT 7200000
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Mon Jul 31 21:04:26 2017
--> Pid of pppd: 1007
--> Using interface ppp0
--> pppd: ps[04]
--> pppd: ps[04]
--> pppd: ps[04]
--> pppd: ps[04]
--> pppd: ps[04]
--> pppd: ps[04]
--> local IP address 100.65.7.32
--> pppd: ps[04]
--> remote IP address 10.64.64.64
--> pppd: ps[04]
--> primary DNS address 118.238.201.33
--> pppd: ps[04]
--> secondary DNS address 118.238.201.49
--> pppd: ps[04]
--> pppd: ps[04]
--> Connect time 7.6 minutes.
--> pppd: ps[04]
--> pppd: ps[04]
--> pppd: ps[04]
--> pppd: ps[04]
--> Disconnecting at Mon Jul 31 21:12:01 2017
--> The PPP daemon has died: A modem hung up the phone (exit code = 16)
--> man pppd explains pppd error codes in more detail.
--> Try again and look into /var/log/messages and the wvdial and pppd man pages for more information.
--> Auto Reconnect will be attempted in 5 seconds
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATH
ATH
OK
--> Sending: AT+CGDCONT=2,"IP","so-net.jp"
AT+CGDCONT=2,"IP","so-net.jp"
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Modem initialized.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATH
ATH
OK
--> Sending: AT+CGDCONT=2,"IP","so-net.jp"
AT+CGDCONT=2,"IP","so-net.jp"
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Modem initialized.
--> Sending: ATD*99***2#
--> Waiting for carrier.
CONNECT 7200000
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Mon Jul 31 21:12:06 2017
--> Pid of pppd: 1353
--> Using interface ppp0
--> pppd: ps[04]
--> pppd: ps[04]
--> pppd: ps[04]
--> pppd: ps[04]
--> pppd: ps[04]
--> pppd: ps[04]
--> local IP address 100.66.22.141
--> pppd: ps[04]
--> remote IP address 10.64.64.64
--> pppd: ps[04]
--> primary DNS address 118.238.201.33
--> pppd: ps[04]
--> secondary DNS address 118.238.201.49
--> pppd: ps[04]

これでraspberry piに0sim経由のIP ADDRESSが割り振られました。

root@raspberrypi:/tmp# ifconfig ppp0
ppp0 Link encap:Point-to-Point Protocol
 inet addr:100.66.22.141 P-t-P:10.64.64.64 Mask:255.255.255.255
 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
 RX packets:7 errors:0 dropped:0 overruns:0 frame:0
 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:3
 RX bytes:130 (130.0 B) TX bytes:181 (181.0 B)

手順6. 0simからの通信にネットワーク設定を変える

接続するだけじゃダメで、0simを介して通信する必要があります。私のraspberry piは、通常はwimax経由でインターネットに繋がってますので、wlan0(wimax)から、ppp0(0sim)に変更します。

root@raspberrypi:/tmp# sudo route del default dev wlan0
root@raspberrypi:/tmp# sudo route add default dev ppp0

設定が反映されている事を確認し、

root@raspberrypi:/tmp# netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default * 0.0.0.0 U 0 0 0 ppp0
10.64.64.64 * 255.255.255.255 UH 0 0 0 ppp0
192.168.100.0 * 255.255.255.0 U 0 0 0 wlan0

defaultがppp0になってます。

手順7. 0sim経由で通信してみる

raspberry piから外のサーバ、ここではこのblogのURLを叩いて・・・

root@raspberrypi:/tmp# wget 'http://curious4dev.mydns.jp/?hogehoge'
--2017-07-31 21:33:08-- http://curious4dev.mydns.jp/?hogehoge
Resolving curious4dev.mydns.jp (curious4dev.mydns.jp)... 54.148.149.89
Connecting to curious4dev.mydns.jp (curious4dev.mydns.jp)|54.148.149.89|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘index.html?hogehoge.1’

index.html?hogehoge.1 [ <=> ] 70.68K 15.7KB/s in 4.5s

2017-07-31 21:33:14 (15.7 KB/s) - ‘index.html?hogehoge.1’ saved [72372]

ec2側で、「118.241.251.227」でリクエストが受信出来ている事を確認し、

[root@ip-172-31-26-47 centos]# tail -f /var/log/httpd/access_log | grep 'hogehoge'
118.241.251.227 - - [31/Jul/2017:21:33:09 +0900] "GET /?hogehoge HTTP/1.1" 200 72372 "-" "Wget/1.16 (linux-gnueabihf)"

このIPアドレス(118.241.251.227)がnuroのものである事を確認します。

root@raspberrypi:/tmp# host 118.241.251.227
227.251.241.118.in-addr.arpa domain name pointer mp76f1fbe3.ap.nuro.jp.

 

以上、よろしくお願い致します。

 - 雑記

  関連記事

ヘッドフォンのプラグを直し中。

お疲れ様です。高橋です。 会社で私の前の席に座っている方が「ヘッドフォンの先っち …

中国のECサイトで買った電子部品が届いた

お疲れ様です。高橋です。 中国のECサイト “AliExpress& …

androidアプリを素人が開発

お疲れ様です。高橋です。 私はアプリを作ったことが全く無い未経験者ですが、and …

首都圏外郭放水路を見学してきた

お疲れ様です。高橋です。 首都圏外郭放水路の見学会 首都圏外郭放水路、というもの …

カルトナージュのスキル

お疲れ様です。高橋です。 フワフワした21歳の女子向けの電子オルゴールを作ろうと …

Maker Fair Tokyo 2015 視察報告

お疲れ様です。高橋です。 東京ビッグサイトで行われた Maker Fair To …

ハルロックを借りて読んでいる。

お疲れ様です。高橋です。 2015/1/5, 6, 7と、パソコンが使えない状態 …

西野カナは本当に会いたいのか、調べてみた。

お疲れ様です。高橋です。 日曜日のいい時間に起きて、松田聖子を聞きながらネットを …

総務省API

お疲れ様です。高橋です。 先日、「総務省、高度利用環境充実に向けAPI機能で利用 …

マンションポエムと都道府県の相関について

お疲れ様です。高橋です。 マンションポエム 私は東京都に住んでるのですが、今住ん …