Electoday 4.0

ของเล่นใหม่ => Internet of Things : LoRa LoRaWAN NB-IoT eMTC => Topic started by: i2k on February 23, 2015, 05:42:10 pm

Title: เครือข่ายไร้สายราคาถูก -Low Cost Wireless Networks
Post by: i2k on February 23, 2015, 05:42:10 pm
สวัสดีครับ :) ผมเป็นสมาชิกของ electoday มาตั้งแต่บอร์ดเก่า กลับมาอีกทีหายไปไหนก็ไม่รู้ เข้ามาตอบกระทู้นิดๆหน่อยๆเท่าที่พอจะทราบ ส่วนมากก็มาหาข้อมูล dl หนังสือ ทำโปรเจคเล็กๆอยู่เลยคิดว่าน่าจะนำมาแชร์บ้าง

จุดประสงค์ คือต้องการหาเครื่อข่ายไร้สาย เครือข่ายส่วนบุคคล Personal area network (PAN) สำหรับใช้ในการทดลองศึกษาในเรื่อง IoT หรือนำมาใช้ในงาน  Automation แบบพื้นๆ, Control, Data Acqusition หลังจากค้นหาข้อมูลอยู่หลายๆแบบพอสมควร ได้ไปเจออันนี้ panStamp หลายท่านคงผ่านตามาบ้างแล้ว ตอนนี้เขาก็พัฒนามาซักระยะหนึ่ง (ทำคนเดียว) ดูแล้วก็ค่อนข้างสมบูรณ์ครบถ้วน

หลังจากที่ผมได้ทดลองทำ ใช้ได้ดีทีเดียว เลยนำมาแชร์หวังว่าจะนำไปใช้ประโยชน์ได้ แต่ที่ผมสงสัยทำไมไม่มีใครเอานำมาใช้งานเลย ของฟรีดีๆถูกๆ หรือผมคิดไปเองว่าของดีและถูก ค้นหาเห็นแค่บทความเดียวของคนไทย เป็นภาษาอังกฤษอีกด้วย 

ทำระบบสื่อสารไร้สายด้วยตัวเอง ในกรณีที่เป็น networks (เล็กๆ) หรือแม้ไม่เป็นก็ตาม สามารถใช้  wireless module อะไรก็ใช้ได้ทั้งนั้น แต่ถ้าเป็น networks ใหญ่ๆ ก็จะเริ่มยากและซับซ้อน ถ้าเลือกใช้โดยเพียงแต่ดูปัจจัยเรื่องราคาเป็นหลัก บางแบบราคาถูกมากแต่ต้องมาพัฒนา software ที่เกี่ยวข้องมากมาย ใช้เวลามาก รวมๆแล้วกลายเป็นของแพงไปเลย แล้วก็ยังไม่ใช้มาตราฐาน  ขยายไม่ได้ ผูกติดกับ platform เฉพาะเกินไป

ก่อนอื่น  :( วิธีทำผมไม่ได้เปิดเผยนะครับ เพราะของเขาเป็น opensource อยู่แล้ว และผมมีความคิดที่จะนำไปทำผลิตภัณท์ เดี๋ยวจะหาว่ายังมากั๊กไว้อีก ซึ่งจริงแล้วไม่ได้ยาก ผมพึ่งเล่น  Arduino platform มาได้ไม่กี่เดือน พอมีพื้นฐานโปรแกรมมิ่งและอิเลคฯ  คิดว่าท่านจะทำออกมาดีกว่าผมแน่นอน

ผมสรุปมาให้ดู  ลองดูว่าคุ้มค่าที่ท่านจะลองทำต่อหรือเปล่า รายละเอียดเข้าไปที่  www.panstamp.com  หรือไปดู  www.youtube.com/watch?v=jaa0yf6LiJ8 เห็นภาพคร่าวๆ

(http://upic.me/i/n7/panstamp_cover_01-001.jpg) (http://upic.me/show/54738448)

ลองมาดูต้นฉบับก่อน

- ในรูปบอร์ด panStamp ใช้ atmega328p run ที่ 8Hz  *** สามารถนำบอร์ด Arduino ทั่วๆไปที่มีขายมาดัดแปลงใช้แทนได้ ***

- ใช้ wireless chip ของ TI  (Sub 1GHz ISM) เบอร์ cc1101, บอร์ดรุ่นใหม่ใช้ cc430 ซึ่งรวม msp430 กับ cc1101 ไว้ในตัวเดียวกัน , ชิป cc1101 ออกมานานแล้วนะครับ

- เขาขายอยู่ประมาณ 15 ยูโร (แต่เป็นความถี่ย่าน 800 MHz) แพงเหมือนกันเมื่อเทียบกับบอร์ดอย่าง xbee

- กินไฟต่ำ กินกระแสน้อยกว่า 30 mA, sleep mode < 20 uA จึงใช้แบตฯได้อย่างสบายสำหรับทำ wireless sensor

- Simple Wireless Abstract Protocol (SWAP) คือชื่อ protocol ไร้สายที่ใช้ในการสื่อสาร ไม่ได้เป็นมาตราฐาน ชื่อก็บอกอยู่แล้วว่า simple อย่าไปเทียบกับ Zigbee หรือ BLE

- เครือข่ายต่อเป็นแบบ star ทำ repeater ได้, ระยะรับส่งที่ผมทดลอง โดยตั้ง gateway ไว้ในบ้าน End device (mote) อยู่ข้างนอก ระยะรับส่งเกือบ 50 เมตร (ขึ้นอยู่กับเสาอากาศ) เมื่อติด repeaterไว้หน้าบ้าน ก็มองไม่เห็นแล้ว >150  เมตร ซึ่งพอสำหรับ Personal networks

- การพัฒนาใช้  Arduino ต้องเข้าใจว่า  *** สามารถพัฒนาทำเป็นอุปกรณ์นั้นๆได้เลย ไม่จำเป็นต้องไปต่อผ่านบอร์ดอื่นๆ  *** แต่เชื่อมต่อเข้า LAN โดยตรงไม่ได้ ต้องผ่าน gateway ของเขา

- Software อื่นๆที่เกี่ยวข้องใช้ Python , มีโปรแกรมจัดการเครือข่าย,  มี Gateway -REST Server มาให้พร้อม ซึ้งทั้งหมด opensource ฟรีครับ!!! และเพราะว่าใช้ Python จึงสามารถนำมาใช้ได้หมดบน Windows, Linux, Embedded Linux ทั้งหมด

- devices ต่างๆ เขาก็ทำมาให้ครบ แทบไม่ต้องเขียนขึ้นเองเลย ตัวแรกที่ต้องมีคือ modem (Serial gateway) เพื่อทำหน้าที่เชื่อมเครือข่ายเข้ากัน, Binary input ouput , Temperature & Humidity, Soil moisture sensor, Energy meter, ...

- ถ้าอยากจะเขียน Devices แบบใหม่ขึ้นเองก็ต้องศึกษา Protocol ของเขาอีก เนื่องจากว่าไม่ได้ใช้มาตราฐาน  ถ้าจะทำต้องคิดว่าคุ้มเพราะจะเอาไปใช้กับอย่างอื่นไม่ได้

(http://upic.me/i/h3/system_overview-001.jpg) (http://upic.me/show/54738450)

*** รูปผมนำลงโดยไม่ได้ขออนุญาต  https://rackingwoes.wordpress.com/2012/04/06/some-iot-slides/

รูปแบบการต่อใช้งาน ดูก็ไม่ต่างจากเครือข่ายไร้สายอื่นๆ
- ที่เป็นรูปสี่เหลี่ยมด้านบนคือ SWAP Network
- Largarto Server คือ REST Server
- PanStick+PanStamp ทำหน้าที่เป็น modem/serial gateway
- ส่วน Application คือที่เราต้องทำ  เมื่อมี REST Server ให้ใช้ก็ง่ายแล้วครับ
Title: Re: เครือข่ายไร้สายราคาถูก -Low Cost Wireless Networks
Post by: artchula on February 24, 2015, 10:10:21 am
น่าสนใจมากครับ
Title: Re: เครือข่ายไร้สายราคาถูก -Low Cost Wireless Networks
Post by: i2k on February 26, 2015, 04:38:37 pm
เนื่องจากขั้นตอนในการทำโมดูลขึ้นมาใช้เองรายละเอียดค่อนข้างมาก webboard อาจไม่เหมาะที่จะโพสข้อความยาวๆ เข้าไปดูต่อที่ ittisris.blogspot.com (http://ittisris.blogspot.com/) ขอบคุณครับ.

Raspberry pi กับ board panStamp ที่ผม port มาใช้ PIC, ทั้งหมดทำหน้าที่เป็น Wireless network gateway
(http://upic.me/i/uw/r0014416-001.jpg) (http://upic.me/show/54770950)

ด้านซ้าย RESTful Service ด้านขวาคือ client ในรูปแสดง device 3 ตัว เป็น Temperature sensor ใช้ Thermistor , อีก 1 ตัวคือ Binary output + PWM Output + repeater
(http://upic.me/i/57/lagarto-pi640.jpg) (http://upic.me/show/54770952)

แสดง End point ซึ่งเราสามารถดูค่า และส่งค่าไปสั่งอุปกรณ์ต่างๆให้ทำงานได้อย่างง่ายๆ
(http://upic.me/i/35/lagarto-pi02-001.jpg) (http://upic.me/show/54770949)

Node-red คือ node packages ของ node.js เป็น Application ที่ใช้ส่งค่าไปแสดงผลที่ xively โดยใช้ MQTT protocol
Node-RED A visual tool for wiring the Internet of Things
Node-RED is a tool for wiring together hardware devices, APIs and online services in new and interesting ways.
Node-RED is a creation of IBM Emerging Technology
(http://upic.me/i/3d/node-red.jpg) (http://upic.me/show/54770948)

MQTT API สำหรับ xively ต่างจาก broker ทั่วๆไปเพราะต้องมีการ Authentication เพิ่มขึ้นมา https://xively.com/dev/docs/api/communicating/mqtts/
(http://upic.me/i/r7/xively.jpg) (http://upic.me/show/54770947)
Title: Re: เครือข่ายไร้สายราคาถูก -Low Cost Wireless Networks
Post by: i2k on March 02, 2015, 01:44:04 am
สมมุติว่าเราจะทำระบบ monitor อุณหภูมิภายในอาคารขนาดใหญ่ที่ใช้เครื่องปรับอากาศ นอกจากต้องการบันทึกค่า อยากให้ระบบคอยเตือนว่าบริเวณไหนของอาคารมีอุณหภูมิสูงเกินปรกติ

การนำค่าไปแสดงผลบน xively แต่เพียงอย่างเดียวยังเอาไปใช้งานไม่ได้ เพราะคงไม่มีใครมาคอยดูกราฟเปลี่ยนแปลงของอุณหภูมิตลอด

ในกรณีนี้ต้องใช้ Trigger และ xively ก็มีให้ใช้อย่าง https://xively.com/dev/tutorials/zapier ดูแล้วดีทีเดียว แต่เสียเงินและแพง จึงคิดว่าจะใช้วิธีเดิมๆ คือให้ระบบ tweet เตือน ส่วน xively ก็เอาไว้ดูรายละเอียด

- สำหรับ Node-RED เพียงแค่ลากปุ่ม ลากเส้นเชื่อมโยง เขียน script นิดเดียวก็สามารถใช้ได้แล้วครับ
(http://upic.me/i/vy/00-001.jpg) (http://upic.me/show/54806473)

- ให้อ่านค่าอุณหภูมิทุก 1 นาที กำหนดอุณภูมิเตือนที่ 25c
(http://upic.me/i/pa/01-001.jpg) (http://upic.me/show/54806474)

- อ่านอุณหภูมิและดูว่าอุณหภูมิสูงเกินกว่าค่าที่กำหนดไว้หรือเปล่า
(http://upic.me/i/j0/02-001.jpg) (http://upic.me/show/54806475)
(http://upic.me/i/5s/03-001.jpg) (http://upic.me/show/54806476)


- จัดรูปแบบข้อความและส่ง  tweet
(http://upic.me/i/y9/04-001.jpg) (http://upic.me/show/54806477)
(http://upic.me/i/mc/05-001.jpg) (http://upic.me/show/54806479)
(http://upic.me/i/22/tt-001.jpg) (http://upic.me/show/54806480)


Title: Re: เครือข่ายไร้สายราคาถูก -Low Cost Wireless Networks
Post by: i2k on March 03, 2015, 02:06:17 pm
จากตัวอย่างก่อน ถ้าต้องการตั้งค่าอุณหภูมิเตือนไว้ใน xively เลย จะได้ไม่ต้องแก้ code

- สร้าง channel บน xively ชื่อว่า "SetPoint" ตัวอย่างกำหนดอุณหภูมิไว้ที่ 27c
(http://upic.me/i/sj/pointsetting-001.jpg) (http://upic.me/show/54823462)

- แก้ไขและสร้าง flow ขึ้นใหม่นิดหน่อย
(http://upic.me/i/wq/tempalert02-001.jpg) (http://upic.me/show/54823463)

- ในส่วน mqtt subscribe ตั้งค่า topic ให้ถูกต้องตาม API ที่เขากำหนดมา
(http://upic.me/i/12/tmqtt.jpg) (http://upic.me/show/54823466)

- เขียน script เพิ่มอีกนิด เพื่อเอาค่าไปเก็บไว้ที่ตัวแปร Global
(http://upic.me/i/nv/extract.jpg) (http://upic.me/show/54823468)

แค่นี้ก็ทำงานได้แล้วครับ
Title: Re: เครือข่ายไร้สายราคาถูก -Low Cost Wireless Networks
Post by: i2k on March 03, 2015, 02:54:17 pm
MQTT  หาอ่านเพิ่มเติมได้ที่ google play ฟรีครับ ละเอียดมาก ท้ายๆมีตัวอย่างเกี่ยวกับ Arduino
MQTT และ Node-RED เป็นผลผลิตของ IBM
(http://upic.me/i/gs/mqttbook.jpg) (http://upic.me/show/54823796)

ถ้าอยากทดลอง publish/subscribe ติดตั้งและทดลองก่อนได้
http://www-01.ibm.com/support/docview.wss?rs=171&uid=swg24006006&loc=en_US&cs=utf-8&lang=en

(http://upic.me/i/jl/wmqtt.jpg) (http://upic.me/show/54823928)

มี broker ฟรี iot.eclipse.org, m2m.eclipse.org

* ต่อไปจะเป็นการติดตั้ง local mqtt broker และนำมาใช้แบบไม่เป็น Internet of things คือไม่ต่อ Internet และก็คงจบกระทู้ของผมครับ
Title: Re: เครือข่ายไร้สายราคาถูก -Low Cost Wireless Networks
Post by: yupetch on March 03, 2015, 04:48:32 pm
สนใจครับ อ่านมาตั้งแต่ต้น แต่ไม่ได้แสดงความเห็นครับ
 ;D  ;D  ;D
Title: Re: เครือข่ายไร้สายราคาถูก -Low Cost Wireless Networks
Post by: pickkajoo_en on March 05, 2015, 09:36:51 am
ขอบคุณมากครับ กำลังสนใจพอดี
Title: Re: เครือข่ายไร้สายราคาถูก -Low Cost Wireless Networks
Post by: MarMan on March 05, 2015, 11:03:37 am
หันไปดู R-Pi ของตัวเอง
ฝุ่นครึก  :'(
Title: Re: เครือข่ายไร้สายราคาถูก -Low Cost Wireless Networks
Post by: R.SUWIT on March 05, 2015, 01:45:12 pm
น่าสนครับ
Title: Re: เครือข่ายไร้สายราคาถูก -Low Cost Wireless Networks
Post by: i2k on March 05, 2015, 05:34:44 pm
ลองคำนวณราคา รวมๆประมาณ 2ร้อย , PIC16F1705 38 บาท  ตัวเล็ก mem น้อย แต่ peripheral ใส่มาเต็มๆ, ส่วน บอร์ด wireless หมดปัญญาที่จะทำเอง $3.8, แบต CR2032 7บ, กล่องใส่แบต 15บ , ทั้งหมดราคาซื่อมาต่อตัว ไม่ใช่ราคาที่ 1000 ตัวนะครับ

Thermistor ครับ ตัวละ 3บ. แต่อย่าดูถูกมันนะครับ ไม่ linear ก็จริงแต่ถ้าใกล้ระดับอุณหภูมิห้องตามสเปคก็ ok, err 3%, ที่สำคัญไม่ขึ้นกับแรงดัน batt, ส่วนการคำนวนก็ใช้ steinhart equation

ส่วน R 10K 0.1% แพงหน่อยตัวละ 20บ เอาไว้ทดสอบ

กล่องใส่ 3 ใบ 100  !!! mcu ราคาพอๆกับกล่องพลาสติกเล็กๆ

สำหรับ version ที่เป็น pro mini ก็จะแพงมาอีกหน่อย
(http://upic.me/i/5n/r0014427.jpg) (http://upic.me/show/54847668)

(http://upic.me/i/tf/r0014423.jpg) (http://upic.me/show/54847486)
Title: Re: เครือข่ายไร้สายราคาถูก -Low Cost Wireless Networks
Post by: jojoonline on March 07, 2015, 02:26:03 pm
บทความที่ดีมากครับ กำลังสนใจพอดี
Title: Re: เครือข่ายไร้สายราคาถูก -Low Cost Wireless Networks
Post by: thanapon on March 11, 2015, 09:50:36 am
น่าใจครับ ขอบคุณครับ :-D
Title: Re: เครือข่ายไร้สายราคาถูก -Low Cost Wireless Networks
Post by: mackie2005 on March 20, 2015, 11:51:19 am
เยี่ยมครับ กำลังสนใจ งานแนวนี้พอดี
Title: Re: เครือข่ายไร้สายราคาถูก -Low Cost Wireless Networks
Post by: snball on April 22, 2015, 09:46:37 am
น่าสนใจมากครับ ขอบคุณมากครับ
Title: Re: เครือข่ายไร้สายราคาถูก -Low Cost Wireless Networks
Post by: wlasoi on April 22, 2015, 11:05:22 am
ดูแล้วเหมือนมันมีอะไร ที่ต้องศึกษา อีกเยอะ .. ฮ่าๆๆๆ
Title: Re: เครือข่ายไร้สายราคาถูก -Low Cost Wireless Networks
Post by: i2k on April 22, 2015, 03:06:24 pm
ขอบคุณที่ให้ความสนใจครับ งานประจำผมไม่ได้เกี่ยวข้องกับงานด้านอิเลคฯ ไม่ได้เกี่ยวกับสถาบันหรือการศึกษาใดๆ  hobby ครับ มีเวลาว่างก็ทำไป

(http://upic.me/i/wd/snapshot2.jpeg) (http://upic.me/show/55285674)

ทำ PCB สำหรับรุ่นที่ port มาใช้ PIC อุปกรณ์ก็มีอยู่ไม่กี่ตัวครับ ตอนแรกกะจะทำหลายๆแบบ แต่เจอราคาแล้วมันไม่เป็น low cost แล้ว เลยเหลือแบบเดียวแล้วยัดทุกอย่างเท่าที่จำเป็นลงไป ตัวไหนไม่ใช้ก็ไม่ต้องใส่

มีสิ่งที่ต้องศึกษาเพิ่มจริงๆครับ ผมเคยใช้ protel เมื่อสิบปีที่แล้ว ตอนนี้มาลอง eagle สาเหตุเพราะฟรีครับ และของเขาดีจริงๆ  และเนื่องจากบอร์ดผมขนาดเล็กจึงใช้ได้เลย ใครที่อยากจะลองใช้ eagle แต่ยังไม่ได้เริ่มซักที อ่านและทดลองทำตามทีละขั้น https://learn.sparkfun.com/tutorials/tags/eagle ถ้าเคยผ่านการใช้โปรแกรม CAD มาบ้าง ไม่เกิน 1-2 สัปดาห์ก็จะใช้งานได้แล้วครับ

ในบอร์ด นอกจากมี PIC และ cc1101 module, ถ้าเป็น modem ก็ใช้ได้เลย, มี NTC สำหับวัดอุณหภูมิเบื้องต้น หรือ HTU21D สำหรับวัดอุณหภูมิและความชื้น  ด้านหลังมีรังถ่านสำหรับใส่แบตฯ

ถ้าทำบอร์ด I/O Digital หรือ analog ก็ต้องต่ออุปกรณ์อื่นเพิ่มผ่านทาง connector

แนวคิดผมก็ลอกชาวบ้านเขามาไม่ได้คิดเอง http://www.ti.com/ww/en/wireless_connectivity/sensortag2015/tearDown.html เอาแค่เศษเสี้ยวเดียวของเขาผมก็พอใจแล้วครับ
Title: Re: เครือข่ายไร้สายราคาถูก -Low Cost Wireless Networks
Post by: chavee on April 29, 2015, 12:08:54 pm
battery ก้อนนึงอยู่ได้นานแค่ไหนครับ
Title: Re: เครือข่ายไร้สายราคาถูก -Low Cost Wireless Networks
Post by: i2k on April 29, 2015, 01:46:55 pm
ขึ้นอยู่ว่าจะให้ทำงานแบบไหนและมีอุปกรณ์อะไรบ้าง

สำหรับบอร์ดที่เป็นตัววัดอุณหภูมิ ช่วง run กินไฟ 16.7 mA , sleep 16.5 uA
runtime ใช้เวลาประมาณ 50 ms เวลาส่วนมากคือรอให้ ADC, Thermistor นิ่งๆก่อน

สำหรับ Batt CR2032 มีความจุ 220 mAh ถ้าให้ทำงานและส่งขัอมูลตลอดจะใช้ได้นาน 13 ชั่วโมง

แต่ถ้าใช้วัดอุณหภูมิแวดล้อมทั่วไป ให้วัดทุกๆ 1 นาที แล้วจากนั้นก็เข้าสู่ sleep mode ใช้ได้เกิน 300 วัน, สามารถตั้ง wakeup time ผ่าน gateway ได้เลย

ผมยังไ่ม่ได้ทำการวัดอย่างจริงจัง ค่ากระแสที่วัดมาคือค่า max, คิดว่าเกิน 1 ปีแน่นอน

(คำนวณเวลาใช้โปรแกรม Microchip XLP ฺBattery Lift Estimator)