Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Arduino- en AC-apparaten - Automatische verlichting

Componenten en benodigdheden

Arduino UNO
× 1
Energiebesparingslamp
× 1
5v DC-adapter
× 1
Jumperdraden (algemeen)
× 1
Relais (algemeen)
× 1
UTSOURCE elektronische onderdelen
× 1

Benodigde gereedschappen en machines

Schroevendraaier

Apps en online services

Microsoft Visual Studio 2015
Arduino IDE

Over dit project

Slimme huisverlichting

In dit project leren we hoe we het relais met ultrasone sensor en Arduino kunnen gebruiken om onze huislampen (of elk ander apparaat) slimmer te maken.

Ons doel is om een ​​spaarlamp uit te laten gaan als je de kamer uitgaat en weer aan te gaan als je weer binnenkomt. Het is zo eenvoudig te implementeren en kost weinig tijd.

Deze tutorial gaat uit van basis Arduino kennis. Als je Arduino eerder hebt gebruikt, ben je klaar om te gaan.

Let op:dit project maakt gebruik van AC-hoogspanningsvoeding. Als je jonger bent dan 16 jaar of niet genoeg ervaring hebt, moet je een ervaren persoon hebben om je te helpen met het AC-gedeelte.

U kunt het project echter voltooien met gelijkstroomapparaten die op laagspanning werken en hetzelfde concept zullen bewijzen. Ik zal de waarschuwing duidelijk vermelden wanneer het gevaarlijk begint te worden.

Componenten

1) Arduino Uno

2) Multimeter

3) Doorverbindingsdraden

4) Broodplank

5) Echte module

6) Ultrasone sensor ( HC-SR04 ) en ultrasone bibliotheek voor de Arduino u kunt deze hier vinden, deze wordt (Nieuwe Ping) bibliotheek genoemd. Als het de eerste keer is dat u een externe bibliotheek op de Arduino installeert, controleer dan deze link.

7) DC-stroombron (optioneel)

8) Schroevendraaier (+ type voor de relaismodule)

9) Spaarlamp met de montage en de muurstekker eraan bevestigd (ik gebruikte een oude radiovoedingskabel om de stekker te krijgen).

Ik heb ook een lijmpistool gebruikt om de uiteinden van de draden te bevestigen, je moet isolatietape gebruiken.

10) Visual Studio voor het schrijven van Arduino-code, wil je weten hoe? check deze link, het is helemaal gratis of je kunt Arduino IDE gebruiken.

Laten we beginnen.

Voorbereiding van de ultrasone

Ten eerste zullen we weten hoe we de ultrasone sensor op de Arduino moeten bevestigen, wat wordt geïllustreerd in de onderstaande afbeelding. We zullen later beschrijven hoe we de ultrasone sensor kunnen testen.

De relaismodule

Dan zullen we een kanaal van de relaismodule aansluiten (zoals degene die ik heb 2 kanalen heeft), de Vcc-pin gaat naar 5v en de IN1 gaat naar Arduino Pin 8 (of een pin naar keuze).

Het is vermeldenswaard dat mijn relaismodule actief-laag is, om te weten wat het verschil is tussen actief-laag en actief-hoog, check deze link. Dus, voordat u verder gaat, moet u de actieve modus van uw relais kennen. Om dat te doen, sluit u gewoon de Vcc en GND normaal aan en sluit u vervolgens de IN-pin aan op 5V. Als er niets gebeurt, is deze actief laag om ervoor te zorgen dat de IN-pin met GND wordt verbonden.

De lamp

Bereid vervolgens de lamp voor om op de muurstekker te worden aangesloten en het relais, de ene aansluiting wordt rechtstreeks op de stekker aangesloten, de andere heeft een snede in het midden, het ene uiteinde van de snede gaat naar de normaal open pin (NO1) in de relaismodule, de andere gaat naar de COM1-pin en vervolgens naar de plug.

Het laatste circuit wordt (De lamp is vereenvoudigd :))

Nu zijn we klaar met de hardware.

De code doet het volgende

  • Meet de afstand van ultrasoon
  • Controleert of er iemand langs de deur is gepasseerd
  • Schakelt de toestand van het licht in

Waarden aflezen van de ultrasone

Laten we nu de ultrasone sensor proberen, dit is het voorbeeld uit de bibliotheek, het is heel eenvoudig en ongecompliceerd omdat het alleen de afstand afdrukt die het leest.

U kunt de afstand in Centimeter of Inches verkrijgen met (sonar is de naam van de ultrasone instantie).

sonar.ping_cm();
// Of
sonar.ping_inch();

Zoals we kunnen zien, worden ook de pinnen van de ultrasone sensor en het maximale gewenste bereik ingesteld.

Helaas leest de ultrasone sensor af en toe een defecte afstand.

Wat ervoor kan zorgen dat het licht onbedoeld aan en uit gaat, om dit probleem op te lossen, moeten we een aantal metingen krijgen en hun gemiddelde selecteren. Een andere manier om dit op te lossen is door het mediaanfilter te gebruiken die gewoon een aantal metingen doet, ze in een array sorteert en de waarde in het midden selecteert, wat zo cool is om de ruis te verwijderen als deze vaak voorkomt.

Gelukkig heeft de NewPing-bibliotheek dit filter geïmplementeerd in een functie genaamd

sonar.ping_median(unsigned byte numReadings); 

U geeft eenvoudig het aantal metingen door dat u als een monster wilt beschouwen, maximaal 512 omdat ze unsigned byte gebruiken .

deze functie retourneert de tijd die de echo heeft gebruikt om terug te stuiteren, die moet worden geconverteerd naar de lengte-eenheid die u gebruikt, dit is ook gemakkelijk geïmplementeerd in de bibliotheek met behulp van

sonar.convert_cm(unsigned int echoTime);
// Of
sonar.convert_in(unsigned int echoTime);

Het laatste nadeel van het ultrasone geluid is dat het 0 aangeeft als er niets voor staat , dit wordt eenvoudig opgelost door hem te vertellen de afstand in te stellen op MAX_DISTANCE als deze 0 aangeeft, uiteindelijk wordt de code voor het lezen van de sensor (afstand is een globale variabele) :

Detecteren dat er iets is voorbijgegaan

Laten we nu beginnen met coderen, om te weten dat er iemand voorbij is gegaan, moet het ultrasone apparaat een kritische afstand lezen die eenvoudig de helft van de breedte van de deur kan zijn. zo weten we altijd zeker dat er iemand langskomt.

Een ander ding dat ik in gedachten wil houden is dat het licht alleen schakelen als er iets voor het ultrasoon is gepasseerd, dit betekent dat als iemand ervoor stilstaat, er niets gebeurt. De code om dit te doen is als volgt

Gefeliciteerd !! je bent nu klaar, ik zal het hele Visual Studio-project bijvoegen terwijl ik een kleine bewerking in de bibliotheek heb gemaakt (dynamische geheugentoewijzing gebruikt in plaats van arrays met variabele grootte - omdat Visual Studio ze niet toestaat-) en wat documentatie toegevoegd.

Bekijk elektronische componenten op utsource.net

Gelieve respecteer dit project als je het nuttig vindt, andere projecten:

Arduino kleurenmixer

RC auto met 1Sheeld

Artikelen

Arduino ontwikkelen met Visual Studio

Code

  • Slimme huislamp
  • Ultrasone test
Smart House LightArduino
Deze code neemt de invoerwaarde van de ultrasone sensor en bestuurt het relais dienovereenkomstig
#define TRIGGER_PIN 12 // Arduino-pin verbonden met triggerpin op de ultrasone sensor.#define ECHO_PIN 11 // Arduino-pin verbonden met echopin op de ultrasone sensor .#define MAX_DISTANCE 200 // Maximale afstand waarvoor we willen pingen (in centimeters). De maximale sensorafstand is 400-500 cm. [dit is een willekeurig getal]#define RELAY_LINE1_PIN 8#include "NewPing.h" NewPing-sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing-configuratie van pinnen en maximale afstand.unsigned int critical_distance_cms =50; // Afsnijafstand waarop het licht zal schakelen [dit is een willekeurig getal] bool state =0; void setup () { Serial.begin (9600); // Open seriële monitor op 115200 baud om ping-resultaten te zien. pinMode (RELAY_LINE1_PIN, UITGANG); digitalWrite(RELAY_LINE1_PIN, HOOG); // Zet het licht uit} void loop () { delay (50); // Wacht 50 ms tussen pings (ongeveer 20 pings/sec). 29 ms zou de kortste vertraging tussen pings moeten zijn. unsigned int distance =readDistance(); // Huidige afstand van een object tegenover de ultrasone sensor Serial.print ("Ultrasonic:"); Serial.print(afstand); // Ping verzenden, afstand in cm ophalen en resultaat afdrukken (0 =buiten ingesteld afstandsbereik) Serial.println("cm"); // Iemand is in de buurt van de deur if (distance  
Ultrasone testArduino
Code om de ultrasone afdrukken de waarde te maken die het leest
// ----------------------------------- ----------------------------------------// Voorbeeld NewPing-bibliotheekschets die een ping doet ongeveer 20 keer per seconde.// ------------------------------------------ ---------------------------------#include #define TRIGGER_PIN 12 // Arduino pin gekoppeld aan triggerpin op de ultrasone sensor.#define ECHO_PIN 11 // Arduino-pin vastgemaakt aan echopin op de ultrasone sensor.#define MAX_DISTANCE 200 // Maximale afstand waarvoor we willen pingen (in centimeters). De maximale sensorafstand is 400-500 cm. Nieuwe Ping-sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing-configuratie van pinnen en maximale distance.void setup () {Serial.begin (115200); // Open seriële monitor op 115200 baud om ping-resultaten te zien.}void loop() {delay (50); // Wacht 50 ms tussen pings (ongeveer 20 pings/sec). 29 ms zou de kortste vertraging tussen pings moeten zijn. Serial.print("Ping:"); Serial.print(sonar.ping_cm()); // Ping verzenden, afstand in cm ophalen en resultaat afdrukken (0 =buiten ingesteld afstandsbereik) Serial.println("cm");}
Slimme huisverlichting
Dit is het volledige project voor Visual Studio met de bewerkte bibliotheekhttps://github.com/shakram02/Arduino_SmartHouseLights.git

Schema's

Dit is het volledige circuit dat het hele project beschrijft

Productieproces

  1. TinyML-taaldetector-gebaseerd op Edge Impulse &Arduino
  2. Arduino-gyroscoopspel met MPU-6050
  3. Arduino digitale dobbelstenen
  4. Temperatuur- en vochtigheidsdatalogger
  5. Automatisch plantenwatersysteem met Arduino
  6. Vind mij
  7. Slimme schoenen (automatisch rijgen en elektriciteit opwekken)
  8. Sonar met arduino en weergave op verwerkings-IDE
  9. Gefeliciteerd met je verjaardag:licht en geluid
  10. LED-helderheid regelen met Bolt en Arduino
  11. Arduino Audio Reactive Desk Light