IoT Developer Skill
I help you build IoT applications, connect sensors and devices, and create smart home/industrial IoT solutions.
What I Do
Device Integration:
Microcontroller programming (Arduino, ESP32) Sensor reading and data collection Actuator control (motors, LEDs, relays) Hardware interfacing
Communication:
MQTT messaging WebSocket connections REST API integration Bluetooth/WiFi connectivity
IoT Platforms:
Real-time dashboards Device management Data logging Alerts and automation MQTT Basics (Web Client) npm install mqtt
// lib/mqtt-client.ts import mqtt from 'mqtt'
export class MQTTClient { private client: mqtt.MqttClient
constructor(brokerUrl: string) {
this.client = mqtt.connect(brokerUrl, {
clientId: web_${Math.random().toString(16).slice(3)},
clean: true,
connectTimeout: 4000
})
this.client.on('connect', () => {
console.log('MQTT connected')
})
this.client.on('error', error => {
console.error('MQTT error:', error)
})
}
subscribe(topic: string, callback: (message: string) => void) { this.client.subscribe(topic, err => { if (err) console.error('Subscribe error:', err) })
this.client.on('message', (receivedTopic, message) => {
if (receivedTopic === topic) {
callback(message.toString())
}
})
}
publish(topic: string, message: string) { this.client.publish(topic, message) }
disconnect() { this.client.end() } }
Usage:
'use client' import { useEffect, useState } from 'react' import { MQTTClient } from '@/lib/mqtt-client'
export function TemperatureDashboard() { const [temperature, setTemperature] = useState(0) const [humidity, setHumidity] = useState(0)
useEffect(() => { const mqtt = new MQTTClient('ws://broker.hivemq.com:8000/mqtt')
mqtt.subscribe('home/temperature', (msg) => {
setTemperature(parseFloat(msg))
})
mqtt.subscribe('home/humidity', (msg) => {
setHumidity(parseFloat(msg))
})
return () => mqtt.disconnect()
}, [])
return (
Temperature
{temperature}°C
<div className="p-6 bg-white rounded-lg shadow">
<h3 className="text-gray-600">Humidity</h3>
<p className="text-4xl font-bold">{humidity}%</p>
</div>
</div>
) }
Arduino/ESP32 Code Temperature Sensor (DHT22) // ESP32 + DHT22 Temperature/Humidity Sensor
include
include
include
define DHTPIN 4
define DHTTYPE DHT22
const char ssid = "YOUR_WIFI_SSID"; const char password = "YOUR_WIFI_PASSWORD"; const char* mqtt_server = "broker.hivemq.com";
WiFiClient espClient; PubSubClient client(espClient); DHT dht(DHTPIN, DHTTYPE);
void setup() { Serial.begin(115200); dht.begin();
// Connect to WiFi WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("WiFi connected");
// Connect to MQTT client.setServer(mqtt_server, 1883); }
void loop() { if (!client.connected()) { reconnect(); } client.loop();
// Read sensor float temperature = dht.readTemperature(); float humidity = dht.readHumidity();
// Publish to MQTT if (!isnan(temperature)) { client.publish("home/temperature", String(temperature).c_str()); }
if (!isnan(humidity)) { client.publish("home/humidity", String(humidity).c_str()); }
delay(5000); // Publish every 5 seconds }
void reconnect() { while (!client.connected()) { if (client.connect("ESP32Client")) { Serial.println("MQTT connected"); } else { delay(5000); } } }
Smart Home Dashboard 'use client' import { useEffect, useState } from 'react' import { MQTTClient } from '@/lib/mqtt-client'
interface Device { id: string name: string type: 'light' | 'sensor' | 'thermostat' status: string | number }
export function SmartHomeDashboard() {
const [devices, setDevices] = useState
const [mqtt, setMqtt] = useState
useEffect(() => { const client = new MQTTClient('ws://broker.hivemq.com:8000/mqtt')
// Subscribe to device topics
client.subscribe('home/light/1', (msg) => {
updateDevice('1', msg)
})
client.subscribe('home/temperature', (msg) => {
updateDevice('2', parseFloat(msg))
})
setMqtt(client)
return () => client.disconnect()
}, [])
const updateDevice = (id: string, status: string | number) => { setDevices(prev => prev.map(device => device.id === id ? { ...device, status } : device )) }
const toggleLight = (id: string) => {
const device = devices.find(d => d.id === id)
if (device && mqtt) {
const newStatus = device.status === 'on' ? 'off' : 'on'
mqtt.publish(home/light/${id}, newStatus)
updateDevice(id, newStatus)
}
}
return (
Smart Home
<div className="grid md:grid-cols-2 lg:grid-cols-3 gap-4">
{devices.map((device) => (
<div key={device.id} className="p-6 bg-white rounded-lg shadow">
<h3 className="font-semibold mb-2">{device.name}</h3>
{device.type === 'light' && (
<button
onClick={() => toggleLight(device.id)}
className={`px-4 py-2 rounded ${
device.status === 'on'
? 'bg-yellow-400 text-black'
: 'bg-gray-300'
}`}
>
{device.status === 'on' ? '💡 ON' : '🌑 OFF'}
</button>
)}
{device.type === 'sensor' && (
<p className="text-2xl font-bold">{device.status}°C</p>
)}
{device.type === 'thermostat' && (
<div>
<p className="text-xl">Target: {device.status}°C</p>
<div className="flex gap-2 mt-2">
<button className="px-3 py-1 bg-blue-600 text-white rounded">
-
</button>
<button className="px-3 py-1 bg-blue-600 text-white rounded">
+
</button>
</div>
</div>
)}
</div>
))}
</div>
</div>
) }
WebSocket Real-Time Sensor Data // app/api/sensor-stream/route.ts export async function GET(req: Request) { const encoder = new TextEncoder()
const stream = new ReadableStream({ start(controller) { const interval = setInterval(async () => { // Simulate sensor data (or read from actual IoT device) const temperature = 20 + Math.random() * 10 const humidity = 40 + Math.random() * 20
const data = `data: ${JSON.stringify({
temperature,
humidity,
timestamp: new Date().toISOString()
})}\n\n`
controller.enqueue(encoder.encode(data))
}, 1000)
req.signal.addEventListener('abort', () => {
clearInterval(interval)
controller.close()
})
}
})
return new Response(stream, { headers: { 'Content-Type': 'text/event-stream', 'Cache-Control': 'no-cache', Connection: 'keep-alive' } }) }
When to Use Me
Perfect for:
Building smart home systems Creating industrial IoT solutions Implementing sensor networks Developing device dashboards Automating physical processes
I'll help you:
Connect IoT devices Implement MQTT protocols Read sensor data Build real-time dashboards Control actuators What I'll Create 🌡️ Sensor Integration 💡 Smart Device Control 📊 IoT Dashboards 📡 MQTT Communication 🏠 Smart Home Systems 🏭 Industrial IoT
Let's connect the physical and digital worlds!
← 返回排行榜