trick ในการใช้งาน IoT SIM แบบไหนประหยัดสุด?

true แบบเติมเงิน

วันนี้ ผมจะมาเล่า trick เล็กๆ น้อยๆ ในการเลือกใช้งาน IoT SIM สำหรับ อุปกรณ์​ IoT ของเรากันนะครับ .. ว่าทำอย่างไร จะคุ้มค่าและประหยัดสุด ..และพูดถึงเหตุผลที่ทำไม ผมยังไม่เลือกใช้บอร์ด NB-IoT ของค่ายมือถือต่างๆ ..

ปัจจุบัน ค่ายมือถือ ไม่ว่าจะเป็น ais, dtac, true ต่างก็ออกบอร์ด NB-IoT ของตัวเองกันออกมา พร้อมกับแถม package data สำหรับ IoT ให้ด้วย .. แต่ราคาผมมองว่ายังสูงไปครับ คือประมาณ 2-3000 บาท/บอร์ด ..

ส่วนราคา โดยประมาณ สำหรับ package ที่แต่ละค่ายตั้งไว้ ก็ประมาณนี้ครับ
ais 350 บาท/ปี
dtac 420 บาท/ปี
true 330 บาท/ปี

ให้ data ประมาณ 10MB/ปี (น้อยมาก) แต่อุปกรณ์ IoT เรา ก็ใช้ส่ง data ขนาดเล็กเข้าไปเก็บใน server อีกทีนึงครับ ส่วนใหญ่จะเอาไว้ทำ Sensors Node กัน .. ไม่ได้ต้องการ data มากมายอะไร ..

สรุป ข้อดี/ข้อเสีย ของ บอร์ด NB-IoT ของค่ายมือถือ

ข้อดี
– สะดวก ใช้งานได้ทันที
– มีการรับประกัน ถ้าบอร์ดมีปัญหา

ข้อเสีย
– แพง ถ้าเรานำไปใช้งานหลายๆ จุด ก็จะใช้งบประมาณจำนวนมาก
– ไม่สามารถนำ SIM ไปใช้ร่วมกับอุปกรณ์อื่นได้ เพราะส่วนใหญ่เป็น e-SIM
– ไม่สามารถย้ายค่ายได้ เพราะบอร์ด ผูกติดกับค่าย

ด้วยเหตุผลด้านบน เมื่อเปรียบเทียบข้อดี ข้อเสีย ของบอร์ด NB-IoT จากค่าย ผมเลยยังไม่เลือกใช้งาน เพราะว่างานที่ผมทำ ต้องใช้หลายจุด ต้องใช้งบประมาณอย่างประหยัด .. และที่สำคัญ Wi-Fi เข้าไม่ถึง ก็เลยไม่สามารถใช้บอร์ด ที่รองรับระบบ Wi-Fi ได้ +___+

แล้วแบบนี้ ซื้อพวก SIM เทพใช้ จะคุ้มไหม?

– ไม่คุ้มแน่นอนครับ ด้วยเหตุผลด้านบน คือ เราใช้ data จริงๆ น้อยมาก พวก SIM เทพ เหมาะกับคนที่ใช้ data จำนวนมากๆ ดูหนัง ฟังเพลง หรือ ทำเป็น AP ในพื้นที่ห่างไกลอินเตอร์เน็ตเข้าถึง .. บ้านผมเอง ก็ใช้ครับ ..

แล้วทำยังไง ถึงจะใช้อุปกรณ์ IoT ได้อย่างประหยัดดีล่ะ?

TTGO T-Call v1.4

– ใช้บอร์ดที่ใส่ SIM ได้ ราคาประมาณ​ 300-500 บาท
– ใช้ SIM ทรู แบบเติมเงินครับ data 1MB ประมาณ 1 บาท เท่านั้น เติม 10 บาท อยู่ได้ 30 วัน
1 ปี เราก็จะใช้เงินเพียงประมาณ 120 บาท เท่านั้นครับ ประหยัดกว่าเยอะ ..

ใครมี trick เพิ่มเติมอะไร ก็มาเล่าสู่กันฟังได้นะครับ หรืออยากสอบถามอะไรเพิ่มเติม ก็ comment เข้ามาได้ครับ 🙂

ESP Weather Station

ESP Weather Station

สวัสดีปีใหม่ 2021 ครับ เพื่อนๆ พี่ๆ น้องๆ ทุกท่าน ขอให้ปีนี้เป็นปีที่ดีนะครับ 🙂
ปีที่ผ่านมา ผมเองก็ไม่ได้มา update blog ส่วนตัวเลยครับ +___+

วันนี้มีโอกาสดี ได้หยุดยาว กลับมาอยู่บ้านที่จันทบุรี ก็เลยถือโอกาส เขียนเล่าวิธีการ
ทำ Weather Station แบบง่ายๆ และราคาถูกมาก ไม่เกิน 300 บาท ที่ใครๆ ก็ทำเองได้ ..

ตัวอย่าง ที่ผมทำเล่น ไว้ที่สวนที่จันทบุรี จะประมาณนี้ครับ
https://tonofarm.herokuapp.com/

Weather Station Dashboard

ในส่วนของ Dashboard ที่ใช้แสดงผล จะใช้ของฟรี บน Cloud ของ Heroku นะครับ (ฟรีแต่ต้องเอามาประกอบร่างกันเอง + Coding นิดหน่อย)
ถ้าใครยังไม่เคยใช้งาน Heroku ลองเข้าไปอ่านบนความที่ผมเคยเขียนไว้ ได้ครับ ..
https://ton.packetlove.com/blog/iot/line-bot-node-js-mqtt-esp32-iot-2.html

Stack ในส่วนของ Dashboard ที่ผมเลือกใช้ จะเป็น PHP+MySQL ที่ทุกคนสามารถเรียนรู้ได้ง่าย และรวดเร็ว และส่วนของ graph Time series จะเป็น Highcharts ที่ใช้งานได้ง่ายมาก ..

ส่วนของ Hardware จะใช้เป็น ESP8266 (NodeMCU v3) + BME280 Sensor (Temperature, Humidity, Pressure) แค่นี้ ก็ใช้งานได้ละครับ ..
แต่ถ้าใครอยากได้ Options เสริม ทำให้ สามารถนำ Weather Station ของเราไปตั้งที่ไหนก็ได้ ก็ต้องเพิ่ม ในส่วนของ Battery ซึ่งในที่นี้ ผมเลือกใช้เป็น 18650 1 ก้อนครับ + Solar Panel + TP4056 1A Micro USB Battery Charger แค่นี้ก็เหลือๆ อยู่ได้สบายๆ เป็นปีๆ ครับ เพราะว่า ใช้เทคนิค ที่เรียกว่า Deep Sleep Mode ทำให้ Weather Station ของเรา ประหยัดพลังงานได้มาก ..

สรุป Stack ที่เราจะใช้ และ อุปกรณ์ ที่เราจะต้องใช้กันมีประมาณนี้ครับ สามารถดัดแปลงแก้ไข ได้ตามความเหมาะสม ..

มาเริ่มกันเลยดีกว่าครับ .. 🙂

0.ความรู้ที่ต้องมี ในบทความนี้

– การใช้งาน Arduino IDE เบื้องต้น
– การเขียน HTML, PHP เบื้องต้น
– การใช้งาน DB MySQL (MariaDB) เบื้องต้น
– การใช้งาน Git เบื้องต้น
– ตัวอย่าง code https://github.com/pornpasok/esp-weather-station

1.เตรียมอุปกรณ์

Hardware
– ESP8266 หรือ ESP32 ก็ได้ครับ ในที่นี้ผมใช้ NodeMCU v3 ราคา 54 บาท
– BME280 (Temperature, Humidity, Pressure) ราคา 80 บาท

Options
– Battery 18650 1 ก้อน ราคา 50 บาท
– Solar Panel 6V ราคา 30 บาท
– TP4056 1A Micro USB Battery Charger ราคา 8 บาท
– กล่องกันน้ำ IP66 ราคา 90 บาท

2.สมัครใช้บริการ Heroku สำหรับใช้งาน PHP+MySQL

– ทำตามที่ผมเคยเขียนไว้ในบทความก่อน ได้เลยครับ
https://ton.packetlove.com/blog/iot/line-bot-node-js-mqtt-esp32-iot-2.html
– เลือก Add-ons JawsDB Maria (ฟรีนะครับ)

JawsDB Maria

3.จากนั้นเราจะได้ หน้าตา Dashboard สำหรับ DB ของเรา ซึ่งจะมีค่าต่างๆ ที่จำเป็นดังนี้

Host: xxxx.cbetxkdyhwsb.us-east-1.rds.amazonaws.com
Username: xxxjmq9y0lbpccfl
Password: xxxqfwd3ch9ynzom
Port: 3306
Database: xxxt7s4yvc54h02i

DB Information

4.ทำการ Clone Soure Code ที่ผมทำไว้ให้เป็นตัวอย่างลงมา

– git clone https://github.com/pornpasok/esp-weather-station
– จะมี files ต่างๆ ประมาณนี้

tree
.
├── NodeMCUv3_BME280_deepsleep.ino (สำหรับ Upload ลง ESP8266 ของเรา)
├── README.md
├── SensorData.sql (สำหรับ import DB Structure ลง DB ที่ Heroku)
├── esp-database.php (สำหรับ config การ connect DB ที่ Heroku ค่านี้ได้จากข้อ 3.)
├── esp-post-data.php (สำหรับ รับค่าจาก อุปกรณ์ IoT ของเรา ในที่นี้คือ ESP8266)
├── esp-style.css (สำหรับ ตกแต่งหน้าตา Dashboard)
├── images
│   ├── dashboard01.png
│   ├── dashboard02.png
│   ├── dashboard03.png
│   └── esp-weather-station.jpg
└── index.php (หน้าแสดงผล ของ Dashboard)

5.Import DB Structure ลง DB ที่เราได้จาก Heroku

– ในที่นี้ ใช้ได้หลายวิธี แล้วแต่ถนัด แต่ส่วนตัวผมใช้ extensions “MySQL Client for vscode
– จากนั้น ให้นำค่า Host, Username, Password, Port ที่ได้จาก ข้อ 3. มา config เพื่อใช้งาน
– จากนั้นคลิกขวา ที่ DB เลือก Import Sql แล้วเลือก file “SensorData.sql” ที่เราทำการ clone มาจาก ข้อ 4. แค่นี้ เราก็จะได้ โครงสร้างของ tables ใน DB ของเราแล้ว ..

vscode Import Sql

6.แก้ไข config file “esp-database.php” และ “esp-post-data.php”

– นำค่า Host, Username, Password, Database ที่ได้จาก ข้อ 3. มาแก้ไข ใน file “esp-database.php

$servername = "HOSTNAME";
$dbname = "DBNAME";
$username = "USERNAME";
$password = "PASSWORD";

– แก้ไข file “esp-post-data.php” ใสส่วนของ

$api_key_value = "********";

ค่า api_key_value เรากำหนดเองได้เลย และจะต้องเอาไปใช้ ในส่วนของ อุปกรณ์ IoT (ESP8266) ของเรา

7.ทำการ push App (Dashboard) ของเรา ขึ้น Heroku

– ทำตามนี้ได้เลยครับ https://devcenter.heroku.com/articles/getting-started-with-php

เท่านี้ เราก็จะได้ App (Dashboad) ในฝั่งของ Heroku Cloud กันแล้วครับ .. 🙂
มาต่อกันที่ฝั่งของ อุปกรณ์ IoT (ESP8266) ของเรากันดีกว่าครับ ..

8.การต่อวงจร BME280 wiring to ESP8266/ESP32

The ESP8266 I2C pins are:
– GPIO 5 (D1): SCL (SCK)
– GPIO 4 (D2): SDA (SDI)

BME280 wiring to ESP8266

The ESP32 I2C pins are:
– GPIO 22: SCL (SCK)
– GPIO 21: SDA (SDI)

BME280 wiring to ESP32

9.ใช้ Arduino IDE แก้ไข code ในส่วนของ อุปกรณ์ IoT (ESP8266)

– แก้ไข file “NodeMCUv3_BME280_deepsleep.ino” ตามระบบ WIFI และ URL App เรา

