Op deze pagina staat uitgelegd hoe je een muizenverjager bouwt met een CS32 | Blue Pill | 72Mhz | 64KB | STM32 clone. De prijs van dit board is een paar Euro. De totale kosten van deze muizenverjager zal op ongeveer een paar tientjes uitkomen. Deze muizenverjager detecteert muizen en geeft stroboscoopflitsen om de muizen af te schrikken en de ultasone luidspreker laat een frequentieriedel horen waar de muizen een hekel aan hebben. Ook elke 5 minuten laat de ultrasone luidspreker deze frequenties horen. Direct na plaatsing ging diverse keren de stroboscoop flitsen en zag je de muizen wegvluchten.
Deze blog is geen exacte handleiding maar meer een uitleg van hoe je het ongeveer zou kunnen doen. Er wordt van uitgegaan dat je met de Arduino IDE kunt werken. De mechanische bouw wordt niet beschreven. Deze muizenverjager heeft een ultrasone luidspreker waarvan de frequentie is in te stellen. Voor muizen zet ik hem op 20kHz tot 34kHz, maar hier ben je vrij in. Om de muizen te detecteren wordt een RCWL-0516 microwave sensor gebruikt. Deze sensor is zeer gevoelig en werkt tot 7 meter en zal geen muis missen blijkt in de praktijk. Denk er aan dat deze sensor niet werkt bij testen op een breadboard. De metalen strippen in de breadboard brengen zijn gevoeligheid terug naar nog maar 3cm. Deze sensor mag dus geen metaal in de buurt hebben. De componentenzijde is de gevoelige zijde. Deze sensor kost rond de €2,- en kan in een waterdicht doosje worden geplaatst. Ook is er een PIR sensor gemonteerd die op zijn aller gevoeligst is afgesteld omdat muizen klein zijn en weinig warmte afgeven. Deze PIR detector is niet perse nodig maar kijkt weer in een andere hoek dan de microwave sensor. De muizenverjager is gevoed met 2 zonnepanelen die een 18650 accu opladen. Deze accu kan ook met een USB lader worden bijgeladen. De zonnepanelen zijn niet perse nodig maar dan moet de accu om de paar dagen worden opgeladen. Het geheel verbruikt ongeveer 40mA.

Om een CS32 | Blue Pill | 72Mhz | 64KB | STM32 clone te programmeren heb je ook nog een FT232RL USB TTL Serial Port Adapter van ongeveer €2,- nodig. Bestel link.

Bovenstaand is de CS32 | Blue Pill | 72Mhz | 64KB | STM32 clone.

De PIR sensor die rond de €1,- kost. Er zijn meerdere types die allemaal voldoen. Hier is de SR501 gebruikt. Bestel link.


De RCWL-0516 Microwave Radar sensor die enorm gevoelig is. De componentenzijde is de gevoelige zijde. Let op! metaal in de buurt kan de sensor verstoren. Prijs is ongeveer €2,- Bestel link.

Deze HW-106 booster maakt van de 3,7 Volt accuspanning 5 Volt om de schakeling te voeden en kost rond de €1,-. Bestel link.

Op deze TP4056 module sluit je de accu aan, deze zorgt er voor dat de accu niet wordt overladen of te ver wordt ontladen. Deze levert rond de 3,7 tot 4 Volt aan de bovenstaande HW-106 die er 5 Volt van maakt. Aan de andere zijde sluit je de zonnepanelen aan en eventueel een USB lader wanneer de zonnepanelen niet toereikend zijn bij donker weer. De zonnepanelen moeten een seriediode hebben om te voorkomen dat bij gebruik van een USB lader die stroom terugvloeit in de zonnepanelen. Deze kost ongeveer €5,- maar dan krijg je er meer dan een. Bestel link.

De gebruikte ultrasone luidspreker. Deze kost onder de €10,- incl. verzendkosten: Bestel link.

Accu 18650 voor de voeding. De capaciteit is 3400mAh en kost zo’n 9,-: Bestel link.

