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

Rugzakalarm

Componenten en benodigdheden

Arduino UNO
× 1
Adafruit drieassige versnellingsmeter+magnetometer (kompas) bord - LSM303
× 1
SparkFun Groot piëzo-alarm - 3 kHz
× 1
9V-batterij (algemeen)
× 1
6.35 mm vrouwelijke audio-aansluiting (geschakeld)
Optioneel
× 1
6.35 mm audiostekker
Optioneel
× 1
Mannelijke/Vrouwelijke doorverbindingsdraden
× 1
9V naar Barrel Jack Connector
× 1

Apps en online services

Arduino IDE

Over dit project

Heb je ooit de behoefte gevoeld aan een rugzakalarm? Ben je ooit met je rugzak in een openbare ruimte gaan zitten en was je bang dat iemand hem zou stelen? Zo ja, dan is dit het project voor jou!

Met behulp van de LSM303 kompas/versnellingsmeter geeft dit project een alarm wanneer de rugzak is verplaatst. Het gebruikt het kompas om de oriëntatie te bewaken en bij beweging van meer dan 10 graden klinkt er een alarm.

Stap 1:Sluit de Arduino aan

Sluit het LSM303-breakoutboard als volgt aan op de Arduino:

  • SDA - SDA
  • SDL - SDL
  • VIN - 5v
  • GND - GND

Raadpleeg de gids van Adafruit voor meer informatie.

Sluit de piëzo-zoemer als volgt aan op de Arduino:

  • + naar pin 13
  • - naar GND

Stap 2:Installeer de bibliotheken

Download de Adafruit_LSM303DLHC-bibliotheek en de Adafruit_Sensor-bibliotheek als zip-bestanden.

Open de Arduino-IDE. Als je het niet hebt, download het dan hier.

Ga naar Sketch> Bibliotheek opnemen> ZIP-bibliotheek toevoegen...

Zoek en selecteer vervolgens de.ZIP-bestanden die u eerder hebt gedownload.

Stap 3:Programmeer de Arduino

Open de Arduino IDE en maak een nieuw bestand aan. Verwijder alles wat er al is en plak de volgende code in.

// Include Libraries #include #include #include #include // Pas de gevoeligheid aan const int sens =10;/ / Wijs tegelijkertijd een unieke ID aan deze sensor toe Adafruit_LSM303_Mag_Unified mag =Adafruit_LSM303_Mag_Unified(12345);void setup(void) {//Just for Debugging //Serial.begin(9600); //Serial.println ("Begint..."); // Setup pin 13 pinMode (13, OUTPUT); // Initialiseer de sensor if(!mag.begin()) { // Er is een probleem opgetreden bij het detecteren van de LSM303 ... controleer uw verbindingen digitalWrite(13, HIGH); vertraging (500); digitalWrite(13, LAAG); vertraging (500); digitalWrite(13, HOOG); vertraging (500); digitalWrite(13, LAAG); vertraging (500); terwijl(1); } // Wacht 5 seconden vertraging (5000); // Waarschuwing bij starten digitalWrite (13, HIGH); vertraging (500); digitalWrite(13, LOW);}// functie voor het verkrijgen van de sensorwaarde int getDeg(void){ // Haal een nieuwe sensorgebeurtenis sensors_event_t event; mag.getEvent(&event); vlotter Pi =3.14159; // Bereken de hoek van de vector y,x float rubriek =int((atan2(event.magnetic.y,event.magnetic.x) * 180) / Pi); // Normaliseren naar 0-360 if (rubriek <0) { rubriek =360 + rubriek; } retourkop;} ongeldige lus (void) { // haal sensorwaarden op int oldDeg =getDeg (); vertraging (1000); int newDeg =getDeg(); if (newDeg <(oldDeg-sens) &&oldDeg !=0 &&newDeg !=0) { // alarm slaan digitalWrite (13, HIGH); // Alleen voor het debuggen //Serial.println ("Triggered"); //Serial.println(""); }else if (newDeg> (oldDeg+sens) &&oldDeg!=0 &&newDeg !=0) { // alarm slaan digitalWrite(13, HIGH); // Alleen voor het debuggen //Serial.println ("Triggered"); //Serial.println(""); } // Alleen voor het debuggen //Serial.print ("Nieuw:"); //Serial.println(newDeg); //Serial.print("Oud:"); //Serial.println(oldDeg); //Serial.println("");} 

Sluit je Arduino aan, compileer en upload de code.

Stap 4:Test het!

Als je alles goed hebt gedaan, moet je na het indrukken van de resetknop op je Arduino worden begroet met enkele piepjes, 3 seconden stilte en dan een langere piep. Als u de LSM303-breakout draait, hoort u het alarm aan te gaan. Als de sensor te gevoelig is, verhoogt u gewoon de 'sens'-variabele in de code bovenaan. Als u meer gevoeligheid wilt, verlaagt u de variabele 'sens'.

Als u 2 lange pieptonen hoort vóór de vertraging van 3 seconden, heeft uw bedrading problemen. Controleer alle verbindingen.

Als het niet lijkt te werken, kan het zijn dat de bibliotheken niet de juiste naam hebben. Verwijder in de code de '#include'-instructies aan het begin. Ga vervolgens naar Sketch> Include Library en selecteer de bibliotheken 'Wire', 'Adafruit LSM303DLHC' en 'Adafruit Unified Sensor'. Als het daarna nog steeds niet werkt, zorg er dan voor dat er geen sterke magnetische velden in de buurt zijn. Ga naar een andere kamer, of naar buiten. Zorg er ook voor dat het breakout-bord enigszins waterpas is en evenwijdig aan de grond.

Stap 5:voeg een sleutel toe

Je zou nu een werkend project moeten hebben, sluit gewoon een 9v-batterij aan op de barrel-aansluiting op je Arduino, monteer hem in je rugzak en je zou goed moeten zijn om te gaan. Het is echter nogal vervelend om de batterij elke keer dat u uw alarm wilt in- of uitschakelen uit het stopcontact te halen en weer aan te sluiten. Dat is waar de 6,35 mm audio-aansluiting in het spel komt. In plaats van een 3,5 mm-aansluiting die de meeste mensen op een koptelefoon hebben, verhoogt het gebruik van een 6,35 mm-aansluiting de veiligheid. Als u echter een schakelaar met sleutel of een andere schakelaar heeft die u in plaats daarvan wilt gebruiken, kunt u dit gerust doen.

Hoe dan ook, om de sleutel toe te voegen, sluit u de schakelaar / sleutel aan tussen de batterij en de DC-cilinderaansluiting.

Als je een van deze hebt, knip dan gewoon een van de draden door, voeg indien nodig verlengdraden toe en voeg de schakelaar toe. In mijn geval heb ik een klemmenblokcilinderaansluiting gekregen en daarmee bedraad. Omdat ik me niet al te veel zorgen maak over beveiliging, is mijn sleutel slechts een simpele tuimelschakelaar, maar je kunt creatief zijn. Gebruik een reed-schakelaar en magneet, RFID, misschien zelfs een smartphone-app!

Stap 6:Monteer het!

Proficiat! Je hebt nu een volledig functionerend alarm met sleutel. Het enige wat je nu nog hoeft te doen is hem in je rugzak te monteren. Snijd een gat in de zijkant voor de zoemer en een voor het sleutelgat. Ik gebruikte kabelbinders, maar een meer permanente oplossing kan worden gebruikt. Zorg ervoor dat de sensor enigszins parallel aan de grond wordt gemonteerd en dat het gat in de zoemer niet wordt belemmerd.

Verder gaan

Dit alarm is niet beperkt tot rugzakken. Voeg het toe aan een deur, een koekjestrommel, de koelkast of gewoon alles wat je wilt beschermen. De mogelijkheden zijn eindeloos!

Code

  • Code
CodeArduino
Arduino code
// Include Libraries #include #include #include #include // Pas de gevoeligheid aan const int sens =10;// Wijs tegelijkertijd een unieke ID aan deze sensor toe Adafruit_LSM303_Mag_Unified mag =Adafruit_LSM303_Mag_Unified(12345);void setup(void) {//Just for Debugging //Serial.begin(9600); //Serial.println ("Begint..."); // Setup pin 13 pinMode (13, OUTPUT); // Initialiseer de sensor if(!mag.begin()) { // Er is een probleem opgetreden bij het detecteren van de LSM303 ... controleer uw verbindingen digitalWrite(13, HIGH); vertraging (500); digitalWrite(13, LAAG); vertraging (500); digitalWrite(13, HOOG); vertraging (500); digitalWrite(13, LAAG); vertraging (500); terwijl(1); } // Wacht 5 seconden vertraging (5000); // Waarschuwing bij starten digitalWrite (13, HIGH); vertraging (500); digitalWrite(13, LOW);}// functie voor het verkrijgen van de sensorwaarde int getDeg(void){ // Haal een nieuwe sensorgebeurtenis sensors_event_t event; mag.getEvent(&event); vlotter Pi =3.14159; // Bereken de hoek van de vector y,x float rubriek =int((atan2(event.magnetic.y,event.magnetic.x) * 180) / Pi); // Normaliseren naar 0-360 if (rubriek <0) { rubriek =360 + rubriek; } retourkop;} ongeldige lus (void) { // haal sensorwaarden op int oldDeg =getDeg (); vertraging (1000); int newDeg =getDeg(); if (newDeg <(oldDeg-sens) &&oldDeg !=0 &&newDeg !=0) { // alarm slaan digitalWrite (13, HIGH); //Alleen voor het debuggen //Serial.println ("Triggered"); //Serial.println(""); }else if (newDeg> (oldDeg+sens) &&oldDeg!=0 &&newDeg !=0) { // alarm slaan digitalWrite(13, HIGH); //Alleen voor het debuggen //Serial.println ("Triggered"); //Serial.println(""); } //Alleen voor het debuggen //Serial.print("Nieuw:"); //Serial.println(newDeg); //Serial.print("Oud:"); //Serial.println(oldDeg); //Serial.println("");}

Schema's

Naar het kompas:
Blauw - SDA
Geel - SDL
Zwart - GND
Rood - VIN

Productieproces

  1. Fail-safe ontwerp
  2. Bewegingssensor, alarm, video-opname in HA op Raspberry Pi
  3. Raspberry pi 2 wateralarm met t cobbler plus
  4. Bewegingsdetectie-alarmsysteem
  5. Rollende alarmrobot
  6. Dorstalarm plantalarm
  7. Arduino Alarmsysteem:SERENA
  8. Alarmsysteembeveiliging op de proef gesteld
  9. Ultrasone sensor met alarm, LCD en temperatuur
  10. Eenvoudige wekker met DS1302 RTC
  11. Arduino beveiligings- en alarmsysteemproject