const char* ssid = "WIFI-SSID";
const char* password = "WIFI-PASSWORD";
const char* serverName = "http://app-name.herokuapp.com/esp-post-data.php";
String apiKeyValue = "********";
String sensorName = "BME280";
String sensorLocation = "37.8718992,-122.2585399";

– จากนั้นทำการ Upload code แล้วเปิด Serial Monitor ดู ว่ามี Error อะไรไหม? ถ้าทุกอย่างปกติ ก็จะได้ข้อความดังภาพด้านล่าง ก็ถือว่าเป็นอันใช้ได้ 🙂

Arduino Serial Monitor

10.ทดลอง เข้า หน้าเว็บ Dashboard ของเรา ที่ทำไว้

– เข้าด้วย URL: https://app-name.herokuapp.com/
ตัวอย่างของผมคือ https://tonofarm.herokuapp.com/

ส่วน Options เพิ่มเติม ที่จะนำไปต่อยอด ก็ประมาณนี้ครับ

– ใช้ Battery 18650
– ใช้ Solar Panel + ชุด Charge Battery
– ใส่กล่อง IP66 กันน้ำ เผื่อเอาไปใช้ Outdoor
– เพิ่ม-ลด Sensors ตามความต้องการ
– ปรับแต่ง Dashboard ให้เหมาะสมตามความต้องการ

เป็นอย่างไรกันบ้างครับ ไม่ยากใช่ไหมครับ เอาไว้ทำเล่นๆ เราก็จะได้ Weather Station ของเราเองเอาไว้ใช้งาน และสามารถเข้าจากที่ไหน ก็ได้ เพราะอยู่บน Heroku Cloud ที่สำคัญ ฟรีด้วยครับ 🙂

สำหรับเพื่อนๆ ท่านใด ที่ติดปัญหา ตรงไหน สามารถสอบถามกันเข้ามาได้นะครับ
LINE ID: pornpasok

LINE ID: pornpasok

Add Friend

Source Code: https://github.com/pornpasok/esp-weather-station

รายละเอียดเพิ่มเติม: https://randomnerdtutorials.com/cloud-weather-station-esp32-esp8266/

LINE Bot + node.js + MQTT + ESP32 (IoT) เปิด/ปิด ไฟ (ตอนที่ 1)

สวัสดีครับ เพื่อนๆ ทุกท่าน ผมเอง ไม่ได้ มา update blog เป็นเวลานานเหมือนกัน เผลอๆ แป๊บๆ ก็จะสิ้นปีอีกแล้ว ..

ปีนี้ ที่ผ่านมาผมได้มีโอกาสกลับไปอยู่บ้าน ที่จันทบุรี ได้ลงไปสัมผัส ไปเป็นเกษตรกรจริงๆ ด้วยตัวเอง ทำให้ได้รับประสบการณ์ ที่ดีมาก ได้รู้ว่าจริงๆ แล้ว เกษตรกร (ชาวสวน) เค้าต้องการอะไร เค้าขาดอะไร และทำอย่างไร จะทำให้ การทำงานมีประสิทธิภาพมากขึ้น มีเวลาพักผ่อนอยู่กับครอบครัวมากขึ้น มีความสุขมากขึ้น รายได้เพิ่มขึ้น และค่าใช้จ่ายลดลง ..

จึงเกิดเป็น Project นี้ขึ้นมา คือระบบเปิด/ปิด มอเตอร์สูบน้ำ ผ่าน LINE Bot หรือ LINE Messaging API นั่นเอง ที่ผมเลือกใช้ Chat Bot มาเป็นระบบสั่งเปิด/ปิด เพราะว่า เป็นการง่ายสำหรับเกษตรกร เพราะปกติเค้าใช้ LINE ผ่านมือถือกันอยู่แล้ว จะได้ไม่ต้องวุ่นวาย ลง App ใหม่ๆ หรือเรียนรู้ App ใหม่ๆ เพราะแค่พิมพ์ เปิด/ปิด มอเตอร์สูบน้ำ ที่อยู่ ที่สระน้ำสาธารณะ ของหมู่บ้าน หรือตามริมคลอง ริมแม่น้ำ ก็จะทำงานตามคำสั่งทันที ..

