WeggUp - een slaapgedeelte cyclus en licht wekker (9 / 11 stap)

Stap 9: Software


Ik gebruikte een steack "betekent" (mongodb, express.js, angular js en knooppunt js) alles te implementeren in software.

U vindt de huidige (echt, echt Alfa) source code op github

Er zijn verschillende redenen waarom ik heb geprobeerd deze combinatie:

  • Ik wilde het proberen in een echte projetc
  • Het is dezelfde taal in frontend/backend/db
  • JavaScript is vrij goed in snelle prototyping

Concepten:

We hebben het probleem van de gedeelde bronnen op een ingesloten project als dit (geluid en licht in ons geval). Dus alleen een proces de bron kan benaderen op een bepaald moment, aangezien we hebben meerdere bewerkingsmodi (licht, licht van de stemming, alarm, audioboek modus), kunnen deze diensten blokkeren elkaar. Dus eenvoudig te houden alles heb ik voor een zeer eenvoudige strategie besloten: wanneer een proces wil toegang tot een bron, een ander eventueel momenteel lopende proces is gestopt, zodat de bron opnieuw kan worden gebruikt door het nieuwe proces. In ons geval, dit is wellicht ook een van de beste oplossingen: geen van de processen echt nodig een resource + de enige keer dat geactiveerde proces het alarm is: alarm altijd de resource moet krijgen als het begint, ook wanneer iets anders wordt uitgevoerd. Alle andere processen zijn gebruiker geactiveerd (en wij hebben slechts één gebruiker), zodat we waarschijnlijk willen dat het proces om te eisen van de resource.

Interfacing de LEDs: pwm met Pi-blaster

De raspberry Pi hoeft meestal alleen 1 of 2 pwm-poorten. Voor dit project echter nodig ik ten minste 4 van hen dus ik de pi-blaster -project gebruikte te rijden meerdere poorten met pwm. Ik had het probleem van flikkeren tijdens het dimmen van LEDs, dus ik moest overschakelen naar een eerdere versie die niet het probleem. Bovendien ik moest veranderen de bronnen voor het gebruik van pcm-modus standaard, otherwhise pi-blaster maakt gebruik van de klankmodule tot pwm, wat resulteert in echt walgelijk geluid uit de luidsprekers. Bovendien moest ik aanpassen van de havens: poort 21 werd omgedoopt tot 27 in de nieuwste raspberry Pi versie.

Logboekregistratie

Zoals uiteengezet in de intro besloot ik in te loggen alle de sensor-waardes mongodb hen later bekijken en analyseren. Er is een grote bibliotheek voor interfacing met de mcp3008 -chip voor knooppunt. De vermeldingen in het beveiligingslogboek kunnen worden opgevraagd met een REST api. Ik gebruikte op de frontend flot, een bibliotheek jquery plotten grafieken.

Logboekregistratie van de versnellingsmeters was een beetje moeilijker, omdat ik eigenlijk melden wilde "Is er beweging" niet "wat is de richting van de beweging". Daarom ik continu geregistreerd het absolute verschil tussen 2 metingen en bouwde een glijdende gemiddelde over 100 monsters (1 proeven elke milliseconde) leidt tot 10 metingen per seconde. Wanneer de gemiddelde een bepaalde threashold overschrijdt (empirisch bepaald) een gebeurtenis wordt gestart, zodat de alarm-scheduler en andere modules kunnen volgens acties uitvoeren. Als het monster is frequentie voor verkeer vrij hoog, dat ik inloggen alleen waarden wanneer zij een bepaald bedrag van de laatste opgeslagen waarde veranderen. otherwhise het zou teveel I/O voor de framboos alles vertragen (plus duurt eeuwig om de gegevens weer te geven).

Alarmen

Alarmen worden ook opgeslagen in mongodb en de knooppunt-cron bibliotheek wordt gebruikt om ze te starten. Ze kunnen worden bewerkt via een REST api. Op de front-end-gebruikte ik een Verloopkiezer en een geluid-picker voor het configureren van de zonsopgang-licht en de geluiden van de stemming.

Om een voorvertoning van de geselecteerde kleur zonder al te veel vertraging, voegde ik socket ondersteuning te garanderen een snelle communicatie bij het afhalen van de kleurwaarden. bij het bewerken van de lichte helling, is altijd de geselecteerde kleur weergegeven op de weggup. Het geluid/licht verloop kan ook volledig prospectieve en klinkt allemaal apart kunnen worden gespeeld. Het volume van elk geluid kunnen aangepaste apart, ook als het moet worden herhaald of niet.

De geluidsbestanden worden gelezen uit een bepaalde map op de raspberry Pi, die wordt gedeeld via samba.

Om de slaap cyclus functionaliteit de alarm-scheduler luistert naar de gebeurtenis van de beweging van de logger en controleert als het volgende licht slapen fase binnen een bepaalde termijn tussen wake-up tijd en een gedefinieerde tijd daarvoor ligt te plannen van het alarm. Het belangrijkste probleem is te voorspellen het volgende licht slapen fase. Op dit moment gebruik ik een constante duur van 3 uur per slaapcyclus. Wanneer heb ik zal meer verkeer gegevens verzameld zal ik dit dienovereenkomstig aan te passen of vinden van een andere methode voor het voorspellen van de volgende fase van de lichte slaap (afhankelijk van de verzamelde gegevens).

Geluid afspelen

Om het geluid afspelen zijn mplayer processen voortgebracht op de achtergrond in slave-modus, zodat zij gemakkelijk kunnen worden bediend vanuit knooppunt. Ik zal eventueel veranderen naar een andere speler, als de hardware-eisen, en derhalve de vertragingen zijn vrij hoog met mplayer.

De enkele knoop interface

Bij het indrukken van de bovenkant van de behuizing, wordt de interne knop ingedrukt. Deze gebeurtenis veroorzaakt de weggup inschakelen van fel licht, die fungeert als een lamp. Bij het indrukken van de knop, terwijl wordt uitgevoerd, wordt dit proces onmiddellijk gestopt. Dat wil zeggen de knop fungeert als een "shut off iets dat wordt uitgevoerd" switch en wanneer niets wordt uitgevoerd, het als "lichten op" schakelaar.

Andere modules:

Alle modules kunnen worden gestart en gestopt uit een webinterface. De configuratie van alle parameters kan er ook worden gecontroleerd. Ik heb een eenvoudige gemeenschappelijke Instellingenbeheer voor alle modules, geïmplementeerd zodat ik kan het toevoegen van nieuwe gemakkelijk (wanneer ik wat tijd hebt gevonden, ik maak pagina's met aangepaste instellingen voor alle modules, die meer comfortabel te gebruiken).

  • Audioboek: de module audioboek leest een bestand na de andere uit een bepaalde directory. Na 10 minuten van lezing blijkt het volume lager met 50%. Wanneer de luisteraar in het bed beweegt en een motie-gebeurtenis wordt gestart, wordt het volume opduikt en blijft een ander 10 minuten. Wanneer de luisteraar in slaap is gevallen geen beweging evenement zal worden ontslagen en de audioboek stopt met afspelen. De positie van de laatste keer dat beweging wordt opgeslagen, zodat het afspelen begint op een punt waar de luisteraar zeker wakker was.
  • moodlight: het verandert van kleur elk 10 +/-rand(5) seconden van de basiskleur op de kleur vervagen, de totale helderheid kan worden geconfigureerd (de kleur vector is genormaliseerd om ongeveer dezelfde helderheid hele tijd).
  • licht: Hiermee schakelt u het licht met een configureerbare kleur. In deze module wordt gestart wanneer u op de top van de behuizing drukt.

Gerelateerde Artikelen

Maak een SUPER Joule dief licht!

Maak een SUPER Joule dief licht!

Een dief joule is een eenvoudige schakeling die kan nemen van 1,5 volt en stak van maar liefst 5 volt. Het kan een LED super helder licht! Maar heb je ooit gehoord over het krijgen van 120 volt uit een AA-batterij? De Super Joule dief kunnen enkel da
Hoe installeer ik een dynamo aangedreven fiets licht.

Hoe installeer ik een dynamo aangedreven fiets licht.

Zoals elke biker weet als u 's nachts berijdt een licht is een must!in de tutorial zal ik u tonen hoe te installeren de een dynamo aangedreven fiets lichtDit licht is perfect voor wie houdt van de vintage look maar ook houdt een echt helder licht.Kop
Hoe een oude tekening om licht te gebruiken met nieuwe technologie?

Hoe een oude tekening om licht te gebruiken met nieuwe technologie?

ik heb altijd een probleem met werken licht. Het was te donker, te groot of te warm.Dus ik gebruik een oude tekening licht en 10W led met 220/110V power leveren en maken bijna perfecte workshop licht vooral voor elektronische soldeer banen. Lamp is e
Het stelen van een joule dief van een goedkope solar tuin licht

Het stelen van een joule dief van een goedkope solar tuin licht

voor het uitvoeren van een LED uit één 1,5 V, 1.2V of met name grotendeels uitgeputte batterijen, het beroemde Joule dief circuit met behulp van een opgerolde torus is geweldig.Echter, wanneer de berging van de zonnecel en batterij van een goedkope s
Hoe het bouwen van een ergonomische cyclus Truck

Hoe het bouwen van een ergonomische cyclus Truck

OntwerpIk heb genoeg van omvallen wanneer klimmen van mijn oude fiets volledig geladen met lading. Ik zocht een die had alle dingen die ik nodig had, zoals gemakkelijk ontkoppelen, volledige MTB versnellingen (voor klimmen heuvels met lading) en een
Hoe maak je een HEXBUG nano door licht worden geactiveerd.

Hoe maak je een HEXBUG nano door licht worden geactiveerd.

Deze instructie is om een HEXBUG nano door licht worden geactiveerd.HEXBUG nano is een leuk speeltje welke bewegingen als een echt insect. Ik wil gebruiken om te verras iemand die open het bevatten van een dozijn van de HEXBUG nano. Maar de HEXBUG he
Hoe maak je een zonne-aangedreven Stencil licht doos

Hoe maak je een zonne-aangedreven Stencil licht doos

/ * stijldefinities * / tabel. MsoNormalTable {mso-stijl-naam: "Tabel normaal"; mso-tstyle-rowband-grootte: 0; mso-tstyle-colband-grootte: 0; mso-stijl-noshow:yes; mso-stijl-prioriteit: 99; mso-stijl-qformat:yes; mso-stijl-ouder: "";&q
Upgraden van een batterij-aangedreven kast licht (Solderless!)

Upgraden van een batterij-aangedreven kast licht (Solderless!)

Deze cheapo drukknop "kast lights" zijn overal, en--omdat ze gebruik maken van kleine gloeilampen--zijn belachelijk verouderd.Sinds mijn laatste (eerste) Instructable trachten opwaarts zijnde absurd dure achteraf, besloten heb ik om deze discuss
Hoe maak je een eenvoudige motiesensor Led licht (Revisited) (PIR)

Hoe maak je een eenvoudige motiesensor Led licht (Revisited) (PIR)

Hallo weer!Nu, ik ben hier met een nieuw Model van PIR eenvoudige Motion Sensor Led licht!De vorige Instructable had draagbaarheid kwesties en het probleem van een weerstand.In deze versie heb ik het gemaakt meer Compact en makkelijk te houden met ee
Maak een vogel papier thee licht kaars Lamp uitknippen

Maak een vogel papier thee licht kaars Lamp uitknippen

Hier is een snelle project die je in minder dan een uur doen kunt om een prachtige papier knipsel lamp die u kunt ofwel op een laag vermogen lamp of een thee-licht kaars plaatsen.Stap 1: Een afbeelding die u wilt gebruiken op uw lamp zoekenZodra u uw
Hoe schoon een 2 cyclus motor carburateur

Hoe schoon een 2 cyclus motor carburateur

Lees dit artikel voor professionele carburateur schoonmaken stappen en advies. Leer waarom kan u wilt opruimen van uw gereedschap carburateur met of zonder een rebuild kit.Schoonmaken van de carburateur van een kleine motor meestal gebeurt als onderd
Bouwen van een aangepaste 3D-gedrukte, licht-up figuur

Bouwen van een aangepaste 3D-gedrukte, licht-up figuur

Tinkerplay is een geweldige mobiele app die u kunt ontwerpen gelede wezens en maak hen op een 3D-printer. Het is een erg leuk te gebruiken op iOS, Android en Windows Mobile en vrij veel garanties uitstekende resultaten. Het bijzondere aan Tinkerplay
Hoe licht een LED of regelmatige licht met USB!!

Hoe licht een LED of regelmatige licht met USB!!

Dit Instructable gaat om je te leren hoe aan het licht van een gloeilamp via een USB!!SORRY: Ik heb momenteel geen camera, dus ik niet of foto's laden kan!Maar: Ik heb een scanner, dus ik zal het beste wat die ik kan doen.Ik denk dat je dit kon gebru
Maak een eenvoudige Motion Sensor licht! (PIR)

Maak een eenvoudige Motion Sensor licht! (PIR)

Het maken van een kleine en eenvoudige Motion Sensing van licht met minder rompslomp en minder onderdelen.Een Beginner kan dit ook maken.Een eenvoudige begrip van de werking van transistor en kennis van de Anode en kathode is alleen nodig zodat het s