LynxJS Workshop: เริ่มต้นเขียนโปรแกรมสำหรับ IoT
LynxJS Workshop: เริ่มต้นเขียนโปรแกรมสำหรับ IoT
ยินดีต้อนรับสู่ LynxJS Workshop Series! 🚀
ในบทความนี้ เราจะเริ่มต้นเรียนรู้ LynxJS ตั้งแต่พื้นฐาน การติดตั้ง และเข้าใจว่าทำไม LynxJS ถึงเป็นตัวเลือกที่น่าสนใจสำหรับการพัฒนา IoT Applications
🤔 LynxJS คืออะไร?
LynxJS เป็น JavaScript framework ที่ออกแบบมาเพื่อการพัฒนา IoT (Internet of Things) โดยเฉพาะ มีคุณสมบัติเด่นคือ:
- Lightweight - ขนาดเล็ก เหมาะสำหรับ embedded devices
- Event-driven - ใช้ event-driven architecture เหมาะกับ real-time applications
- Hardware Abstraction - ซ่อนความซับซ้อนของ hardware ให้นักพัฒนาเขียน code ได้ง่าย
- Cross-platform - รองรับหลาย hardware platforms (Raspberry Pi, ESP32, Arduino, etc.)
- TypeScript Support - รองรับ TypeScript ทำให้ code มี type safety
📦 การติดตั้ง LynxJS
Prerequisites
ก่อนติดตั้ง LynxJS ต้องมี:
- Node.js >= 18.x
- npm >= 9.x หรือ yarn >= 1.22
- Git
ติดตั้งผ่าน npm
```bash
สร้างโปรเจกต์ใหม่
npm create lynxjs@latest my-iot-project
เข้าไปในโฟลเดอร์โปรเจกต์
cd my-iot-project
ติดตั้ง dependencies
npm install ```
🏗️ โครงสร้างโปรเจกต์
หลังจากติดตั้งแล้ว จะได้โครงสร้างโปรเจกต์แบบนี้:
```text my-iot-project/ ├── src/ │ ├── devices/ # Device configurations │ ├── sensors/ # Sensor modules │ ├── actuators/ # Actuator modules │ ├── controllers/ # Business logic │ └── main.ts # Entry point ├── config/ │ ├── devices.json # Device config │ └── sensors.json # Sensor config ├── lynxjs.config.ts # LynxJS configuration ├── package.json └── tsconfig.json ```
🎯 Core Concepts
1. Devices
Devices คือ hardware ที่เราต้องการควบคุม
```typescript import { Device, DigitalPin } from ‘lynxjs’;
export class LED extends Device { constructor(pin: DigitalPin) { super({ pin, mode: ‘output’ }); }
on() { this.write(1); }
off() { this.write(0); } } ```
2. Sensors
Sensors ใช้อ่านค่าจาก environment
```typescript import { Sensor, AnalogPin } from ‘lynxjs’;
export class TemperatureSensor extends Sensor { constructor(pin: AnalogPin) { super({ pin, interval: 1000 }); }
read(): number { const rawValue = super.read(); return (rawValue * 0.48828125); } } ```
💡 ตัวอย่าง: Smart Temperature Monitor
```typescript import { LynxApp } from ‘lynxjs’; import { DHT11 } from ‘@lynxjs/sensors’; import { LCD16x2 } from ‘@lynxjs/display’;
@LynxApp() export class SmartTemperatureMonitor { private dht = new DHT11(4); private lcd = new LCD16x2({ rs: 8, en: 9, d4: 10, d5: 11, d6: 12, d7: 13 });
async onInit() { setInterval(() => this.readAndDisplay(), 5000); }
private async readAndDisplay() { const temp = await this.dht.temperature(); const humidity = await this.dht.humidity();
this.lcd.clear();
this.lcd.print(\`Temp: \${temp.toFixed(1)}C\`);
console.log(\`📊 Temp: \${temp}°C, Humidity: \${humidity}%\`);
} } ```
🎓 สรุป
ในบทความนี้เราได้เรียนรู้:
✅ LynxJS คืออะไรและทำไมต้องใช้ ✅ วิธีติดตั้งและ setup โปรเจกต์ ✅ Core concepts: Devices, Sensors, Controllers ✅ ตัวอย่างการใช้งานจริง
🔗 Links:
Happy Coding! 🚀