Inhoudsopgave:

Website/WiFi-gestuurde LED-strip met Raspberry Pi - Ajarnpa
Website/WiFi-gestuurde LED-strip met Raspberry Pi - Ajarnpa

Video: Website/WiFi-gestuurde LED-strip met Raspberry Pi - Ajarnpa

Video: Website/WiFi-gestuurde LED-strip met Raspberry Pi - Ajarnpa
Video: WALKING DEAD COMPLETE GAME FROM START LIVE 2024, Juli-
Anonim
Website/WiFi-gestuurde LED-strip met Raspberry Pi
Website/WiFi-gestuurde LED-strip met Raspberry Pi

Achtergrond:

Ik ben een tiener en heb de afgelopen jaren kleine elektronicaprojecten ontworpen en geprogrammeerd, en heb ook deelgenomen aan robotica-wedstrijden.

Ik was onlangs bezig met het bijwerken van mijn bureauopstelling en ik besloot dat wat sfeerverlichting een leuke toevoeging zou zijn. In het begin kocht ik net een 5v batterijgevoede LED-strip die werd bestuurd door een afstandsbediening, maar het was geen erg bevredigend proces en ik had een idee. Ik had een paar reserveonderdelen liggen en probeerde iets te bedenken dat te maken had met de Raspberry Pi die ik voor Kerstmis had gekregen. Tijdens een bijzonder saaie dag in de wetenschapsles, realiseerde ik me dat ik de GPIO-pinnen van de Raspberry Pi kon gebruiken om de LED-lampen te bedienen, zolang ik ze maar RGB-waarden liet uitvoeren.

Mijn oorspronkelijke ontwerpplan was om de lichten te laten bedienen door een touchscreen-display op mijn muur of bureau, maar na wat revisies besloot ik dat de gemakkelijkste manier om te gaan zou zijn om het met een ander apparaat te bedienen. Terwijl ik overwoog om een app voor mijn telefoon in Java te schrijven, leek een kleine website veel efficiënter.

Dit project staat open voor veel verbeteringen, en hoewel mijn html + php nogal vaag zijn, krijgen ze de klus geklaard

Onderwerpen:

De belangrijkste punten die deze gids zal raken zijn---

  1. GPIO besturen op de Raspberry Pi
  2. Een Apache-webserver hosten op de Pi
  3. De webserver gebruiken om een RGB LED-lichtstrip te bedienen

Stap 1: Benodigde materialen en benodigdheden

  • 1 x Raspberry Pi (ik gebruikte een Pi 2 Model B)
  • Micro SD kaart
  • Iets om je Pi van stroom te voorzien (USB-kabel en wisselstroomadapter)
  • 1 x USB WiFi-adapter OF een Ethernet-verbinding
  • 1 x USB naar seriële kabel -
  • 1 x GPIO-uitbraak -
  • 1 x klein breadboard -
  • USB naar MicroSD -
  • Meerdere kleuren massieve draad
  • een behuizing
  • 3 x NPN-type transistors (ik gebruikte BC547b-transistoren)
  • 1x 5V LED-lichtstrip
  • Overbruggingsdraden van vrouw naar man -

Stap 2: De Pi-omgeving instellen

De Pi-omgeving instellen
De Pi-omgeving instellen
De Pi-omgeving instellen
De Pi-omgeving instellen

Ik heb een schuine plastic doos gebruikt om het project in te sluiten, zodat het niet opvalt op mijn plank. Ik boorde een gat in de zijkant voor de seriële USB-kabel en plaatste de Pi naast het breadboard en Pi Wedge.

Stap 3: Uw Pi instellen (deel 1)

Je Pi instellen (deel 1)
Je Pi instellen (deel 1)

Voor dit project heb ik de nieuwste versie van niet-desktop Raspbian gebruikt

Een handleiding voor het installeren van Raspbian is hier te vinden:

(Mogelijk hebt u een USB-naar-microSD-adapter voor uw computer nodig)

Nadat Raspbian op de SD-kaart is geïnstalleerd, kunt u deze aansluiten op de Raspberry Pi en de Ethernet-kabel of USB WiFi-adapter op de Pi aansluiten

Installeer vervolgens Tera Term op uw computer, zodat u via uw pc kunt communiceren met de terminal van de Raspberry Pi:

Sluit vervolgens de USB-seriële kabel van de Pi-wig aan op de pc. Het is toegankelijk via Tera Term. Zorg ervoor dat de baudrate van de seriële poort is ingesteld op 115200.

Eerst zal de Pi een prompt plaatsen om in te loggen als het besturingssysteem correct is geïnstalleerd

De standaard gebruikersnaam en wachtwoord zijn:

Gebruikersnaam: pi

Wachtwoord: framboos

Stap 4: Uw Pi instellen (deel 2)

Wifi instellen

Voer in de terminal het commando. uit

sudo nano /etc/network/interfaces

Plak vervolgens deze code en vervang de SSID en PSK door de naam en het wachtwoord van uw router

automatisch uitschakelen

iface lo inet loopback iface eth0 inet dhcp allow-hotplug wlan0 auto wlan0 iface wlan0 inet dhcp wpa-ssid "ssid" wpa-psk "wachtwoord"

Met dit bestand kan de Pi verbinding maken met je wifi

Start vervolgens de Pi opnieuw met de regel

sudo reboot

Webserver installeren

Log in en installeer vervolgens de Apache-server met

sudo apt-get install apache2 -y

en

sudo apt-get install php libapache2-mod-php -y

Om het IP-adres van je Pi te vinden, voer je de opdracht uit:

hostnaam -I

Gebruik uw browser om toegang te krijgen tot het IP-adres dat wordt weergegeven om te controleren of het werkt.

In Google Chrome typ ik bijvoorbeeld 192.168.1.72 in de adresbalk.

Documentatie die u moet volgen is te vinden op

De PiGPIO-bibliotheek moet ook worden geïnstalleerd, waarmee u de gegevens kunt beheren die over de GPIO-pinnen worden verzonden.

sudo apt-get install build-essentiële unzip wget

en

wget https://abyz.me.uk/rpi/pigpio/pigpio.zip && unzip pigpio.zip && cd PIGPIO && sudo make install

Stap 5: De code schrijven

Navigeer naar /var/www/html met de regel

cd /var/www/html

In de map staat een standaard html-bestand, dat u moet bewerken.

sudo nano index.html

Verwijder in Nano alles wat er al is en vervang het door de volgende code.

(Tera Term kan een beetje funky zijn met kopiëren en plakken, maar als je eenmaal tekst hebt gekopieerd, zou alt+v het werk moeten doen)

functie readRGB (kleur) {if (kleur.lengte == 0) {document.getElementById("txtHint").innerHTML = ""; opbrengst; } else { var xmlhttp = nieuwe XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 400) { document.getElementById("txtHint").innerHTML = this.responseText; } }; temp = codeerURIComponent(kleur); xmlhttp.open("GET", "action_page.php?q=" + temp, true); xmlhttp.send(); } } Selecteer een kleur:

Sla het dan op als main.html, in plaats van index.html

De bovenstaande code fungeert als de knop die u indrukt en als de code die de door u geselecteerde kleur naar het andere bestand stuurt.

Voer vervolgens de opdracht. uit

sudo nano

en plak in

$r $g $b ;

exec("varkens p 17 $g"); exec("varkens p 22 $r"); exec("varkens p 22 $b"); ?>

en sla het op als action_page.php

Deze code ontvangt de RGB-waarde, en stelt de PWM-waarden op de ledstrip in.

Stap 6: Circuitontwerp

Circuit ontwerp
Circuit ontwerp

Nu alle software is ingesteld, is het tijd om aan de hardware te werken.

Het doel van het circuit is om PWM-signalen (Pulse Width Modulated) van de Pi naar de LED-array te sturen.

De ledstrip heeft vier pinnen: rood, groen, blauw en stroom (5 volt in mijn geval).

Elke PWM-pin bestuurt een van de drie kleuren via een transistor, die als schakelaar fungeert.

Elke transistor heeft drie pinnen: collector, basis en emitter.

Het PWM-signaal regelt de duty-cycle (hoe lang de schakelaar in- en uitgeschakeld wordt).

Door de duty cycle zijn de lampen donkerder of feller.

Omdat de lampen zo snel aan en uit gaan, zien mensen het als solide licht met wisselende helderheid.

OPMERKING: In het schema vertegenwoordigen de LED-symbolen de LED-array en de stroombeperkende weerstanden in de draad.

Stap 7: Boter je brood… Bord

Boter je brood… Bord
Boter je brood… Bord

Zorg er tijdens het maken van verbindingen voor dat de Pi is uitgeschakeld.

Plaats de Pi-wig met één rij pinnen op beide helften van het breadboard en sluit deze aan op de Pi met de lintkabel. Ik heb massieve kerndraad gebruikt om de rommel op het breadboard te verminderen en om ervoor te zorgen dat er niets per ongeluk zou worden losgekoppeld.

Plaats de transistors op de bovenste helft van het breadboard (kolom A) en sluit de LED-array aan op de onderste helft (rijen H, I of J).

Sluit de negatieve stroomrail aan op de GND-pin op de wig en de positieve rail op de 5V-pin.

Sluit de positieve voedingsrail aan op de voedingspin van de LED-array.

Verbind voor elke transistor de emitterpen met de negatieve stroomrail en verbind de collectorpen met afzonderlijke rijen die overeenkomen met de pinnen van de LED-array (ik gebruikte rij 1 als 5v en 2, 3 en 4 als groen, rood en blauw, in kolom f). Verbind vervolgens vier mannelijke naar vrouwelijke jumperdraden van het breadboard naar de LED-strip.

Sluit ten slotte de basispin van de groene transistor aan op pin 17 op de wig, de rode transistorbasis op pin 22 en de blauwe transistorbasis op pin 24.

Stap 8: Testen

Testen
Testen

Navigeer in een webbrowser naar het IP-adres van de Pi en schrijf daarna /main.html

Kies een kleur en sta versteld van de "wonderen van de moderne technologie"!

Stap 9: Neem contact met mij op als u vragen/feedback heeft

Als je vragen of suggesties hebt, laat dan gerust een reactie achter of stuur me een DM hier en ik zal proberen zo snel mogelijk te antwoorden.

Veel geluk!

Aanbevolen: