PROJECTVEREISTEN EN-DOELSTELLINGEN
6 augustus 2013
OVERZICHT
1. achtergrond en beschrijving van de projecten
Dit is het eerste project dat ik met in het rijk van de huisautomatisering en draadloze verbindingen begonnen ben. Ik heb beperkte gebruik met Bluetooth en wilde meer ervaring met de technologie. Na rondkijken op ik zag een van deze op doel- of WM voor ongeveer $99 (7/20/2013).
2. de projectvereisten en-doelstellingen
Dit project omvat een elektronische lichtschakelaar die invoer van Bluetooth of een touch sensor om het licht aan en uit te zetten zal worden geaccepteerd. Dit is versie 1.0 dat ik noem dit omdat er toekomstige versies die worden toegevoegd om het ontwerp later. Project moet kosten zo weinig mogelijk met de eenvoudigste gebruik voor niet technische mensen. (specifiek familie).
3. hoge eisen
• Blue tooth-verbinding
• Lokale weg te zetten op een korting op het licht met touch
4. de betrokken partijen
Familie, vrienden, die ooit toevallig in het huis.
5. specifieke uitsluitingen van het toepassingsgebied
Niets op dit moment.
6. de uitvoeringsplan
Na op zoek online Ik ben van plan te kopen van de Bluetooth-module en een Relais module die zal verminderen de hoeveelheid tijd die nodig is om dit project te ontwikkelen. Als gevolg van de spanning en de huidige eisen kan het beschadigen van schakelingen en of het ontbranden van een brand met de kabels die betrokken zijn. Ik ben ook van plan te lopen dit vanaf een muur plugin en moet een solide permanente 5V wilskracht bron voor dit project.
7. op hoog niveau tijdlijn/planning
De online items kopen
Kijk voor resterende onderdelen lokaal op een korting.
Ontwikkelen op een Printplaat en overbrengen naar een gesoldeerd circuit.
8. delen
De online onderdelen bleken op zeer goedkoop sites.
• Picaxe 18m 2 + ($3,91) http://www.robotshop.com/picaxe-18m2-microcontroller-chip.html?utm_source=google&utm_medium=base&utm_campaign=jos
• Bluetooth transceiver ($7) http://compare.ebay.com/like/290932857308?var=lv 5V relais Module voor Arduino (werkt met officiële Arduino boards Arduino Boards) ($3)
http://DX.com/p/Arduino-5V-relay-module-Blue-Black-121354?utm_source=GoogleShoppingUS&utm_medium=CPC&utm_content=121354&utm_campaign=436&gclid=CPWxmPC76rgCFazm7AodATcAUA
• Nu opslaan wat geld Haal een 5V (1A-2A) power converter van de lokale Goodwill of soortgelijke tweedehands winkel.
• Paar weerstanden, draden en printplaat van uw keuze.
9. het circuit
U moet programma de Picaxe chip echter zoals dit zal geen deel uitmaken van het eindproduct het zal niet worden opgenomen in het circuit. We kunnen de chip op een soldeer minder bestuur program en verplaatsen naar het circuit aangelegd onder. Hiervoor sluit dit de chip per de Picaxe handleiding die kan worden gevonden (http://www.picaxe.com/docs/picaxe18m2.pdf). Om het circuit er is echt alleen een paar verbindingen macht, grond, seriële TX, RX, Touch en signaal. Een totaal van 10 of minder verbindingen. Hieronder is het circuit aangelegd te gebruiken de Picaxe bootloader.
https://plus.Google.com/photos/106710414793493759480/albums/5909298573545462145?authkey=CLb-vanowvWQOA
10. programing
Het basisidee in programma dit project is de Blauwe tand waarde lezen als u een specifiek patroon dan gaat het licht aan of uit te schakelen, of als je een touch zet het licht op of af... we eigenlijk niet hoeven te weten als het licht in- of uitschakelen dat is we veranderd.
De code is echt eenvoudig.
///////////////////////////////////////////////////////////////////// code ////////////////////////////////////////////////////////////////////////////////////////////////////////
; Cody hanks
; 8/6/2013
; picaxe 18m 2 + code voor lichtschakelaar
; invoer van bluetooth of een touch-sensor
; uitgang naar het doorsturen van licht in- en uitschakelen.
; de frequentie ter verbetering van de resolutie (en de Bluetooth snelheid verhogen) reset
SETFREQ m8; de chip ingesteld op 8 Mhz
hsersetup B9600_8, % 00; ingesteld op de Baud-rate van 9600 met een frequentie van 8Mhz
input C.1; Setup de ingang voor de touch sensor
uitvoer C.0; Setup-uitgang voor signaal draad op de Relais module
laat b2 = 0
belangrijkste: w1 = $FFFF ' een niet-geldige waarde instellen
; W1 is woord één in bytes 2 en 3 gehouden
hserin w1 ' ontvangen van 1 byte in w1
Als w1 <> $FFFF then; een byte is ontvangen Controleer dat zijn niet de ongeldige byte
; ASCII 1 dec 49 = dus dit voor een 1 verzonden controleren moet
; via de bluetooth signaal en zal de output in-/ uitschakelen
Als w1 = 49 then
knevel C.0
eind als
; de bluetooth verzenden, zodat we wat het zien kunnen recived
hserout 0 ("u op een knop gedrukt:", w1); ECHO het terug uit
eind als
; Dit zal de waarde van de Aanraking in 16-bits gelezen in het geheugen w0
touch16 c.1,w0
; W0 wordt uitgedrukt in bytes 0 en 1
; controleren op 0 op de touch sensor afhankelijk van de verbinding en dit lawaai
; signl een aanraking kon
Als w0 = 0 dan goto interuptloop
; de waarde afgeven aan bluetooth, dit is dus we kunnen re programma het juiste video-
; sensetivity op een later tijdstip.
hserout 0,("value:",#w0,13,10)
; de andere waarde voor mijn setup is als w0 > 6000 dan een touch
Als w0 > 6000 dan goto interuptloop
onderbreken van 5
; debug werkt op de seriële poort van de programmeertaal en zal output waarden voor alle
; geheugenlocaties terug naar de editor programing
debug
goto belangrijkste; lus
interuptloop:
onderbreken van 100; Waid befor controleren om te zien of zijn nog steeds geraakt
touch16 c.1,w0; lezen
hserout 0,("value:",#w0,13,10); uitvoer naar bluetooth te debuggen
; Als het is nog steeds geraakt niets doen en ga gewoon naar lus
Als w0 = 0 dan goto interuptloop
Als w0 > 5400 dan goto interuptloop
; Zodra haar niet langer geraakt dan veranderen we het licht.
knevel C.0
; en loop
goto belangrijkste
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
11. problemen
Er is een grote fout in dit ontwerp die een probleem consequent veroorzaakt. Een adc-converter aangesloten op VN-achteraan plaat die in open lucht IE de touch sensor zit is echt onveilig. Versie 2.0- of later zal een betere methode hiervoor gebruiken... want nu is het eenvoudig om dit uit te schakelen in de code