Slimme beweegactiverde waterpistool gebouwd met Arduino Nano
Onderdelen en benodigdheden
| Arduino Nano R3 | 1 |
| PIR-bewegingsensor (algemeen) | 1 |
| Solderloos breadboard (half formaat) | 1 |
| Algemene NPN-transistor (2N3904) | 1 |
| Weerstand 330 ohm (waarde niet kritiek, iets hoger of lager werkt ook) | 1 |
Benodigde tools en machines
- Lasersnijder (algemeen)
Over dit project
Overzicht
Dit project is geïnspireerd op de Tinkernut Arduino Motion Detecting Squirt Gun. Ik wilde het project repliceren, maar kon de Raid Auto Trigger niet verkrijgen in China waar ik woonde. Een snelle zoekopdracht op Taobao.com leverde dit interessante product op:
Heel vergelijkbaar met de Raid Auto Trigger en tegen de redelijke prijs van ¥78,80 besloot ik er een aan te schaffen. Het bleek aanzienlijk makkelijker te hacken omdat je geen interne componenten hoeft te wijzigen. Je hoeft alleen de drukknop aan te passen zodat deze breadboard/Arduino-compatibel wordt. Als je in China woont (of Taobao naar jouw land verzendt) kun je de waterpistool hier kopen.
We hebben dit omgezet in een workshop, vandaar alle PowerPoint-dia's en grote tekst.

STAP 1: De waterpistool hacken
De volgende afbeeldingen tonen het hackproces stap voor stap:
STAP 2: Interfacing met de Arduino
Stel de PIR-bewegingsensor in en test deze met de Arduino Nano.
/* PIR sensor */
int calibrationTime = 10; // tijd voor sensor kalibratie (10-60 sec volgens datasheet)
int outputPin = 2; // pin voor LED
int inputPin = 4; // input pin voor PIR sensor
int pirState = LOW; // start met geen beweging gedetecteerd
int val = 0; // variabele voor pin status
void setup() {
pinMode(outputPin, OUTPUT);
pinMode(inputPin, INPUT);
digitalWrite(outputPin, LOW); // voorkomt dat pistool vuurt bij opstart
Serial.begin(9600);
// geef sensor tijd om te kalibreren
Serial.print("calibrating sensor ");
for(int i = 0; i < calibrationTime; i++){
Serial.print(".");
delay(1000);
}
Serial.println(" done");
Serial.println("SENSOR ACTIVE");
delay(50);
}
void loop(){
val = digitalRead(inputPin);
if (val == HIGH) {
digitalWrite(outputPin, HIGH);
if (pirState == LOW) {
Serial.println("Motion detected!");
pirState = HIGH;
}
} else {
digitalWrite(outputPin, LOW);
if (pirState == HIGH){
Serial.println("Motion ended!");
pirState = LOW;
}
}
}
Gebruik de seriële monitor om te controleren of het werkt, en verbind daarna de waterpistool.
Stel de transistor en weerstand als volgt in:
Nu zou je een werkende bewegingsgeactiveerde waterpistool moeten hebben! We hebben een lasersnijder gebruikt om een houten behuizing te maken (snel en we hadden er veel nodig voor de workshop), maar je kunt ook een 3D-printer gebruiken.
Let op: er zit een 10-seconden vertraging in de code zodat de bewegingsensor kan kalibreren.

Productieproces
- De Evolutie van Pompactie Waterpistolen: Van Uitvinding tot Mondiale Marktleider
- Een LED Besturen met een PIR-bewegingssensor op Raspberry Pi
- Bouw een indrukwekkend monitor Ambilight-systeem met Arduino
- Bouw een Klassiek Pong-spel op Arduino UNO met OLED-display – Stap-voor-stap Tutorial
- K30 CO2-sensor: Real-time binnenluchtkwaliteitmonitoring met Arduino
- Bouw een Digitale Lichaamslengtemeter: Je Lengte Meten met Arduino en Lasersensor
- Arduino Audio Frequentie Detector – Meet de luidste geluidspieken met hoge gevoeligheid
- Interactieve LED-matrix deurdisplay met PIR-bewegingsensor – Arduino vakantiegroet
- Arduino Boter-Kaas-Eieren met MAX7219 LED Matrix en Kartonnen Behuizing
- Bouw een Sensor Toren met Arduino Cloud: Temperatuur, Beweging & Gas Monitoring
- Bouw een Betrouwbare Arduino Afteltimer met SparkFun 7‑Segment Display