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

Betreed het huis als een Sith Lord

Componenten en benodigdheden

Deeltjesfoton
× 2
Arduino UNO
× 1
Adafruit Music Maker MP3 Shield
× 1
Adafruit PIR-bewegingssensor
× 1
LED (generiek)
× 2
Weerstand 220 ohm
× 2
jumperkabels
× 1
Luidspreker:3W, 4 ohm
× 1
Broodplank (algemeen)
× 2
USB Micro B-wandoplader
× 1
USB-A naar B-kabel
× 1
Mannelijke kop 36 Positie 1 rij - lang (0,1")
× 1

Benodigde gereedschappen en machines

Soldeerbout (algemeen)

Apps en online services

Deeltjeswolk

Over dit project

Mijn dochter is een enorme Star Wars-fan (ook al heeft ze nog geen enkele film gezien). Het is niet verrassend dat ze het helemaal zat was toen ik vroeg of ze een Star Wars-themaproject wilde bouwen. Ik weet niet hoe vaak ze me de Imperial March (het themalied van Darth Vader) heeft laten spelen terwijl ze haar Darth Vader-kostuum draagt, zodat ze een grootse entree in de kamer kan maken. Dus kwamen we snel tot dit projectidee - automatisch detecteren dat iemand thuiskomt en vervolgens het spelen van de keizerlijke mars activeren net voordat de persoon het huis binnenloopt.

Dit is een vrij eenvoudig project, dus het is zeer geschikt voor beginners. Ik vond het interessant omdat het de eerste keer is dat ik het patroon voor publiceren/abonneren van/naar de cloud heb gebruikt. Het was ook de eerste keer dat ik verschillende soorten microcontrollers in één project integreerde. Ik ben dol op de eenvoud en het gebruiksgemak van Photon als het gaat om het creëren van een cloud-verbonden oplossing. En je kunt de verscheidenheid en omvang van add-on-hardware die beschikbaar is voor de Arduino niet verslaan. Door ze zo gemakkelijk samen te stellen, kon dit project snel samenkomen.


Stap 1:Monteer de sensor

Tijd:10 minuten

Onderdelen:Photon, 220 Ohm weerstand, LED, PIR bewegingssensor, breadboard, mannelijke / mannelijke jumperdraden, USB micro B-kabel

Hulpmiddelen:n.v.t.

Sluit eerst de LED aan op de Photon. Monteer uw Photon in het breadboard. Sluit vervolgens de weerstand aan tussen de aardingspin van een Photon en een open rij op het breadboard. Verbind tenslotte het lange been van de LED met een digitale pincode op de Photon (ik gebruikte pin D0) en het korte been van de LED met de open rij waarop de weerstand is aangesloten. Eerlijk gezegd is de LED optioneel, maar ik gebruik hem om de status van de sensor aan te geven, aangezien de PIR-sensor zelf geen indicatie geeft wanneer beweging wordt gedetecteerd en de Photon ook geen indicatie geeft wanneer het de gebeurtenis naar de cloud publiceert.

Sluit vervolgens de PIR-sensor aan op de Photon. Monteer de PIR-sensor op het breadboard - ik gebruik rechthoekige vrouwelijke header-pinnen om de PIR-sensor op het breadboard aan te sluiten, omdat ik hierdoor de PIR-sensor verticaal op het breadboard kan "bevestigen". (Als je geen haakse header-pinnen hebt, gebruik dan wat dubbelzijdig plakband of een plakkerig plakmiddel om je PIR-sensor op de tafel te monteren of waar je hem ook op monteert en gebruik vrouwelijke / mannelijke jumperdraden rechtstreeks van de mannelijke PIR-sensor pinnen naar het breadboard.) Gebruik jumperdraden om de GND van de PIR aan te sluiten op de GND-pin van een Photon, de 5V-pin van de PIR op de Vin-pin van de Photon en de signaalpin van de PIR op een digitale pin op de Photon (ik gebruikte pin D7).

Controleer nogmaals het gegevensblad van uw sensor om er zeker van te zijn dat u de 5V-, GND- en signaalpin van de sensor correct identificeert, aangezien hun volgorde per fabrikant verschilt. Ook al werkt mijn PIR-sensor op 5 volt, de signaalpin werkt op slechts 3,3 V en daarom kan hij rechtstreeks worden aangesloten op een digitale pin op de Photon. Controleer nogmaals het gegevensblad van uw sensor om er zeker van te zijn dat de spanning van het signaal 3,3 V is.

Zet de assemblage aan via de USB Micro B-connector van de Photon op een pc of een stopcontact. Open de Particle IDE en plak de onderstaande sensorcode in. Flits vervolgens de code naar de Photon.

Als u nu met uw hand voor de sensor zwaait, moet de LED oplichten. U kunt ook uw logboeken op het Particle Dashboard bekijken om te zien of de gebeurtenis is gepubliceerd.

Stap 2:Monteer de trekker

Tijd:10 minuten

Onderdelen:Photon, 220 Ohm weerstand, LED, breadboard, mannelijke/vrouwelijke jumperdraden

Hulpmiddelen:NVT

Sluit de LED en weerstand aan op het foton, net zoals je deed in de vorige stap. Nogmaals, de LED is optioneel, maar ik vind het handig om aan te geven wanneer een gebeurtenis wordt ontvangen vanuit de Particle cloud. Sluit vervolgens het mannelijke uiteinde van de jumperdraden aan op Photon's Vin, GND en een digitale pin (ik gebruikte pin D7). De digitale pin van de Photon maakt verbinding met een van de GPIO-pinnen van de Music Maker om de muziek te activeren. De Vin- en GND-verbindingen van de Photon worden gebruikt om de Photon vanaf de Arduino van stroom te voorzien.

Maar eerst, voordat u verbinding maakt met de Arduino, zet u de assembly aan via de USB Micro B-connector van de Photon op een pc of een stopcontact. Open de Particle IDE en plak de onderstaande triggercode in. Flash vervolgens de code naar de Photon - zorg ervoor dat u het juiste apparaat hebt geselecteerd om de code naar te flashen, nu u twee apparaten hebt aangesloten op de Particle IDE.



Stap 3:Monteer het Arduino- en Music Maker-schild

Tijd:20 minuten

Onderdelen:Arduino Uno, Adafruit Music Maker shield, Photon, 220 Ohm weerstand, LED, mini breadboard, jumperdraden, USB kabel

Gereedschap:soldeerbout

Header-pinnen zijn inbegrepen bij het Music Maker-schild, maar u moet ze solderen. Naast de header-pinnen om het schild met de Arduino te verbinden, heb ik mannelijke header-pinnen bovenop het schild toegevoegd voor GPIO- en stroomaansluitingen van de Photon. (Als ik vrouwelijke header-pinnen had, zou ik ze hebben gebruikt zodat ik alleen mannelijke / mannelijke jumperdraden nodig zou hebben. Maar ik had alleen mannelijke header-pinnen bij de hand (naast mannelijke / vrouwelijke jumperdraden) dus ik ging dat route in plaats daarvan.)

Sluit de jumperdraad van de digitale pin van de Photon aan op een GPIO-pin op het schild (ik gebruikte pin 7 op het schild). Sluit de jumper van de Photon's Vin aan op de 5v-pin op het schild en de GND-jumper op de GND-pin van het schild.

Sluit tot slot uw luidspreker(s) aan op de aansluitblok(ken) op de afscherming - er is één aansluitblok voor een rechterluidspreker en één voor een linkerluidspreker. Ik heb zojuist één luidspreker aangesloten - ik heb een kleine luidspreker van een van de kapotte speelgoedjes van mijn dochter gered voordat we hem weggooiden.

Sluit de Arduino aan op je ontwikkelmachine, plak de Arduino-schets hieronder in de Arduino IDE en upload deze.

Dat is het. Ga voor de sensor lopen, leun achterover en wacht tot de muziek begint.

Over de code

Zoals ik eerder al zei, was dit de eerste keer dat ik het publish / subscribe-patroon gebruikte. Het was vrij eenvoudig om te doen met de Photon. In de sensorcode, wanneer de signaalpin van de PIR-sensor HOOG wordt, zet ik de LED aan en publiceer ik een gebeurtenis in de deeltjeswolk. Voor het publiceren van een evenement is slechts één regel nodig:

published =Particle.publish("motion-detected", NULL, 60, PRIVATE);

Aanvankelijk maakte ik de publicatie niet privé - het kon me niet schelen omdat er geen persoonlijk identificeerbare informatie is. Maar toen ik me op het evenement ging abonneren, kreeg ik veel valse alarmen - blijkbaar publiceren veel andere gebruikers 'bewegingsgerichte' evenementen. Dus heb ik de abonneeroproep omgeschakeld naar alleen abonneren op gebeurtenissen van mijn apparaten door de parameter "MY_DEVICES" toe te voegen:

Particle.subscribe("motion", soundAlarm, MY_DEVICES);

En om ervoor te zorgen dat de abonneerfunctie zich alleen tot mijn apparaten zou beperken, moest ik de publicatie privé maken.

De triggercode roept eenvoudigweg de gebeurtenishandler - soundAlarm - aan wanneer de bewegingsgebeurtenis plaatsvindt. Het enige wat de gebeurtenishandler doet, is de LED aanzetten en de GPIO-pin op het Music Maker-schild HOOG draaien. De Arduino-schets detecteert dat de GPIO-pin HOOG is en wacht vervolgens 60 seconden (voor mij om mijn auto te parkeren, mijn spullen te verzamelen en het huis binnen te gaan) voordat het MP3-bestand op de SD-kaart wordt afgespeeld.


Het project implementeren

Ik plaats de sensor in de garage op de planken naast waar ik mijn auto parkeer. Ik plaatste de trigger en de Arduino met Music Maker-schild en luidspreker op het aanrecht, omdat mijn dochter meestal aan de keukentafel zit als ik thuiskom. Beide locaties hebben stopcontacten in de buurt, waardoor het gemakkelijk is om beide delen van het project van stroom te voorzien.

Code

  • Sensorcode
  • Triggercode
  • Arduino en Music Maker-schildcode
SensorcodeC/C++
Voorbeeldcode voor de Photon die een gebeurtenis naar de deeltjeswolk publiceert wanneer beweging wordt gedetecteerd.
// definieer de LED op pin D0int led =D0;// definieer de PIR-sensoringang op pin D6int pir =D6;// track of de publicatie al dan niet succesvol is gepubliceerd; void setup () { // stel de LED-pin in als output pinMode (led, OUTPUT); // stel de PIR-sensorinvoerpin in als invoerpinMode (pir, INPUT); // zorg ervoor dat de LED uit is digitalWrite(led, LOW);}void loop(){ if (digitalRead(pir) ==HIGH) // als er beweging wordt gedetecteerd {// zet de LED aan als een indicator dat ik werd gedetecteerd digitalWrite (led, HOOG); gepubliceerd =Particle.publish ("beweging gedetecteerd", NULL, 60, PRIVÉ); if (!published) // als de publicatie niet succesvol was { // knippert de LED 10 keer als een indicator van de publicatiefout voor (int i =0; i <10; i++) { digitalWrite (led, LOW); vertraging (500); digitalWrite (led, HOOG); vertraging (500); } } } else // als er geen beweging wordt gedetecteerd, schakelt u de LED digitalWrite uit (led, LOW); // wacht 2 seconden voordat je nog een leesvertraging neemt (2000);}
TriggercodeC/C++
Voorbeeldcode voor de Photon die zich abonneert op bewegingsgebeurtenissen in de deeltjeswolk die door mijn sensor is gepubliceerd en vervolgens het Music Maker-schild activeert om de MP3 af te spelen.
// definieer de LED op pin D0int led =D0;// definieer de trigger voor de Arduino op pin D7int trigger =D7;void soundAlarm(const char *event, const char *data){ // wanneer de bewegingsgebeurtenis is geactiveerd // zet de LED digitalWrite aan (led, HIGH); // zet de trigger aan digitalWrite (trigger, HIGH); // wacht twee seconden vertraging (2000); // zet de trigger digitalWrite uit (trigger, LOW); // zet de LED digitalWrite uit (led, LOW);}void setup(){ // abonneer je alleen op bewegingsgebeurtenissen vanaf mijn apparaten // definieer soundAlarm als de gebeurtenishandler Particle.subscribe ("motion", soundAlarm, MY_DEVICES); // stel de LED-pin in als output pinMode (led, OUTPUT); // stel de triggerpin in als output pinMode(trigger, OUTPUT);}void loop(){}
Arduino en Music Maker-schildcodeArduino
Voorbeeldcode voor de Arduino om de MP3 af te spelen via het Music Maker-schild op basis van de trigger van de aangesloten Photon.
/************************* **************************************** Deze schets speelt een MP3 van de SD-kaart af met behulp van de Adafruitt Music Maker-schild wanneer geactiveerd door een foton die is aangesloten op een van de GPIO-pinnen van het schild. Met dank aan Adafruit voor de goed geschreven tutorial en bibliotheek. https://learn.adafruit.com/adafruit-music-maker-shield-vs1053-mp3-wav-wave-ogg-vorbis-player/pinouts ******************** *****************************************/// inclusief SPI, Music Maker- en SD-bibliotheken#include #include #include // Definieer de pinnen die worden gebruikt voor het schild van de muziekmaker#define SHIELD_RESET -1 // VS1053 reset-pin (ongebruikt! )#define SHIELD_CS 7 // VS1053-chipselectiepin (uitvoer)#define SHIELD_DCS 6 // VS1053 Data/commandoselectiepin (uitvoer)#define CARDCS 4 // Kaartchipselectiepin// DREQ moet een Int-pin zijn, zie http ://arduino.cc/en/Reference/attachInterrupt#define DREQ 3 // VS1053 Gegevensverzoek, idealiter een Interrupt-pin// definieer de muziekspeler Adafruit_VS1053_FilePlayer musicPlayer =Adafruit_VS1053_FilePlayer(SHIELD_RESET, SHIELD_CS, SHIELD_DCSARD, DR); // definieer de GPIO-pin waarop het foton aansluit. photonPin =7;void setup(){ // initialiseer de muziekspeler musicPlayer.begin(); // initialiseer de SD-kaart SD.begin (CARDCS); // Stel het volume in voor de linker-, rechterkanalen. lagere cijfers ==luider volume! muziekspeler.setVolume(1,1); // Als DREQ op een interrupt-pin staat (op uno, #2 of #3) // we kunnen achtergrondgeluid afspelen, maar het wordt niet // gebruikt in deze beginfase van het project // initialiseer de DREQ-interrupt // musicPlayer.useInterrupt(VS1053_FILEPLAYER_PIN_INT); // initialiseer de GPIO-pin waarmee het foton is verbonden als invoer musicPlayer.GPIO_pinMode (photonPin, INPUT);}void loop (){ if (musicPlayer.GPIO_digitalRead (photonPin) ==HOOG) {// wacht 60 seconden voordat u gaat spelen zodat ik // het huis binnenloop net nadat het vertraging begint (60000); // Speel het bestand af, keer pas terug als musicPlayer.playFullFile("track001.mp3"); } vertraging(500);}

Schema's

sensor.fzz trigger.fzz

Productieproces

  1. Wat zijn de componenten die in een CNC-machine worden gebruikt
  2. De belangrijkste componenten van goede communicatie in crisissituaties
  3. Hoe ziet de toekomst van productie eruit?
  4. The Annoy-O-Bug:A Tjilpende Light-Up Throwie
  5. Is nanotechnologie klaar om de IoT-beveiligingsoorlog in te gaan?
  6. Wat zijn de componenten van een persluchtsysteem?
  7. Wat gebeurt er met de verschillende kraancomponenten tijdens moderniseringen?
  8. Hoe ziet de technicus van de toekomst eruit?
  9. De belangrijkste onderdelen van de lintzaagmachines
  10. De ultieme gids voor het ontwerpen van bewerkte onderdelen
  11. De markt voor onderdelen voor lucht- en ruimtevaartcomponenten en precisievliegtuigen: