Inhoudsopgave:
- Stap 1: Vereiste componenten
- Stap 2: Afstandsbediening maken
- Stap 3: Software en bibliotheken
- Stap 4: SSH gebruiken en Libs installeren
- Stap 5: Bluetooth-protocol
- Stap 6: Mezzanine gebruiken op DragonBoard 410c
- Stap 7: DragonBoard 410c-software
Video: Noodsituaties detecteren - Qualcomm Dragonboard 410c - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:15
Op zoek naar beveiligingssystemen die werken aan het bewaken van noodsituaties, is het mogelijk om op te merken dat het te moeilijk is om alle geregistreerde informatie te verwerken. Daarom hebben we besloten om onze kennis op het gebied van audio/beeldverwerking, sensoren en actuatoren te gebruiken om één compleet systeem te creëren dat het mogelijk maakt om situaties te voorspellen waarin het leven van mensen in gevaar is.
Dit project heeft een lokale sensor en externe apparaten om gegevens te verzamelen en naar het drakenbord te sturen, dat verwerkingskracht heeft die belangrijke informatie uit de ontvangen gegevens kan halen.
Het externe apparaat is een Arduino-bord met een module HC-06 die mogelijk is om alle informatie over te dragen, en een goedkoop breed netwerk dat grote hoeveelheden gegevens kan verwerken.
Stap 1: Vereiste componenten
Allereerst moet je beslissen welke sensoren en actuatoren je gaat gebruiken en de architectuurschets maken.
In ons geval gebruiken we deze sensoren aangesloten in ARDUINO Pro Mini, hieronder vermeld:
- PIR (Passief Infrarood -- Aanwezigheidssensor)
- DHT 11 (Vochtigheids- en temperatuursensor)
- CO-sensor (koolmonoxidesensor)
- Geluidssensor
Aandrijvingen:
- motor servo
- zoemer
Communicatie:
Bluetooth-module HC-06
Voor de Dragonboard 410c hebben we enkele sensoren en software om alle gegevensinvoer te verwerken:
Sensoren:
- DHT 11
- Zonlichtsensor
Aandrijvingen:
- Relais
- Ledstatus
- Zoemer
Stap 2: Afstandsbediening maken
Nu is het tijd om alle volgende componenten op het Arduino-bord aan te sluiten, een apparaat te creëren dat de gegevens van de omgeving (ruis, vochtigheid, temperatuur, enz.) ontvangt en naar het Dragonboard stuurt door de Bluetooth-module HC-06.
Het is noodzakelijk om aandacht te besteden aan de aansluitingen, omdat alle sensoren specifieke plaatsen hebben om aan te sluiten.
Op het systeem is het mogelijk om meer dan één apparaat te hebben om gegevens te verzamelen. Hoe meer apparaten u in de omgeving hebt geïnstalleerd, hoe nauwkeuriger de diagnose die door de gegevensverwerking wordt gegenereerd. Omdat het mogelijk zal zijn om een breder scala aan informatie te extraheren die nuttig kan zijn.
We hebben besloten om een Arduino-bord te gebruiken omdat het meer compatibele sensoren heeft en het mogelijk is om deze externe apparaten op verschillende plaatsen te installeren, waardoor meer informatie wordt verzameld.
Het lokale apparaat is de DragonBoard 410c, die audio, video, digitale en analoge informatie verwerkt met uw krachtige SnapDragon 410-processor.
Plaatsing van de componenten (Remote Devide)
Het ene stuk heeft een aantal pinnen die in de juiste pinnen op het arduino pro mini-bord moeten worden aangesloten.
Bluetooth-module HC-06 heeft 4 pinnen:
- TX (zender) -> aangesloten op de pin van de RX Arduino
- RX (ontvanger) -> aangesloten op de TX Arduino's pin
- VCC -> aangesloten op de 5v
- GND
DHT 11-sensor heeft 4 pinnen (maar slechts 3 in gebruik):
- Signaal -> aangesloten op een digitale pin
- VCC -> aangesloten op de 5v
- GND
PIR-sensor heeft 3 pinnen:
- Signaal -> aangesloten op een digitale pin
- VCC -> aangesloten op de 5v
- GND
Gassensor (MQ) heeft 4 pinnen:
- Digital OUT -> aangesloten op een digitale pin (als je digitale informatie wilt)
- Analog OUT -> in ons geval gebruiken we dit aangesloten op een analoge pin
- VCC -> aangesloten op de 5v
- GND
Ruissensor (KY-038) heeft 3 pinnen:
- Signaal -> aangesloten op een analoge pin
- VCC -> aangesloten op de 5v
- GND
Code voor Arduino-afstandsbedieningsapparaat:
/* * Arduino verzendt gegevens via Blutooth * * De waarde van sensoren wordt gelezen, aaneengeschakeld op * String en verzonden via seriële poort. */ #include "DHT.h" #define DHTPIN 3 #define DHTTYPE DHT22 #define PIRPIN 9 #define COPIN A6 DHT dht(DHTPIN, DHTTYPE); float vochtigheid, temperatuur; booleaanse pir = 0; int co, microfoon; Tekenreeks bericht = ""; char naam[40]; void setup() { Serial.begin(9600); dht.begin(); } void loop() {humidaty = dht.readHumidity(); temperatuur = dht.readTemperature(); pir = digitaal lezen (PIRPIN); co = analoog lezen (COPIN); microfoon = analoog lezen (A0); bericht = "#;" +String(vochtigheid) + ";" + String(temperatuur) +";"+ String(mic) +";"+ String(pir)+ ";" + String(co) + ";#" +"\n"; Serial.print(bericht); vertraging (2000); }
Code uitleg:
Alle pinnen die in de Arduino worden gebruikt, worden aan het begin van de code vermeld en de respectieve bibliotheken die nodig zijn voor de werking van de sensoren worden geïnitialiseerd. Alle gegevens worden doorgegeven aan de respectieve variabelen die elke 2000 milliseconden de waarden ontvangen die van elke sensor worden gelezen, vervolgens worden ze allemaal aaneengeschakeld in een string en vervolgens in serie geschreven. Van daaruit is het heel eenvoudig met de pyton-code die aanwezig is in het DragonBoard om dergelijke gegevens vast te leggen.
Stap 3: Software en bibliotheken
Om alle ontvangen gegevens te verwerken en het beveiligingssysteem te besturen, is het noodzakelijk om enkele software en bibliotheken in de Qualcomm DragonBoard 410c te gebruiken.
In dit specifieke project gebruiken we:
Software:
- Python
- Arduino
Platen:
- Amazon AWS -> online server
- Phant -> Hostgegevensservice
Bibliotheken:
- OpenCV - Videoverwerking (https://opencv-python-tutroals.readthedocs.io/en/latest/)
- PyAudio - Audioverwerking (https://people.csail.mit.edu/hubert/pyaudio/)
- Golf (https://www.physionet.org/physiotools/wave-installation.shtm)
- AudioOp (https://docs.python.org9https://scikit-learn.org/stable/install.html/2/library/audioop.html)
- Numpy (https://www.numpy.org)
- SciKit1 - Train en voorspel machine learning (https://scikit-learn.org/stable/install.html)
- cPickle - Sla de machine learning-parameters op (https://pymotw.com/2/pickle/)
- MRAA - Gebruik de GPIO's (https://iotdk.intel.com/docs/master/mraa/python/)
- UPM - Gebruik de GPIO's (https://github.com/intel-iot-devkit/upm)
- PySerial - Gebruik voor seriële communicatie met Bluetooth-apparaat (https://pythonhosted.org/pyserial/)
Stap 4: SSH gebruiken en Libs installeren
Allereerst moet je het IP-adres van het Dragonboard krijgen, om dat te doen, moet je het DragonBoard aanzetten dat is verbonden met een muis, een toetsenbord en een HDMI-monitor. Wanneer het bord is ingeschakeld, moet u verbinding maken met een netwerk, dan gaat u naar de terminal en voert u het commando uit:
sudo ifconfig
daarna kunt u het IP-adres krijgen.
Met het IP-adres heb je via SHH toegang tot het Dragonboard, daarvoor moet je een terminal openen in een computer die is aangesloten op hetzelfde netwerk als het bord. In de terminal kun je het commando uitvoeren:
ssh linaro@{IP}
(je moet {IP} vervangen door het IP-adres dat je in het Dragonboard krijgt).
De eerste lib die u moet installeren, is de mraa lib. Om dat te doen, moet je de volgende opdracht in de terminal uitvoeren:
sudo add-apt-repository ppa:mraa/mraa && sudo apt-ge;t update && sudo apt-get install libmraa1 libmraa-dev mraa-tools python-mraa python3-mraa
Om opencv voor python te installeren, hoeft u alleen de opdracht uit te voeren:
sudo apt-get install python-opencv
Om PyAudio te installeren, moet je de opdracht uitvoeren:
sudo apt-get install python-pyaudio python3-pyaudio
De libs WAVE en AudioOp zijn al in het bord geïnstalleerd. Om numpy te installeren, moet je de opdracht uitvoeren:
sudo apt-get install python-numpy python-scipy
De laatste lib die je moet installeren is de scikit, om het te installeren moet pip geïnstalleerd zijn. Dan hoef je alleen de opdracht uit te voeren:
pip installeer scikit-lear
Stap 5: Bluetooth-protocol
DragonBoard Verbinding met de Arduino via Bluetooth
De Bluetooth-module (HC-06) werd aanvankelijk aangesloten op de Arduino Nano volgens het volgende voorbeeld:
Gebruik de grafische interface van Linaro (besturingssysteem dat wordt gebruikt in het huidige project in DragonBoard), klik aan de rechterkant van de onderste balk op het Bluetooth-symbool en klik vervolgens op "Nieuw apparaat instellen" en configureer met uw Bluetooth-module en laat deze gekoppeld. Controleer of uw module daadwerkelijk is verbonden door nogmaals op het Bluetooth-symbool te klikken, klik op "Apparaten…" en kijk of de naam van uw apparaat wordt vermeld en verbonden. Selecteer nu uw apparaat in het scherm "Bluetooth-apparaten" en klik er met de rechtermuisknop op en noteer de poort waarop uw Bluetooth-module is aangesloten (bijv.: "rfcomm0"). Opmerking: de poortnaam waarmee uw apparaat is verbonden, is belangrijk voor de volgende stap om gegevensuitwisseling in te schakelen.
DragonBoard-gegevensuitwisseling en Bluetooth tot stand brengen
In principe volgen we de stap voor stap van de link: https://www.uugear.com/portfolio/bluetooth-communi… maar we hebben niet het deel van de koppeling uitgevoerd, alleen de uitvoering van de python-codes en Arduino. In python werd de seriële bibliotheek gebruikt die is geïnitialiseerd in de poort die is verbonden met bluetooth, vandaar dat de python-code de gegevens leest van de sensoren die via de bluetooth-module op de arduino zijn aangesloten.
Stap 6: Mezzanine gebruiken op DragonBoard 410c
Om de verbindingen tussen het drakenbord en de onderdelen te maken, gebruiken we een soort schild genaamd Mezannine, ontwikkeld door 96boards.
Met behulp van dit schild wordt het aansluiten van randapparatuur een stuk eenvoudiger.
De connectoren die worden gebruikt, komen uit de ontwikkelingskit van de Grove, dus het gebruikt gewoon een speciale kabel die in beide richtingen wordt aangesloten, Alle onderdelen zijn gemakkelijk te vinden op deze website:
We gebruiken deze kits hieronder:
- Grove Relais
- Grove Zonlichtsensor
- Grove led-aansluiting
- Grove temp&humi-sensor
- Grove-zoemer
Stap 7: DragonBoard 410c-software
Het deel van het programma in het DragonBoard is gecodeerd in Python en het programma dat op de Arduino wordt gebruikt, is ontwikkeld in C++. Elke 2 minuten leest de Arduino alle sensoren die eraan zijn bevestigd. Vervolgens stuurt de Arduino de meting via Bluetooth naar het DragonBoard. Het DragonBoard combineert de uitlezing van de Arduino met de uitlezing die het maakt door het Mezzanine-schild met de functies van de audio- en videovoorbeelden.
Met deze gegevens probeert de Raad te voorspellen of er sprake is van een noodsituatie. Het bestuur stuurt met behulp van de Phant de ruwe data en de voorspelling die het heeft gedaan naar de Amazon Web Service. Als het bord voorspelt dat het een vreemde situatie is, probeert het de gebruiker te waarschuwen door een led en zoemer in de Mezzanine te laten knipperen en te laten zien in de webapplicatie. In de webapplicatie is het ook mogelijk om de ruwe data te zien om te begrijpen wat er op dit gebied gebeurt.
Aanbevolen:
Een radio gebruiken om bliksem te detecteren: 4 stappen
Een radio gebruiken om bliksem te detecteren: Kleine radio's kunnen voor meer worden gebruikt dan alleen naar muziek of sport luisteren. Alle radio's (zelfs goedkope AM-radio's) kunnen worden gebruikt om bliksem en andere atmosferische verschijnselen te detecteren. Met een getraind oor kan men zelfs bepalen of de bliksem naar
Google Assistent op DragonBoard™ 410c: 57 stappen
Google Assistant op DragonBoard™ 410c: deze Instructables leert u Google Assistant te gebruiken in het DragonBoard en een smarthome-omgeving in te stellen met sommige apparaten. Vereist:-DragonBoard™ 410c (met een nieuwe installatie van linaro-alip);-12V/ 1A 5,5 mm jack-voeding;-CC2531 zigbee mod
Opa te lang uit bed detecteren: 7 stappen
Opa te lang uit bed detecteren: achtergrondHoewel er al jaren bedalarmmonitors zijn die slechts eenvoudige contactsluitingen van bedkussens zijn die een lokaal alarm afgaan voor zorgverleners wanneer iemand uit bed komt, was er geen manier voor afgelegen familie zorgverleners om een lo
Beweging detecteren met Raspberry Pi: 4 stappen
Beweging detecteren met Raspberry Pi: in deze instructie gaan we leren hoe we de PIR-sensor (passief infrarood) met Raspberry Pi kunnen gebruiken om een eenvoudige bewegingsdetector te bouwen. Het wordt gebruikt om beweging van mensen, dieren of andere objecten. Ze worden veel gebruikt in burg
Obstakels en waarschuwing detecteren - Arduino UNO en ultrasoon: 4 stappen (met afbeeldingen)
Obstakels en waarschuwing detecteren - Arduino UNO en ultrasoon: dit is een tutorial om u te helpen ultrasoon en zoemer te begrijpen en dieper in te gaan op het leren van Arduino, volg deze stappen en geef me feedback