Internet of Things เป็น Concept ที่ว่าของทุกสิ่งจะสื่อสารกันได้ผ่านเครือข่าย Internet ไม่ว่าจะเป็นเครื่องใช้ไฟฟ้าในบ้าน ทีวี ตู้เย็น หลอดไฟ ปลั้กไฟ จะถูกเชื่อมโยงเข้าด้วยกัน และ เราจะสามารถจะควบคุม จากที่ไหน ก็ได้ ผ่านอุปกรณ์ อย่างเช่น smart phone
ตอนนี้ อุปกรณ์หลายอย่างๆ ก็ไม่ได้เป็นแค่ concept อีกต่อไป มันเริ่มเข้ามาการใช้จริงแล้ว อย่างเช่น เริ่มมีอุปกรณ์ที่เรียกว่า Smart Thermostat ที่จะควบคุมเครื่องปรับอากาศที่บ้าน และจะเรียนรู้อุณหภูมิที่สบายสำหรับเรา และยังควบคุมจากที่ไหน ก็ได้ อย่างเช่นโปรเจค <a href="https://nest viagra generique 50mg.com/thermostat/life-with-nest-thermostat/”>NEST และ tado
tado
อันนี้ยังไม่รวม อุปกรณ์ควบคุมไฟฟ้าในบ้าน อีกหลายชนิด ที่กำลังจะตามมา ทั้ง Honey Well และ Phillips Hub ซึ่งทางผมยังไม่กล่าวในตอนนี้ แต่เราคงจะได้ อุปกรณ์เหล่านี้ ค่อยเข้ามาทดแทนอุปกรณ์แบบเดิมๆ
แต่บทความนี้ ผมจะพูดถึงเรื่องการที่เราจะสร้างอุปกรณ์ที่จะควบคุมผ่านไวไฟซึ่งมันเป็นปัญหาใหญ่ เราอาจจะคุ้นเคยอุปกรณ์ไวไฟ ผ่านคอมพิวเตอร์ ผ่าน smart phone แต่พอมาเป็นอะไรที่ง่ายๆ อย่างหลอดไฟ ตู้เย็น ปลั้กไฟ การจะมีไวไฟ เป็นเรื่องใหญ่เลยทันที่ เนื่องจากอุปกรณ์เชื่อมต่อไวไฟ ส่วนมากจะ CPU ประมวลผลสูงๆ และมีระบบปฏิบัติการไว้ด้วย จึงทำให้ต้นทุนมันสูงเกินที่จะใส่ลงไปในอุปกรณ์เหล่านั้น
โดยในยุคเริ่มต้น วิธีที่นิยมกันจะใช้คอมพิวเตอร์ และ เขียนโปรแกรมขึ้นมาเป็น Server สำหรับรับคำสั่ง แต่วิธีนี้ เห็นได้ชัดๆ ว่าค่าใช้จ่ายสูง และ ขนาดใหญ่ ในยุคถัดมา เราก็ใช้บอร์ด เหมือน Embedded Linex อย่างเช่น Raspberry Pi จึงทำให้เราสามารถเชื่อมต่ออุปกรณ์ กับ Internet ได้ง่ายขึ้น แต่วิธีที่กล่าวไป มันใช้ต้นทุนที่สูงอยู่ดี ที่มันเป็นแบบนี้ เพราะว่า การสื่อสารผ่าน WIFI เป็นสิ่งที่ซับซ้อน มีมาตราฐานการเชื่อมต่อหลาย Layer มาก และ เขาไม่ได้ออกแบบให้มันซับซ้อนน้อยกว่านี้ ซึ่งก็เลยรู้สึกว่า งานง่ายอย่างเช่นแค่เปิด ปิดไฟ หรือ อ่านค่าความร้อน ความชื้นในบ้าน ใช้ขนาดนี้ คงไม่คุ้มสักเท่าไร
Nest
ซึ่งการสร้างบอร์ด Embedded Linux ต้นทุนไม่ได้ถูกเลย แรกเลยแผ่นวงจร ต้องมี PCB 2-4 Layer อุปกรณ CPU เป็น SMT ซับซ้อนเกินประกอบเองได้อีกและ ท้ายที่สุดเรื่อง firmware ทดสอบให้แน่ใจ ดังนั้น ถ้าไม่มองเห็น ตลาดจริงๆ หรือทำโปรดักส์อะไรอยู่แล้ว คงไม่มีใครลงทุนทำแน่ๆ
ดังนั้นยุค Internet of the Thing ที่อุปกรณ์ทุกสิ่งจะมีไอพีได้จะเกิดได้ ทางผมเห็นคิดว่า ปัจจัยหลัก น่าจะอยู่ที่ราคาเลย ต้องมีชิปขนาดเล็ก ที่มี WIFI ในตัวมาในตัว ถ้าบริษัทไหน ผลิตไอซีที่ทำงานดังกล่าวได้ งานนี้เกิดแน่ๆ
รู้จัก CC3000
เป็นโมดุลชิปตัวแรก ช่วยการเชื่อมต่อไวไฟ ของบริษัท Ti โดยทางบริษัทเขาจะเรียก Wireless Network Processor หรือ แปลเป็นไทย คือ หน่วยประมวลผลของเครือข่ายไร้สาย เขาออกแบบเพื่อไว้ช่วย ไมโครคอนโทรลเลอร์ อย่างให้สามารถ Arduino, AVR หรือ ARM Cortex ให้เชื่อมต่อ WIFI ได้
Ti ที่ออกแบบมาให้ใช้งานง่าย มี one click config และ ผ่าน มาตราฐาน FCC ด้วย ถ้าจะผลิตจริง ตัวนี้ล่ะเหมาะมาก โดย CC3000 ถูกนำมาใช้ใน WIFI Shiled ของ Arduino ด้วย แต่ปัญหาคือราคายังสูงอยู่ ราคาอยู่ที่ 12.00 US ที่จำนวน 1k ตัวขึ้น สั่งน้อยๆ จะได้ราคาที่ 20 US ซึ่งเราก็เลยเห็นบอร์ด WIFI Shield ราคาก็เพราะแบบนี้ล่ะครับ ต้นทุนสูงเกิน แต่คาดว่า ราคา ถูกลงเรื่อยๆ แน่ๆครับ ตามสไตล์ เจ้าตลาดครับ เปิดราคาสูงก่อน แล้วค่อยๆลดลงมาเท่ากับ ราคาตลาดอีกที่
Tech Spec ของ CC3000
- Wireless Network Processor
- IEEE 802.11 b/g
- Embedded IPv4 TCP/IP stack
- Best-in-class radio performance
- TX power: +18.0 dBm at 11 Mbps, CCK
- RX sensitivity: –88 dBm, 8% PER, 11 Mbps
- Works with low MIPS and low-cost MCUs with compact memory footprint
- FCC, IC, and CE certified with a chip antenna
- HW design files and design guide available from TI
- Integrated crystal and power management
- Small form factor: 16.3 mm × 13.5 mm × 2 mm
แนะนำ ESP8266
ต่อมา บริษัท Expressif ผลิต ESP8266 ด้วยเทคโนโลยี 40 นาโนเมตร มีหน่วยประมวลผลพลังสูง มี WIFI และมี TCP/IP Stack ในตัว จุดเด่นที่สำคัญคือราคา อยู่ที่ 5-7 ดอลลาร์เท่านั้น และ ถ้าหากใครต้องการพัฒนาซอฟต์แวร์บนตัวชิป ก็สามารถทำได้ ทางผู้ผลิตได้ให้ SDK ไว้ด้วย
โดยข่าวแรกที่เห็น ข่าวจาก Hackaday เอามาเขียนลงถึง chip จากจีน เมื่อต้นเดือนกันยายนที่ผ่านมา ซึ่งในปัจจุบัน ข้อมูลการใช้งานยังน้อยมาก จะมีแค่ Forum ESP8266 เท่านั้น แต่เนื่องด้วยความถูก ทางเราจึงตัดสินใจ จัดมาลองก่อนใคร มาดู spec ของไอซีคร่าวๆ
Tech Specs
- 802.11 b / g / n
- Wi-Fi Direct (P2P), soft-AP
- Built-in TCP/IP protocol stack
- 802.11b mode + 19.5dBm output power
- Support antenna diversity
- Built-in low-power 32-bit CPU: can double as an application processor
- SDIO 2.0, SPI, UART
- 2ms, connect and transfer data packets
- standby power consumption of less than 1.0mW (DTIM3)
จาก spec จะเห็นว่า ไอซีตัวเดียวจบ นำมาต่อไมโครคอนโทรล ทำ application ได้เลย ไม่ต้องมีอะไรเพิ่มอีกแล้ว ถ้าอยู่ในขั้นตอนการผลิตจริง เราแค่ออกแบบ PCB ให้เป็นเสาอากาศ น่าจะใช้งานได้เลย
ผมจึงทำตารางเปรียบเทียบให้เห็นข้อดี ข้อเสียแต่ล่ะตัวเลย มี Electric Imp และ Spark IO ผมยังไม่มีโอกาสจับนะครับ
Raspberry Pi | Arduino + CC3000 | Arduino ESP8266 | Electric Imp และ Spark IO | |
การใช้งาน | Embeded Linux ที่มาพร้อม กับ TCP/IP Stack |
กินไฟน้อย ,CC3300 จะต่อ wifi ได้ มี tcp/ip stack ในตัว |
กินไฟน้อย ,ESP8266 จะต่อ wifi ได้ มี tcp/ip stack ในตัว |
เป็น Cortex M3 ที่มี Wifi และ มีระบบ Cloud Software ในตัว |
ข้อดี | 1. มี Community สนับสนุน 2. มีตัวอย่างการใช้งานผ่าน Internet เยอะมาก 3. เชื่อมต่อ Hardware ได้ ผ่าน GPIO และ USB |
1. ไมโครคอนโทรลเลอร์ ใช้งาน Wifi ได้ 2. ใช้อุปกรณ์น้อย ทนทานมากกว่า 3. ขนาดเล็ก กินไฟน้อย 4. ทำบอร์ด ผลิตเองได้ |
1. ไมโครคอนโทรลเลอร์ ใช้งาน Wifi ได้ 2. ใช้อุปกรณ์น้อย ทนทานมากกว่า 3. ขนาดเล็กกินไฟน้อยกว่า 4. ทำบอร์ด ผลิตเองได้ |
1. ใช้อุปกรณ์น้อย ทนทานมากกว่า 2. ขนาดเล็กกินไฟน้อยกว่า 3. ประหยัดเวลา เนื่องจากตัวระบบเอง จะมี API ที่ต่อทั้ง smart phone และ Cloud Server มาให้ |
ข้อเสีย | 1. ไม่สามารถผลิตขึ้นมาเองได้ chip ถูกควบคุมโดยผู้ผลิต 2. ใช้เวลาการ boot นาน |
1. ยังมีตัวอย่างการใช้งานน้อย 2. โมดุล CC3000 ราคาแพง 3. หน่วยประมวลผล ช้ากว่า Arm |
ตัวอุปกรณ์ข้อมูลยังเป็นภาษาจีน | Hardware เปลี่ยนแปลงไม่ได้ |
ราคา | Raspberry Pi 1200-1600 บาท SD-Card 250 บาท Case 250 บาท Wifi USB 500 บาท |
Arduino 500-1000 บาท Cc2500 1600-2000 บาท |
Arduino 500-1000 บาท Esp8266 200-250 บาท |
Electric Imp 29 US Spark IO 39 US |
ประมาณ 2200-2600 บาท | รวม 2100-3000 บาท | รวม 700-1250 บาท | รวม 900-1279 บาท |
เพิ่มเติมที่มา
วิธีการทดสอบ ESP8266
ESP8266
ราคามาแรง แซงทางโค้ง ผมว่าตลาดชิพสำหรับ IoT ได้ร้อนระอุขึ้นมาอีกรอบครับ
#include // This library is already built in to the Arduino IDE
#include //This library you can add via Include Library > Manage Library >
LiquidCrystal_I2C lcd(0x3F, 20, 4);
#include
#include
#define DHTTYPE DHT22
#define DHTPIN D3
DHT dht(DHTPIN, DHTTYPE);
void setup()
{
Serial.begin(9600);
dht.begin();
lcd.init(); // initializing the LCD
lcd.backlight(); // Enable or Turn On the backlight
lcd.begin(16,2);
}
void loop()
{
float humid = dht.readHumidity();
float temp = dht.readTemperature();
// Nothing A lcd.setCursor(0, 1);
lcd.setCursor(0, 0);
lcd.print(“Temp =”); // Start Print text to Line 1
lcd.print(temp,2); // Start Print Test to bsolutely Nothing!
lcd.print(“C”);
lcd.setCursor(0, 1);
lcd.print(“Humidity =”);
lcd.print(humid,2);
lcd.print(“%”);
Serial.print(“Temp:”);
Serial.print(temp);
Serial.print(” , Humidity:”);
Serial.print(humid);
}