Je hebt een potmeter nodig groter dan 100K, deze waarde moet niet te laag worden want dan neemt het stroomverbruik toe. In het schema staat een 1M potmeter en die voldoet nog steeds prima. De andere potmeter in het schema wordt niet meer gebruikt. Let er op dat deze potmeter niet op de 5 Volt is aangesloten maar op de 3,3 Volt pin van de CS32. De CS32 mag maximaal 3,3 Volt hebben op de pinnen. Bestel link.
Verder heb je nog nodig:
2 x BC547 of PN2222 NPN transistor. Bestel link.
2 x 100 Ohm weerstand.
2 x 1K weerstand.
3 x zo helder mogelijke flitsled.
1 x 100uF condensator.
1 x 10K condensator.
Evt. een spoeltje in serie met de luidspreker maar dat is niet perse nodig.
1 of 2 zonnepanelen wanneer je niet om de paar dagen de accu wilt opladen. Niet perse noodzakelijk.
Niet voor alle onderdelen is een bestel link gegeven. Van deze onderdelen krijg je er vaak 50 tot 100 stuks, dus die kun je beter bij de plaatselijke electronicawinkel halen.

Het totale schema.
Om het schema te downloaden klik hier:

Proefopstelling.

De printopbouw met de transistors en weerstanden.
Het geheel moet uiteraard weerbestendig zijn. Je neemt bijvoorbeeld die waterdichte dozen van de action en bouwt daar de schakeling in. De bedrading voer je naar buiten via geboorde gaten die je met bijvoorbeeld een lijmpistool waterdicht maakt. De PIR sensor komt in dezelfde doos als de schakeling, hiervoor maak je een gat ter grootte van de sensorkop en maakt deze waterdicht met watervaste lijm.
Je hebt nu een muizenverjager gebouwd die ook echt werkt, het kan zijn dat muizen er aan gaan wennen op de lange duur maar dan kun je het eens met een andere frequentie proberen en het geheel eens op een andere plaats op te stellen. Wij hebben de muizen al diverse keren weg zien vluchten wanneer de stroboscoop ging flitsen en de luidspreker begon te werken.
Hieronder staat de code:
//Sketch voor een muizenverjager:
//
//Er wordt gebruikgemaakt van een STM32F103C8T6.
//Deze is CS32 van Otronic en is een STM32 clone.
//De STM32 wordt geflasht met een Otronic FT232RL USB TTL Serial Port Adapter 3.3v - 5v.
//De code is geschikt voor de RCWL-051, ook wel genoemd RCWL-0516. Dit is een microwave sensor. Werkt niet op een breadboard door het metaal wat er in zit.!!!!!!!!!!
//De waterdichte SR04M-2 radar sensor bleek te ongevoelig, een ander was niet weerbestendig.
//Let op!: Alle aardes moeten stervormig worden aangelegd ivm gevoeligheid voor storingen.
//De voedingslijnen moeten, zeker bij de sensor, ontkoppelt worden met 100uF en 100k.
//
//De werking:
//De PIR sensor staat afgesteld op maximale gevoeligheid omdat muizen nauwelijks warmte geven.
//De Microwave sensor reageert niet op warmte maar alleen op beweging, ook achter bladeren of obstakels.
//Komt een muis dichtbij een van de sensoren dan gaan er 3 led's als stroboscooplicht flitsen.
//Uitgebreid met de originele electret speaker die nu ook een frequentie riedel afgeeft. Deze kan tot 26kHz weergeven.
//********************************************
//De Code
//********************************************
#include <Arduino.h>
// Pins op Blue Pill (STM32F103C8T6)
#define PIR_PIN PA2 // PIR sensor output naar pin 2
#define POT_FREQ_PIN PA1 //Potmeter voor frequency
int speakerPin = PA3; //Is evt voor de Ultrasone speaker op pin A3.
unsigned long previousMillis = 0; //Laatste keer dat de ultrasone speaker is aangestuurd
const long period = 300000; // 1000 = een seconde, 60000 = een keer per minuut
int freq;
int radarPin = PB12; // Pin waar de RCWL-051 output op is aangesloten
void setup() {
Serial.begin(115200);
pinMode(radarPin, INPUT); // Stel de radarPin in als input
pinMode(PA4, OUTPUT);
pinMode(speakerPin, OUTPUT); //Alleen nodig bij gebruik van de ultrasone buzzer.
// Configureer de potmeter pin als input (standaard op de STM32)
pinMode(POT_FREQ_PIN, INPUT);
}
void loop() {
int radarValue = digitalRead(radarPin); // Lees de waarde van de radarPin
//Waardes van de potmeters ophalen
int potFreqValue = analogRead(POT_FREQ_PIN);
// Stuur de waarden naar de seriële monitor
freq = potFreqValue * 8; //Frequentie van 0 tot 37000 Hz
Serial.print("Potmeter Frequentie: ");
Serial.println(freq);
if (radarValue == HIGH) // Als er beweging is gedetecteerd
{
Serial.println("Radar beweging gedetecteerd!");
ledalarm();
speakeralarm();
}
int sensorState = digitalRead(PIR_PIN); // Lees PIR-output
if (sensorState == HIGH)
{
Serial.println("PIR beweging gedetecteerd!");
ledalarm();
speakeralarm();
}
delay(250); // Eventjes rust tussen metingen, was 500 maar 500 geeft instabiele waarden. 250 werkt het best
unsigned long currentMillis = millis(); // store the current time
if (currentMillis - previousMillis >= period)
{ // check if waiting time is passed
previousMillis = currentMillis; // laatste tijd dat speaker heeft geklonken
speakeralarm(); //Geeft 1 x per period een geluidsriedel naar de luidspreker
}
}
void ledalarm()
{
for (int i = 0; i <= 50; i++)
{
digitalWrite(PA4, HIGH);
delay(10); //was 20
digitalWrite(PA4, LOW);
delay(50); //was 40
}
}
void speakeralarm()
{
//Ultrasone Buzzer.
for (int i = freq; i < 34000; i += 500)
{
// Wisselende frequentie
//analogWrite(speakerPin, 127); // 75% duty cycle (192/255)
tone(speakerPin, i);
delay(80);//Was 50, tijd tussen de frequentiestapjes
}
noTone(speakerPin);
}

Om deze code te flashen naar het CS32 (=STM32F103) board sluit je de FT232RL USB TTL Serial Port Adapter als volgt aan:
RX op pin A9 van het board.
TX op pin A10 van het board.
GND op G van het board of GND van de voeding.
VCC op 5V van het board of op de 5 Volt voeding.
Hierboven staat 3,3 Volt in het aansluitschema maar op 5 Volt kan ook. De spannings jumper moet dan op 5 Volt worden gezet. Zelf heb ik de 5 Volt steeds gebruikt.
Let op!!!!!: De FT232RL USB TTL Serial Port Adapter mag nooit tegelijk met de externe USB voeding zijn aangesloten of gevoed via de Accu. Het board heeft geen beveiligingsdiode.

Om te flashen moeten de jumpers staan zoals afgebeeld, alvorens te flashen druk eerst op Reset. Na het flashen zet je de jumper terug zoals hier onder is weergegeven en drukt weer op Reset, het programma start dan. Krijg je een foutmelding zoals hier onder is weergegeven dat de Compoort niet benaderd kan worden dan staat de Serieële Monitor mogelijk nog aan.
Error probing interface “serial_w32”
Cannot handle device “COM5”
Failed to open port: COM5
stm32flash 0.4
Of staat er nog een andere Arduino IDE open, geeft ook deze foutmelding.

In onderstaande link vindt je uitgebreidere informatie over het flashen van de code specifiek voor het hier gebruikte CS32 (STM32F103) board. https://www.cytron.io/tutorial/program-the-stm32f103c8t6-blue-pill-led-blinking
Hier volgt een uitleg hoe de Arduino IDE ingesteld moet worden.

Als eerste is het noodzakelijk de library te downloaden voor de STM32. Ga naar Tools > Board > Boards Manager. Zoek dan “Arduino SAM Boards (32-bits ARM Cortex-M3)” en installeer deze.

STEP 2: Download the Arduino STM32-master.
Daarna is het nodig de driver te downloaden die het STM32 board in Arduino IDE ondersteunt. De laatste driver is modified by Roger Clark. Download de driver here.

Unzip de gedownloade file. Ga dan naar de Arduino installation folder. Dat is normaal C:\Program files(x86)\Arduino.

Ga nu naar de hardware folder van de Arduino file. In de hardware folder, sleep de “Arduino_STM32-master” van de ZIP file naar de hardware folder en rename hem met deze naam Arduino_STM32.
De Arduino IDE kan nu het STM32 board detecteren.

Voeg bij Preferenes onderstaande dikgedrukte regel toe gescheiden met een komma tov. andere regels die er eventueel al stonden:
http://dan.drown.org/stm32duino/package_STM32duino_index.json
Alle IDE instellingen voor dit Board:





note: Indien er via een bestel link wordt gekocht ontvangt de schrijver van dit artikel een kleine vergoeding.