Cuprins:

Lampă de proiectare IoT cu IFTTT: 7 pași (cu imagini)
Lampă de proiectare IoT cu IFTTT: 7 pași (cu imagini)

Video: Lampă de proiectare IoT cu IFTTT: 7 pași (cu imagini)

Video: Lampă de proiectare IoT cu IFTTT: 7 pași (cu imagini)
Video: Sydney, Australia Walking Tour - 4K60fps with Captions - Prowalk Tours 2024, Noiembrie
Anonim
Lampă IoT Design cu IFTTT
Lampă IoT Design cu IFTTT
Lampă IoT Design cu IFTTT
Lampă IoT Design cu IFTTT

În acest Instructable, vă voi îndruma în realizarea unei lămpi LED conectate la internet, funcțională și elegantă.

Acest obiect de design funky este controlabil cu o aplicație web sau cu serviciul online IFTTT. Acesta din urmă face posibilă conectarea lămpii la toate tipurile de servicii externe precum Asistent Google, Alexa, Notificări Android, Oră și dată, Prognoza meteo etc. Acest proiect presupune cunoștințe de bază despre ESP8266 și editorul Arduino.

Pasul 1: Adunați electronice

Adunați electronice!
Adunați electronice!
Adunați electronice!
Adunați electronice!

Pentru acest proiect veți avea nevoie de următoarele:

  • Un NodeMCU sau alt microcontroler ESP8266
  • Benzi LED Neopixel / WS2812B (1m 60LED / m)
  • Schimbător de nivel *
  • Sârmă de salt (de la bărbat la femeie)
  • Cablu micro-USB
  • Mufă de perete USB (5V)

Banda LED are trei cabluri: 5V în (roșu), GND (alb) și DATA în (verde). ESP8266 funcționează la 3,3V, dar are un pin VU. Acest pin este conectat direct la alimentarea USB, deci dacă alimentați placa cu 5V prin USB, această tensiune va fi disponibilă și pe pinul VU. Vom folosi acest pin pentru a alimenta banda LED. Deci, pe scurt:

  • Conectați masă la masă (GND LA G)
  • Conectați 5V + la Vu
  • Conectează Din la D2

* = În funcție de hardware-ul dvs., este posibil ca acest cablaj să nu funcționeze. Deoarece ESP8266 funcționează la 3,3V, semnalul de date pe care îl furnizează va fi, de asemenea, la 3,3V. Deoarece WS2812B este alimentat cu 5V, semnalul de date poate fi prea slab pentru a fi primit corespunzător de bandă. Dacă cablajul de mai sus nu funcționează, veți avea nevoie de un schimbător de nivel care să schimbe semnalul de date de la 3,3V la 5V. Consultați schema de cablare atașată.

Notă! Unele benzi LED sunt mai predispuse la rupere decât altele. Dacă nu ați lucrat niciodată cu aceste benzi, vă recomand cu tărie să citiți Neopixel Überguide pentru sfaturi despre conectarea în siguranță a unei benzi LED Neopixel.

Pasul 2: FastLED

FastLED
FastLED

Pentru a controla LED-urile putem folosi biblioteca FastLED. Dacă nu ați făcut-o deja, adăugați această bibliotecă în mediul dvs. Arduino (Schiță> Includeți bibliotecă> Gestionați bibliotecile> „FastLED”).

Pentru a vă asigura că cablajul funcționează, vă recomandăm să încercați unul dintre numeroasele exemple care vin cu biblioteca FastLED (Fișier> Exemple> FastLED). Asigurați-vă că modificați setările din fiecare exemplu (număr de LED-uri = 60, pin de date = 2), înainte de a le încărca pe placa dvs.

Aveți grijă să setați LED-urile prea luminoase în timp ce placa este conectată la computer. Când trageți mai mult de 500mA, computerul dvs. ar putea închide portul. Dacă doriți să utilizați banda cu luminozitate maximă, alimentați-o cu o priză USB care poate furniza un amperaj suficient de mare.

Pasul 3: Software

Software
Software

Acum este timpul pentru software-ul personalizat. Software-ul este disponibil pe GitHub:

github.com/dpkn/lamp/tree/master/software

Descărcați fișierul software, dezarhivați-l și deschideți fișierul software.ino în editorul Arduino. Asigurați-vă că aveți instalate toate bibliotecile menționate în acest fișier.

Accesați fila Configurare și adăugați numele și parola rețelei WiFi la următoarele linii:

const char * ssid = "";

const char * password = "";

S-ar putea să fie necesar să modificați următoarele, în funcție de router:

const IPAddress staticIp (192, 168, 178, 101); // IP-ul local static dorit al dispozitivului

gateway IPAddress const (192, 168, 178, 1); // IP gateway al subrețelei constIPAddress a routerului (255, 255, 255, 0); // Subrețea routerului

Pe MacOS, puteți găsi aceste setări în Preferințe sistem> Rețea> Avansat> TCP / IP

Încărcați fișierele pe tablă. Dacă totul merge bine, banda se va aprinde alb când este conectată la rețeaua WiFi. Deschideți monitorul serial pe 115200 baud pentru a verifica informațiile suplimentare.

Pasul 4: Controlul local

Pentru a demonstra funcționarea lămpii, am creat o mică aplicație web disponibilă la https://lamp-app.surge.sh (sursă pe Codepen). Această aplicație trimite solicitări JSON direct la ESP8266, care la rândul său actualizează LED-urile.

Cele de mai sus vor funcționa numai dacă lampa și telefonul dvs. sunt conectate la aceeași rețea WiFi, deoarece vă adresați lampii prin adresa IP locală. Pentru a putea controla lampa de oriunde, va trebui să vă scufundați în setările routerului.

Pasul 5: controlarea acestuia de oriunde

Pentru a vă deschide lampa către lucrul magic care este World Wide Web, trebuie să facem ceva numit redirecționare de porturi. Practic, acest lucru va redirecționa cererile adresate la adresa dvs. IP publică (cea furnizată de ISP-ul dvs.) și numărul portului (în acest exemplu setat în mod arbitrar la 300) la adresa IP locală locală pe care este adresabil ESP8266.

Acest proces este diferit pentru fiecare dispozitiv, așa că, dacă nu știți cum să faceți acest lucru pe routerul dvs. specific, asigurați-vă că „port forwarding” + numele routerului dvs. Google. Iată setările de care aveți nevoie:

Port extern Start / End: 300

Port intern Start / End: 300

Adresă IP internă: 192.168.178.101 (adresa care este afișată în monitorul serial)

Protocol: TCP / UDP

Avertizare! După ce faceți acest lucru, lampa dvs. poate fi controlată de oricine vă cunoaște IP-ul public și portul pe care lampa este pornită. Dacă nu credeți că este o idee grozavă, este recomandată implementarea unui anumit nivel de securitate

Pentru a testa dacă totul este configurat corect, introduceți următoarele în browserul dvs. (dacă nu știți adresa IP publică, accesați acest site.)

[IP-ul tău public]: 300

Ar trebui să vedeți un mesaj de confirmare JSON. Acum puteți încerca să utilizați aplicația cu adresa dvs. IP publică.

Pasul 6: IFTTT

IFTTT
IFTTT
IFTTT
IFTTT
IFTTT
IFTTT
IFTTT
IFTTT

Aici începe adevărata distracție. Acum, când lampa noastră este conectată la ~~ internetul ~~, putem folosi site-ul IFTTT pentru a-l conecta la toate tipurile diferite de servicii.

În acest exemplu, vom configura o comandă Asistent Google care va aprinde luminile roșii, dar puteți alege un alt serviciu care vă scântește imaginația.

  1. Accesați IFTTT.com și creați un cont dacă nu ați făcut-o deja
  2. Navigați la „Appletele mele”> „Applet nou”
  3. Pentru serviciul de declanșare, căutați „Asistent Google”
  4. Selectați „Rostiți o frază simplă”
  5. Vino cu câteva fraze unice
  6. Pentru serviciul de acțiune, căutați „Webhooks”
  7. Utilizați următoarele setări:

URL: https:// [YOUR-PUBLIC-IP]: 300 / api

Metodă: POST Tip conținut: application / json

Și pentru corp:

Acum, când spunem propoziția aleasă, Asistentul Google va trimite o cerere către IFTTT, care, la rândul său, va trimite o solicitare JSON pentru lampa noastră. Asigurați-vă că încercați! Scufundați-vă în cod pentru a vedea ce altceva puteți face pe bandă.

Pasul 7: Făcându-l destul

Făcându-l destul
Făcându-l destul
Făcându-l destul
Făcându-l destul
Făcându-l destul
Făcându-l destul

Cea mai scumpă parte a acestui proiect este carcasa care găzduiește banda LED. Dacă doriți doar să încercați acest proiect fără a cheltui prea mulți bani pe el, puteți lua în considerare și alte forme sau pur și simplu realizarea tubului din hârtie albă pentru imprimantă. Atașat veți găsi un wireframe pe care îl puteți imprima pe hârtie pentru a plia câteva suporturi pentru tub, așa cum se arată în imaginile de mai sus.

Pentru o carcasă mai solidă am folosit următoarele elemente:

  • Tub acrilic mat (lungime = 1160mm, diametru = 40mm, grosime perete = 2mm)
  • 2x capac din plastic
  • Bloc de lemn de rasinoase de 20x2x30mm
  • Benzi metalice de 10x1160x2mm

Banda LED în sine este de 1000 mm, lăsând 80 mm la ambele capete ale tubului pentru a ascunde electronica. Am folosit hârtie pentru imprimantă înfășurată în tub la ambele capete pentru a le face transparente. Pentru a ușura inserția, am lipit banda LED pe o bandă metalică lungă

Am frezat tribunele dintr-un bloc de rasinoase. Dacă doriți să faceți același lucru, fișierul.stl este furnizat mai jos. De asemenea, puteți lua în considerare imprimarea 3D a suportului.

Recomandat: