Data-logger with REST Service

Atitep Anuchettarak
Project-MAR
Published in
3 min readOct 14, 2017

Ep.4 การตั้งค่าให้ RPi ทำงานแบบ Access Point

ในที่สุดเราก็เดินทางมาถึงตอนสุดท้ายกันแล้วครับ ในตอนนี้เราจะเปลี่ยนให้ RPi กลายเป็น Access Point ซึ่งจะมีความยุ่งยากนิดหน่อยคือ โดยปกติเราจะต่อเข้าไปยัง RPi ผ่าน SSH โดยใช้เครื่อข่าย Wifi ในบ้าน แต่หลังจากที่เราทำการ config ให้ RPi เป็น Access Point นั้น การเชื่อมต่อของ RPi และ AP เดิมจะหลุด ส่งผผลให้เราหลุดการเชื่อมต่อกับ RPi โดยอัติโนมัติ เราจะต้องเปลี่ยนการเชื่อมต่อมายัง Access Point ตัวใหม่ซึ่งก็คือ RPi ทั้งนี้ เมื่อเราย้ายมายัง AP ใหม่ เราจะไม่สามารถต่อ internet ได้ตามปกติ

ขั้นตอนต่อไปนี้สำคัญมากและห้ามผิดพลาด ไม่งั้นแล้วเราจะสูญเสียการติดต่อกับ RPi ผ่าน wifi ไปตลอดกาล และจะต้องใช้ Serial Terminal เข้าไปแก้ไขเท่านั้น

เริ่มขั้นแรกด้วยการติดตั้ง packet ใหม่ 2 ตัว นั่นคือ

  • dnsmasq คือโปรแกรมสำหรับสร้าง dns server
  • hostapd คือ deamon สำหรับสร้าง service ของ Access Point
sudo apt-get install dnsmasq hostapd

ขั้นแรก เราต้องทำการปิดการทำงานของ network เดิมก่อน

sudo nano /etc/dhcpcd.conf

เข้าไปแก้ไขไฟล์ dhcpd.conf โดยเพิ่มบรรทัดสุดท้ายว่า

denyinterfaces wlan0

ขั้นที่ 2. แก้ไข /etc/network/interfaces เพื่อ ทำการ fix IP ของ RPi เป็น 192.169.99.1

allow-hotplug wlan0  
iface wlan0 inet static
address 192.168.99.1
netmask 255.255.255.0
network 192.168.99.0

ขั้นที่ 3. ทำการ config dnsmasq/etc/dnsmasq.conf

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig  
sudo nano /etc/dnsmasq.conf

copy config เดิมเอาไว้เป็น backup จากนั้นสร้างไฟล์เปล่าอันใหม่ และใส่ config ไว้ตามข้างล่าง

interface=wlan0
dhcp-range=192.168.0.2,192.168.0.20,255.255.255.0,24h

เมื่อ save แล้ว เราสามารถทดสอบว่า config เราถูกต้อง ไม่ผิด syntax โดยใช้คำสั่ง dnsmasq --test

ขั้นที่ 4. สร้าง file สำหรับ config hostapd sudo nano /etc/hostapd/hostapd.conf

interface=wlan0
driver=nl80211
ssid=REST-Logger
hw_mode=g
channel=7
wmm_enabled=0
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=1223334444
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

AP ของเราจะมีชื่อว่า REST-Logger และใช้รหัส 1223334444 ในการเชื่อมต่อ

ต่อมาทำการเพิ่มบรรทัดสุดท้ายใน /etc/default/hostapd ว่า DAEMON_CONF="/etc/hostapd/hostapd.conf" เพื่อให้ hostapd เรียกใช้ config ที่เราสร้างเอาไว้

ขั้นตอนสุดท้าย ทำการ start service ทั้ง 2 ตัว

sudo service hostapd start  
sudo service dnsmasq start

ทำการ reboot RPi เพื่อเข้าสู่การทำงานแบบ Access Point Mode

ทดสอบระบบ

เปลี่ยน wifi ของคอมพิวเตอร์ไปยัง Access Point ชื่อ REST-Logger (รหัส 1223334444) และ SSH ไป start REST-SERVER

ใช้ Ipad ต่อไปยัง REST-Logger จะพบว่า Ipad จะได้รับ IP โดยอัติโนมัติเมื่อเชื่อมต่อแล้ว หลังจากนั้นลองเรียก REST API ผ่าน Safari

อย่าลืมนะครับว่าตอนนี้ IP ของ Rpi ได้เปลี่ยนเป็น 192.168.99.1 แล้ว

ใช้รหัสเดิมในการ login (pi/raspberry)

เท่านี้ เราก็จะสามารถดึงข้อมูลออกมาได้

ในที่สุด “Data-logger with REST Service” ก็เดินทางมาจนครบทั้ง 4 ตอนแล้วนะครับ หวังว่าคงเป็นแนวทางหรือไอเดียสำหรับทุกๆ คนต่อไปในอนาคตครับ แล้วเจอกันในหัวข้อใหม่ (ที่ยังไม่รู้ว่าเรื่องอะไร) นะครั

Enjoy :)

Credit:

--

--