Stack ที่ผมใช้ ใน Project นี้ จะเป็น Open Source ทั้งหมด และมีให้เราใช้ฟรีๆ กันอยู่แล้ว ส่วนตัว H/W (IoT device)  ตอนแรก ผมสนใจ NB-IoT, LoRa เหมือนกัน เพราะตาม concept มันเหมาะมาก ในเรื่องของการรับส่งระยะไกล และประหยัดพลังงาน แต่ติดอยู่ที่ว่า ราคาของ H/W ยังสูง และเครือข่าย ยังไม่ครอบคลุมทั่วถึง ก็เลยกลับไปคิดถึง IoT device ที่เป็น WiFi 2.4GHz ทั่วๆ ไป ที่ราคาตอนนี้ ไม่แพง ประมาณ 100-150 บาท/บอร์ด เช่นพวกที่ใช้ chip ESP8266, ESP32 แทน และบริเวณที่ไปใช้งาน ไฟฟ้าเข้าถึงแล้ว จึงไม่ต้องห่วงเรื่องของพลังงานไฟฟ้า เท่าไรนัก แต่ถ้าเป็นไปได้ ก็จะทำให้อยู่ใน deep sleep mode เพราะจะทำให้ประหยัดพลังงานและ เกิดความร้อน น้อยกว่า mode ปกติ ..

Stack ต่างๆ สรุป มีดังต่อไปนี้ 
– LINE Messaging API (LINE Bot)
– node.js (Heroku)
– MQTT (Heroku)
– ESP32 (IoT device) + WiFiManager

อ่านต่อตอนที่ 2 (ตอนจบ) ได้ที่นี่ครับ http://ton.packetlove.com/blog/iot/line-bot-node-js-mqtt-esp32-iot-2.html

Add LINE มาลองเล่น กับ tonofarmbot กันดูได้ครับ

Smart Energy Hackathon 2017 (Southeast Asia)

ERROR404” Team Not Found!!!

เมื่อสัปดาห์ที่ผ่านมา 8-10 Sep 2017 ผมเองได้มีโอกาสได้เข้าร่วมแข่งขัน
Smart Energy Hackathon 2017 (Southeast Asia) กับเพื่อนๆ ร่วมทีม
URL: https://smartenergyhackathon.splashthat.com/

งานนี้ ได้เจอเพื่อนๆ ทีมอื่น ที่มาแข่งขัน และ mentors มากประสบการณ์ มาคอยแนะนำเรา
ทีมผมทำเกี่ยวกับระบบ Solar Analytics ที่ออกแบบมาเพื่อช่วยวิเคราะห์ด้านต่างๆ
สำหรับผู้ที่ต้องการติด Rooftop Solar Cells ไว้ใช้งานเอง ..

ระบบที่ออกแบบไว้ ทำได้ประมาณนี้ แต่เวลา 2 วัน เราทำไม่ทัน ..
– Your solar energy system’s performance
– Your energy usage
– Net electricity bought and sold
– When and how you’re loading your system
– How much energy your system should be generating vs actual energy generated on any given day
– Alerts and faults diagnostics

ตอนนี้ ผมก็นำเอา Project นี้ มาพัฒนาต่อ ร่วมกับการทำ Smart Plug ครับ
มีทั้งระบบ ที่ใช้ WiFi และ GSM (3G/4G) หวังว่าอนาคต เร็วๆ นี้ จะสามารถ
นำออกมา ทำเป็น production ให้ผู้ที่สนใจใช้งานทั่วไป สามารถใช้งานได้ ..

เพื่อทำให้เราทุกคนสามารถผลิตพลังงานสะอาด จากแสงอาทิตย์ ที่มีอยู่แบบไม่มีวันหมด
ได้อย่างมีประสิทธิภาพ ลดการใช้พลังงาน จากแหล่งผลิตอื่น และใช้พลังงานไฟฟ้า เท่าที่จำเป็น
เพื่อโลกของเรา ได้ลดมลพิษ จากการผลิตไฟฟ้า และระบบการซื้อขายพลังงานไฟฟ้า ที่ผลิตได้
อย่างมีประสิทธิภาพ เชื่อถือได้ ต่อไป (blockchain technology) ..