Inhoudsopgave:
- Stap 1: Dingen die nodig zijn
- Stap 2: Voorbereidingen
- Stap 3: De PCB bouwen met elektronica
- Stap 4: Bedrading en montage
- Stap 5: De Arduino-code
- Stap 6: Gebruik
Video: Geautomatiseerde Windows Shades: 6 stappen (met afbeeldingen)
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
Een woord vooruit
Ik heb veel tutorials gezien over het automatiseren van handmatige zonwering en jaloezieën, in deze zullen we elektrische zonwering automatiseren. We bespreken elektrische zonneschermen die worden aangedreven door elektromotoren met continue stroom (DC) die openen of sluiten door de polariteit van de stroom om te keren.
Hoewel als u elektrische zonneschermen koopt, u enige automatisering krijgt, zijn er redenen om de automatisering zelf te doen, zoals:
* je hebt misschien alleen een schakelaar in de buurt voor omhoog/omlaag-bediening
* het is goedkoper (sommige bedrijven bieden geavanceerde automatisering voor veel extra $$)
* flexibeler, je kunt ze programmeren om onder verschillende omstandigheden te openen of te sluiten, we zullen leren over het maken van een webserver in python die verbinding maakt met de bluetooth-interface van de tinten en een API blootleggen om de tinten te bedienen, we zullen ook integreren het met thingspeak en daar zou je dingen kunnen doen zoals de zonwering volgens een tijdschema bedienen of via sensorinvoer bedienen
Dit zal een tussentijdse tutorial zijn, je hebt vaardigheden nodig zoals solderen, arduino-programmering, elementaire elektronische kennis en hoe je services op een server installeert, uitvoert en configureert.
Als je de youtube-video's leuk vond, kun je je hier abonneren.
Stap 1: Dingen die nodig zijn
Tip: vergroot de afbeeldingen om de beschrijvende labels erop te zien
Onderdelen:
1. arduino pro mini 16Mhz 5V type (eBay) 2$
2. HC-05 Bluetooth-module (eBay) 3.3 $
3. 5 V Tweekanaalsrelais (eBay) 1,6 $
4. NPN-transzistor die geschikt is voor ten minste een paar versterkers, ik heb Tip142T <1$ gebruikt
5. 220 ohm, 0.25W rezistor <1$
6. diode, 1N4004 <1$
7. draden om de onderdelen te verbinden < 1$
8. PCB (eBay) <1$ per stuk
9. 2 x KF301-2P plug-in schroefconnector (eBay) <1$ per stuk
10. mannelijke-vrouwelijke jumperdraden (eBay) 1,2 $ x 2 voor een bos
11. L7805CV 5V-regelaar (eBay) <1 $ per stuk
12. 5.5mm DC Power Plug Jack Socket mannelijk en vrouwelijk (eBay) <1 $ per stuk
13. Krimpkous of isolatietape
14. Voeding, de voeding moet geschikt zijn voor 12V en 2-3A.
Ik heb de mijne gered van een 12 V 2 A-oplader (eBay) 3,2 $
14. Klemmenstrookblok (eBay) 15c
15. zekeringhouder (Aliexpress) 1$ per stuk
16. zekering (eBay) <1$ per stuk
17. mannelijke en vrouwelijke pcb-connectoren (eBay) <1 $ voor wat we nodig hebben
18. Wisselstroomkabel
19. kunststof bak, de mijne was 6 x 19 cm
Gereedschap:
1. Soldeerbout met soldeer
2. Draadknipper
3. Diverse schroevendraaiers
4. Snijder:
5. boormachine en boor van 8,5 mm
6. USB naar seriële FTDI-adapter FT232RL om de arduino pro mini te programmeren
7. Laptop met ArduinoIDE geïnstalleerd om de arduino te programmeren
8. Lichter als je krimpkous gebruikt
9. Een smartphone die een Bluetooth-verbinding kan maken (ik gebruik een Android in het voorbeeld) met Bluetooth-software geïnstalleerd
10. Optioneel: vergrootglas, multimeter, tang
Stap 2: Voorbereidingen
De voeding en de plastic doos kiezen:
Allereerst moet worden bepaald hoeveel stroom en welke spanning de motoren van de zonwering gebruiken.
Dit kan door de specificaties uit te lezen of metingen te doen met de multimeter. Meestal werken ze op 12 V en 1-3 ampère (de mijne zijn 2,5 A en 12 V). Vermenigvuldig de stroom met hoeveel van hen moet je tegelijkertijd rijden (ik rijd er twee) om de maximale benodigde stroom te vinden. Je zou een voeding moeten vinden met exact dezelfde spanning en idealiter dezelfde stroomsterkte of iets hoger.
Bij deze stap heb ik een beetje vals gespeeld door een voeding van 12 V en 2,5 A te gebruiken om twee motoren van 12 V en 2,5 A aan te drijven, wat betekent dat de motoren twee keer zoveel stroom verbruiken als de voeding kan geven. Maar met behulp van een techniek genaamd PWM (bekijk de link voor meer details) ben ik erin geslaagd om de motor tegelijkertijd met een lagere snelheid aan te drijven.
De reden dat ik dit heb gedaan, is om ruimte in de doos te besparen (ik heb een kleinere doos gekozen).
De plastic behuizing moet de voeding, twee relais, een kleine printplaat met de elektronica en draden huisvesten, dus kies de maat zodat alles erin past.
Mijn voeding had een plastic behuizing die ik uit elkaar heb gescheurd met een dremel gereedschap, ik heb de bestaande draden doorgesneden en op deze manier heb ik een goedkope en kleine voeding die geschikt is voor mijn project (zie foto's).
Bereid de motorkabels voor:
Je moet berekenen hoe lang de motorkabels zullen zijn, dat wil zeggen totdat ze de schakelkast bereiken die we aan het bouwen zijn. De kans is groot dat de bestaande kabels niet lang genoeg zijn en dat u ze moet verlengen, beide draden (de bestaande bladenkabel en de verlengkabels) aan één uiteinde strippen, krimpkousen plaatsen, de draden solderen en vervolgens verwarmen met een lichter om te isoleren.
Aan het einde van de verlengkabel bevindt zich een mannelijke 5,5 mm DC-stekkeraansluiting. Je moet de twee draden aan de socket solderen, het eindresultaat zal zijn zoals op de foto's.
De vrouwelijke 5,5 mm DC-stekker in de doos steken
Boor met de boormachine twee gaten die groot genoeg zijn om de krik er doorheen te laten glijden. Steek de stekkerbussen erin, schroef ze vast met de moeren. Soldeer vervolgens dikke zwarte en rode draden aan elk van de jack-ingangen, en isoleer ze daarna met een krimpkous. De draden moeten lang genoeg zijn om gemakkelijk in het klemmenstrookblok te gaan, maar niet te lang om te veel ruimte in beslag te nemen.
De zekeringhouder met de zekering bevestigen
Boor aan één kant van de doos een klein gaatje om een kleine moer te plaatsen die de zekeringhouder op zijn plaats houdt. Gebruik vervolgens de tang, een schroevendraaier en de moer om deze stevig op zijn plaats te schroeven. De zekeringhouder moet zich in de buurt van de plaats van de voeding bevinden en zich in de doos bevinden. Check nog eens de foto's.
Stap 3: De PCB bouwen met elektronica
De PCB bevat de microcontroller, de Bluetooth-communicatie, de RTC-module, een stroomtranszistor met een diode voor bescherming en een kleine rezistor, connectordraden en een 5V-regelaar.
Ik heb het fritzig-schema bijgevoegd, zodat het gemakkelijk zal zijn. De eerste afbeelding vertegenwoordigt de geëxporteerde afbeelding van het schema en ik heb ook sketch.fzz bijgevoegd (het originele bestand, je kunt het openen met deze tool)
Solderen stappen:
1. snij de vrouwelijke PCB-connectoren door, er zijn twee 12-pins connectoren voor de microcontroller, er is ook een 6-pins connector voor de bluetooth en nog een 12-pins connector aan de rechterkant van de microcontroller en een tweepins connector voor het relais negatief en positieve kracht
2. Nadat alle connectoren zijn doorgesneden, moet er op de achterkant van de PCB worden gesoldeerd
3. Soldeer de twee KF301-2P connectoren
4. Plaats de L7805CV 5V-regelaar op de printplaat. Buig de poten en soldeer deze aan de andere kant en knip de overtollige poten af met de kabelsnijder
5. Soldeer de NPN Tip142T tranzistor en de 1N4004 beschermingsdiode, knip daarna de overtollige poten af
6. Soldeer de 220 ohm rezistor tussen de corresponderende digitale pin 5 en de basispin van de tranzistor
7. Soldeer dikkere draden tussen de tranzistor en de KF301-2P pluggen (rood en zwart zoals aangegeven op de foto's)
8. Soldeer alle rode (+), zwarte (-), en witte (signaal) dunne draden volgens het fritzig-schema
9. Soldeer mannelijke pinnen op de microcontroller, je hebt twee 12 mannelijke pinnen aan de zijkanten nodig
10. Maak verbindingen tussen elk van de vrouwelijke corresponderende pinnen aan de rechterkant van de microcontroller (dit wordt beter uitgelegd in de afbeeldingen). De verbindingen worden gemaakt met alleen soldeer (de pinnen zullen dichtbij zijn)
11. Optioneel: controleer met het vergrootglas de soldeerverbindingen op kortsluiting, en controleer of de draden goed aan de achterkant van de print zijn gesoldeerd, ook kunt u met de multimeter (weerstandsinstelling) controleren of er een kortsluiting is tussen positief en negatieve verbindingen. Een andere test is om het circuit van stroom te voorzien zonder de microcontroller, bluetooth
12. Plaats de microcontroller en de HC-05 bluetooth op de pcb
Stap 4: Bedrading en montage
Inmiddels hebben we onze pcb klaar, onze plastic doos klaar, de kabels van de zonneschermen bedraad en onze andere componenten voorbereid. Het enige wat we nu nog moeten doen is het systeem bedraden.
1. steek de AC-stroomkabel door het bovenste zijgat in de doos, strip de kabel en soldeer deze op de voeding (als uw voeding schroeven heeft, schroef deze dan vast)
2. soldeer met een rode draad de uitgang (+) van de voeding aan een van de zekeringenzijde, gebruik een stukje krimpkous om de blootliggende gestripte draad te verbergen.
3. soldeer nog een rode draad aan de andere kant van de zekering breng krimpkous aan, de andere kant van de draad moet in de ingang (+) van de KF301-2P-schroefconnector worden gestoken en geschroefd
4. soldeer een zwarte draad aan de output (-) kant van de voeding en schroef deze vervolgens op de PCB input KF301-2P schroefconnector
4. Gebruik mannelijk-vrouwelijke breadboard-connectoren en sluit het relais positief en negatief aan op de positieve en negatieve vrouwelijke connectoren van de pcb. Sluit ook pinnen 8 en 9 van de microcontroller (met behulp van de pcb-moederconnectoren aan de linkerkant van de print) aan op de relaistriggerpinnen
5. sluit een kant van het klemmenstrookblok aan op de rode respectievelijk zwarte draden die uit de vrouwelijke 5,5 mm DC-stekkerconnectoren komen. Als je meer dan één vrouwelijke connector van 5,5 mm hebt zoals ik, dan komen alle rode draden in de linkerbovenhoek van het aansluitblok terecht en alle zwarte draden aan de rechterbovenkant van het aansluitblok (zie afbeeldingen). Als je de zonneschermen bedient als ze niet in dezelfde richting bewegen, draaien we de draden hier om (daarover later meer)
6. sluit de positieve en negatieve draden die van de KF301-2P (uit) schroefconnector komen aan op het midden van de relaisklemmen. Het midden van de terminals wordt gemeenschappelijk genoemd.
7. verbind de linkerkant van het linker relais (maakt niet uit hoe je naar de werkelijkheid kijkt) met de linkerkant van het rechter relais naar de linker onderkant van het aansluitblok. Verbind vervolgens de rechterkant van het linker relais met de rechterkant van het rechter relais met de rechter onderkant van het aansluitblok. Het aansluitblok wordt aan de bovenzijde aangesloten op de vrouwelijke 5,5 mm connectoren (zie stap 5).
Opmerking: ik heb beschreven dat het aansluitblok een boven- en onderkant heeft met elk een linker- en rechterkant. Het maakt niet uit hoe je het aansluitblok vasthoudt, zolang je maar onthoudt welke kant wat is. Je kunt de foto's bekijken en vooral het fritzig-schema.
Stap 5: De Arduino-code
De code moet worden geüpload naar de arduino pro mini met behulp van de USB naar seriële FTDI-adapter FT232RL.
U moet de GND-, VCC-, Rx-, Tx- en DTR-pin aansluiten op de arduino pro mini. Open vervolgens de arduino software select tools/port en welke poort je ook gebruikt. Dan Tools/Board/Arduino Pro of Pro Mini. Dan Tools/Board/Processor/ATmega328 (5V 16Mhz).
Open ten slotte de onderstaande schets en druk op uploaden.
Aanpassingen: Het enige dat in de schets kan worden aangepast is de pwmPower. De waarde kan tussen 0 en 255 liggen en geeft ruwweg weer hoeveel van de stroomtoevoer naar de zonneschermmotoren gaat. Het is eigenlijk het snel in- en uitschakelen van de stroom. Ik heb het meestal geïmplementeerd om me in staat te stellen een kleinere voeding te gebruiken zonder oververhitting of afsluiten. Als uw voeding een groter vermogen heeft dan de motoren zullen trekken, kunt u de pwmPower instellen op 255.
Dus hoe werkt dit programma: eerst luistert het naar de seriële lijn (een secundaire softwareserie) voor inkomende uitzendingen. Wanneer een transmissie binnenkomt, wordt het bericht in een buffer gelezen totdat de ";" aanwezig is of het einde van de buffer is bereikt. Vervolgens wordt het geparseerd en als het in het juiste formaat is (bijv. O45;) wordt de functie toggleState aangeroepen met de eerste parameterstatus en vervolgens de duur.
Om de polariteitsschakelaar te bereiken, worden beide relais geopend of gesloten. De tranzistor wordt voor de opgegeven duur in- en uitgeschakeld met behulp van de PWM. O45 betekent 45 seconden open.
Nadat de opdracht is uitgevoerd, wordt de buffer gewist.
Stap 6: Gebruik
We kunnen de bedieningselementen op meer dan één manier gebruiken
1. Via een android of iphone bluetooth applicatie (eenvoudigste)
In mijn demo heb ik gekozen voor een Android-app genaamd Bluetooth Controller. Met deze app kun je knoppen aanpassen die seriële gegevens verzenden. Ik heb twee knoppen gemaakt met de naam Omhoog en Omlaag, ik heb Omhoog gekoppeld aan de code "C40;" en de Down met "O35;".
"C40;" betekent dat ik de tinten gedurende 40 seconden zal sluiten (intrekken), "035" betekent dat ze gedurende 35 seconden zullen openen (ze gaan omhoog). ";" is de opdrachtterminator die ik in mijn schets heb gekozen, wat betekent dat het het einde van een opdracht aangeeft.
2. Via een python-script dat continu op de achtergrond draait
Dit is het geavanceerde deel van de tutorial. Ik heb mande een python-script dat op een server zoals een raspberry pi of laptop met internettoegang zal draaien. Het zal verbinding maken met de bluetooth op de schakelkast, en het zal een http API blootleggen. De API is direct toegankelijk of via thingspeak.
Ik leg je stap voor stap uit wat je moet doen
A. het eerste is om de bluetooth te koppelen
je zult de bluetoothctl-opdracht van de console gebruiken, binnen het type
aanzetten
vindbaar op agent op standaard-agent koppelbaar bij scan op paar xx:xx:xx:xx:xx:xx (en voer wachtwoord in) trust xx:xx:xx:xx:xx:xx (indien geen wachtwoord):
open vervolgens het bluetooth-configuratiebestand
vim /etc/bluetooth/rfcomm.conf
binnenin moet je je bluetooth-apparaat als volgt configureren:
rfcomm1 {
bind ja; device your_bluetooth_mac_address zoiets als 97:D3:31:21:A0:51; kanaal 1; commentaar "Verbinding met mijn tinten bt"; }
bind, herstart de bluetooth-services
sudo rfcomm bind allsudo /etc/init.d/bluetooth herstart sudo hciconfig hci0 omhoog
B. installeer kolf, kolf basic auth:
sudo -H pip install Flask Flask-BasicAuth
C. maak een bestand server.py met de volgende code en voer de server uit:
# gebruik: python httpToBluetooth gebruikersnaam wachtwoord bluetooth_address
# Opmerking: gebruikersnaam, wachtwoord worden gebruikt
import os, bluetooth, sys, threading
from flask import Flask from flask_basicauth importeer BasicAuth uit wachtrij import Wachtrij app = Flask(_name_) configuration = sys.argv app.config['BASIC_AUTH_USERNAME'] = configuration[1] app.config['BASIC_AUTH_PASSWORD'] = configuratie[2] wachtrij = Queue() basic_auth = BasicAuth(app) class BluetoothBackground(threading. Thread): def _init_(self, bluetooth_address, queue): threading. Thread._init_(self) self._bluetooth_address = bluetooth_address self._queue = queue self.shutdown = False def run (self): self._bluetooth = self.get_bluetooth() terwijl niet self.shutdown: message = self._queue.get() self._bluetooth.send(message) self._bluetooth.close() def get_bluetooth(self): verbinding = bluetooth. BluetoothSocket(bluetooth. RFCOMM) connection.settimeout(None) try: connection.connect((self._bluetooth_address, 1)) behalve uitzondering, e: print 'Fout verbinding met bluetooth' + str(e) verbinding.setblocking (False) retourverbindingsklasse Webserver (threading. Thread): def run (self): port = in t(os.environ.get('PORT', 5000)) app.run(host='0.0.0.0', port=port, debug=True, use_reloader=False) @app.route("/send_to_serial/") @basic_auth.required def send_to_serial(command): queue.put(command) return 'ok' threads = threads.append(BluetoothBackground(configuration[3], queue)) threads.append(Webserver()) [thread.start () voor draad in draden]
om de server uit te voeren, voer het volgende uit:
python server.py gebruikerswachtwoord 97:D2:31:20:A0:51
Ok, dus server.py is ons script, gebruiker en wachtwoord zijn de inloggegevens die worden gebruikt voor uw authenticatie en "97:D2:31:20:A0:51" is uw Bluetooth MAC-adres.
NS. gebruik uw server om overal ter wereld opdrachten te verzenden
van het browsertype:
- voer de gebruiker en het wachtwoord in die u eerder hebt ingesteld bij het starten van de python-server
- "C30;" is de opdracht die wordt doorgestuurd naar het Bluetooth-apparaat (onze doos die de tinten regelt)
- controleer of poort 5000 niet wordt geblokkeerd door uw firewall (we gebruiken die poort)
- als je achter een router zit (bijvoorbeeld een raspberry pi) moet je een port forwarding maken van de router van poort 5000 naar poort 5000
e. je kunt thingspeak gebruiken om dingen te doen zoals het regelen van de zonwering volgens een tijdschema of wanneer bepaalde kanaalsensorgegevens veranderen. U kunt bijvoorbeeld een lichtsensor (buiten) aansluiten op thinkspeak en wanneer het lichtniveau tot een bepaald bedrag daalt (het is avond) kunt u de tinten sluiten zodat mensen buiten u niet zien.
Je kunt de shades (python-server die we eerder hebben opgezet) verbinden met thingspeak met behulp van ThingHTTP.
Ik heb een afbeelding van het ThingHTTP-formulier bijgevoegd met de gegevens ingevuld als voorbeeld en een afbeelding met TimeControl. Dus voor maximale flexibiliteit zou thingspeak moeten doen wat je nodig hebt.
3. Via mijn domotica-applicatie
Dit is een beetje ingewikkelder, mijn domotica-applicatie doet veel meer dan het regelen van de tinten.
Het bestuurt ook de lichten, de deur, heeft meerdere sensoren, integreert met schakelaars en heeft complexe, door de gebruiker gedefinieerde regels die bijvoorbeeld de rolluiken kunnen openen als het lichtniveau binnen laag is, of als het ochtend is.
Je kunt mijn github-repository bekijken en als je vragen hebt, beantwoord ik ze graag.
Als je mijn tutorial enigszins nuttig vond, deel hem dan of voeg hem toe aan favorieten. En ik wil ook wat interessante reacties zien:)
Aanbevolen:
Geautomatiseerde modelspoorbaan met twee treinen (V2.0) - Arduino gebaseerd: 15 stappen (met afbeeldingen)
Geautomatiseerde modelspoorbaan met twee treinen (V2.0) | Gebaseerd op Arduino: het automatiseren van modelbaanlay-outs met behulp van Arduino-microcontrollers is een geweldige manier om microcontrollers, programmeren en modelspoorbanen samen te voegen tot één hobby. Er zijn een heleboel projecten beschikbaar over het autonoom laten rijden van een trein op een modelspoorbaan
Eenvoudige geautomatiseerde modelspoorbaan - Arduino bestuurd: 11 stappen (met afbeeldingen)
Eenvoudige geautomatiseerde modelspoorbaan | Arduino-gestuurd: Arduino-microcontrollers zijn een geweldige aanvulling op de modelspoorbaan, vooral als het om automatisering gaat. Hier is een eenvoudige en gemakkelijke manier om aan de slag te gaan met modelspoorautomatisering met Arduino. Dus, zonder verder oponthoud, laten we aan de slag gaan
Volledig geautomatiseerde fotografie panning rig 14 stappen (met afbeeldingen) - Ajarnpa
Volledig geautomatiseerde panning-installatie voor fotografie: inleiding Hallo allemaal, dit is mijn geautomatiseerde camera-panning-installatie! Ben jij een fervent fotograaf, die al een van die echt coole geautomatiseerde panning-installaties wil, maar ze zijn erg duur, zoals £ 350+ duur voor 2-assige pannen? Nou, stop hier
DIY - Geautomatiseerde tuinirrigatie - (Arduino / IOT): 9 stappen (met afbeeldingen)
DIY - Geautomatiseerde tuinirrigatie - (Arduino / IOT): Dit project laat je zien hoe je een irrigatiecontroller voor een huistuin kunt bouwen. Geschikt voor het meten van bodemvochtmetingen en het activeren van irrigatie vanuit een tuinkraan als de grond te droog wordt. De controller bevat ook een temperatuur- en h
Geautomatiseerde LEGO BB-8!: 25 stappen (met afbeeldingen)
Geautomatiseerde LEGO BB-8!: We zijn helemaal weg van de nieuwe LEGO Star Wars-sets die de afgelopen jaren zijn uitgebracht. Ze zijn goed ontworpen, leuk om te bouwen en zien er geweldig uit. Wat ze nog leuker zou maken, is als ze ook alleen zouden verhuizen! We hebben een LEGO van de plank