WeggUp - un sommeil cycle et lumière réveil (9 / 11 étapes)

Étape 9: logiciel

J’ai utilisé un steack "signifie" (mongodb, express.js, js angulaire et nœud js) de tout mettre en œuvre dans le logiciel.

Vous pouvez trouver le courant (vraiment, vraiment alpha) source code sur github

Il y a plusieurs raisons pourquoi j’ai essayé cette combinaison :

  • J’ai voulu essayer dans un véritable projet
  • C’est la même langue dans frontend/backend/db
  • JavaScript est assez bon pour prototypage rapide

Concepts :

Un projet intégré comme ça, nous avons le problème des ressources partagées (son et lumière dans notre cas). Si seulement un seul processus peut accéder à la ressource à un moment donné, comme nous avons plusieurs modes de fonctionnement (lumière, lumière d’ambiance, alarme, mode audiobook), ces services pourraient bloquer mutuellement. Alors pour garder tout simple, j’ai décidé d’une stratégie très simple : quand un processus veut accéder à une ressource, un autre processus éventuellement en cours d’exécution est arrêté, alors que la ressource peut être utilisée à nouveau par le nouveau processus. Dans notre cas, c’est peut-être aussi une des meilleures solutions : aucun des processus n’a vraiment besoin d’une ressource + la seule fois où est déclenchée l’alarme : l’alarme doit toujours obtenir la ressource quand il commence, aussi quand quelque chose est en cours d’exécution. Tous les autres procédés sont utilisateur déclenché (et nous n’avons qu’un seul utilisateur), alors nous voulons probablement le processus de réclamer la ressource.

Interfaçage de la LED : pwm avec Pi-blaster

Habituellement le raspberry Pi a seulement 1 ou 2 ports pwm. Pour ce projet cependant, j’ai dû au moins 4 d'entre eux alors j’ai utilisé le projet pi-blaster pour piloter plusieurs ports avec pwm. J’ai eu le problème de scintillement lors de gradation des LED, donc j’ai dû passer à une version antérieure qui n’a pas le problème. En outre, j’ai dû changer les sources pour utiliser le mode pcm par défaut, sinon pi-blaster utilise le module de sons pour produire pwm qui se traduit par vraiment dégoûtant de bruit sur les haut-parleurs. Par ailleurs j’ai dû ajuster les ports : Port 21 a été renommé en 27 dans la dernière version de Pi framboise.

Exploitation forestière

Comme expliqué dans l’intro, j’ai décidé de vous connecter toutes les valeurs du capteur mongodb pour visualiser plus tard et les analyser. Il y a une puce de la grande bibliothèque d’interfaçage avec le mcp3008 pour nœud. Les entrées de journal peuvent être interrogées avec une api REST. Sur l’interface j’ai utilisé le flot, une bibliothèque jquery pour tracer des graphiques.

Enregistrement des accéléromètres a été un peu plus difficile, parce que je voulais essentiellement vous connecter « Is there motion » pas « quel est le sens de la motion ». C’est pourquoi j’ai continuellement connecté la différence absolue entre 2 mesures et construit une moyenne mobile sur 100 échantillons (1 goûter chaque milliseconde) menant à 10 mesures par seconde. Lorsque la moyenne est supérieure à un certain threashold (empiriquement déterminée) un événement est déclenché, afin que le planificateur de l’alarme et d’autres modules peuvent poser des gestes selon. Comme l’échantillon fréquence de mouvement est assez élevé, que je me connecte uniquement des valeurs lorsqu’ils changent d’une certaine quantité de la dernière valeur enregistrée. sinon ce serait trop d’e/s pour la framboise tout ralentissement (plus il serait prendre une éternité pour afficher les données).

Alarmes

Alarmes sont également stockés dans mongodb et la bibliothèque de noeud-cron est utilisée pour démarrer les. Ils peuvent être modifiés via une api REST. Sur le serveur frontal, j’ai utilisé un Sélecteur de dégradé et un sélecteur de son pour configurer la soleil-la lumière et les sons d’ambiance.

Pour avoir un aperçu de la couleur actuellement sélectionnée sans trop de retard, j’ai ajouté le support de prise afin de garantir une communication rapide lors de la cueillette des valeurs chromatiques. Lorsque vous modifiez le gradient de la lumière, la couleur sélectionnée est toujours présenté en avant-première sur le weggup. Le gradient de Sono/light peut également être visualisée complètement et tous les sons peuvent être joués séparément. Le volume de chaque son peut être réglé séparément, aussi bien si elle doit être répétée ou non.

Les fichiers audio sont lues dans un certain répertoire sur la Pi framboise, qui est également partagé via samba.

Pour se rendre compte de la fonctionnalité de cycle de sommeil, le planificateur alarme écoute l’événement de mouvement de l’enregistreur et vérifie si le prochain feu de phase de sommeil se trouve dans un certain délai entre le moment de réveil et un temps défini auparavant de replanifier l’alarme. Le principal problème est de prévoir le prochain feu de phase de sommeil. Pour le moment, j’utilise une durée constante de 3 heures par cycle de sommeil. Lorsque j’ai auront recueilli des données de mouvement plus j’ajuster en conséquence ou trouver une autre méthode pour prédire la prochaine phase de sommeil léger (selon les données recueillies).

Jouer un son

Pour lire son processus mplayer fraient en arrière-plan en mode esclave, afin qu’ils peuvent être facilement commandés par nœud. Je vais peut-être changer à un autre joueur, comme la configuration matérielle requise, et donc les délais sont assez élevés avec mplayer.

L’interface simple bouton

Lorsque vous appuyez sur le dessus du boîtier, il obtient appuie sur le bouton interne. Cet événement provoque le weggup allumer la lumière vive, agissant comme une lampe. Lorsque vous appuyez sur le bouton, lorsque quelque chose est en marche, ce processus s’arrête immédiatement. C'est-à-dire le bouton agit comme un « shut off tout ce qui est en cours d’exécution » commutateur, et quand rien ne fonctionne, il agit comme un interrupteur « s’allume ».

Autres modules de :

Tous les modules peuvent être démarrés et arrêtés depuis une interface web. La configuration de tous les paramètres peut également être contrôlée là. J’ai mis en place un simple gestionnaire de paramètres communs à tous les modules, donc je peux facilement ajouter de nouveaux (quand je trouve quelque temps, je vais créer des pages de paramètres personnalisés pour tous les modules, qui sont plus confortables à utiliser).

  • Livre audio : le module audiobook lit un fichier après l’autre dans un certain répertoire. Après 10 Minutes de lecture, il semble baisser le volume de 50 %. Lorsque l’auditeur se déplace dans le lit, et un événement de mouvement est déclenché, le volume se présente et poursuit un autre 10 minutes. Quand l’auditeur s’est endormi, aucun événement de mouvement ne se déclenche et le livre audio s’arrête de jouer. La position de la dernière fois de la requête est stockée afin que la lecture commence à un point où l’auditeur était certainement éveillé.
  • Moodlight : il change de couleur tous les 10 ± rand(5) secondes, décoloration de la couleur à la couleur, la luminosité totale peut être configurée (le vecteur de couleur est normalisé pour avoir approximativement la même luminosité tout le temps).
  • lumière : allume la lumière avec une couleur configurable. Ce module est lancé lorsque vous appuyez sur le dessus de l’enceinte.

Articles Liés

Tron legacy cycle de lumière

Tron legacy cycle de lumière

J'ai dessiné ce cycle de lumière de tron legacy juste quelques jours après que j'ai regardé le film !
Cycle casque lumière LED SUPER facile. Toutes les pièces de PREBOUGHT

Cycle casque lumière LED SUPER facile. Toutes les pièces de PREBOUGHT

un casque visible, avec les phares avant et autocollants réfléchissants.Étape 1: casques sont bons, qu'ils ajoutent une protection mais peu de prévention. . Ajouter la visibilité à un casque à l'aide d'un front face à la lumière, il vous permet de vo
Cycle de lumière: LED-RGB Programmable Strips sur cadre du vélo

Cycle de lumière: LED-RGB Programmable Strips sur cadre du vélo

j'ai déjà travaillé sur des projets similaires, celui-ci est vraiment la prochaine étape d'un projet antérieur. Voir :Et avant que nous commencions, nous devrions avoir une démonstration de l'effet fini (la vidéo est quand la moto n'était pas encore
Comment dessiner un cycle de lumière de tron

Comment dessiner un cycle de lumière de tron

Il s'agit de mon premier instuctable espérons qu'il vous plaira:)
Cycle de lumière patte

Cycle de lumière patte

fait maison supports fabriqués à partir de tubes en plastique pour les bassins.
Tron legacy cycle de lumière de dessin

Tron legacy cycle de lumière de dessin

il s'agit d'un tron legacy main libre dessin je l'ai fait !
Boostez votre Aerogarden avec 50 % plus de lumière et d’écoulement d’eau

Boostez votre Aerogarden avec 50 % plus de lumière et d’écoulement d’eau

l'Aerogarden est un jardin hydroponique dessus de comptoir. J'ai eu celui-ci pour plusieurs années et ont augmenté de fines herbes, piments jalapeno, tomates cerises et laitue dedans, mais il a laissé moi vouloir un bricolage plus approcher plutôt qu
Lumière de monocycle

Lumière de monocycle

Voici une belle façon simple mais robuste pour s'adapter à une lumière à votre Uni - lorsque les nuits dessinez dans ou pour l'équitation pendant la nuit.Permet le réglage à la fois vers le haut/bas et rotation.Aucun outil réel comme tel - cisaille p
Knex Tron Light Cycle

Knex Tron Light Cycle

un modèle d'une lumière cycle de Tron. J'ai aussi fait un cavalier de modèle pour le cycle de lumière.
Création de deux couleur imprime avec inkodye Lumi.

Création de deux couleur imprime avec inkodye Lumi.

Dans le premier instructable, nous avons abordé la manière de Lumi inkodyes permet de créer des images sur le tissu. Dans ce instructable, nous allons créer des images avec deux couleurs différentes.Étape 1: Choisissez votre tissuPeut-être vous avez
Boîte à lumière Message secret

Boîte à lumière Message secret

mon 7ème niveleuses aiment faire des choses et nous venons de recevoir une imprimante 3D, donc je suis venu avec ce projet lumière. C'est une petite boîte avec une conception découpée de l'intérieur, presque tout au long de. Lorsque vous brillez une
Raisons pour l’apnée du sommeil et sa Cure

Raisons pour l’apnée du sommeil et sa Cure

apnée du sommeil est un grand trouble du sommeil qui affectent votre respiration à plusieurs reprises, d'arrêter et de mises en chantier. Vous avez des apnées du sommeil Si vous ronflez bruyamment et se sentirez fatigué même après une nuit complète d
Guide d’éclairage et de chauffage du réservoir de reptile

Guide d’éclairage et de chauffage du réservoir de reptile

dans ce instructable, je vais essayer de faire un guide approfondi et complet pour les différents types de chauffage et l'éclairage des produits qui sont disponibles sur le marché des animaux de compagnie.Recueillir autant d'informations que possible
15 $ rêve d’interfaceur réalité, contrôler les objets dans le realworld de votre rêve lucide

15 $ rêve d’interfaceur réalité, contrôler les objets dans le realworld de votre rêve lucide

Avez-vous déjà souhaité obtenir le travail effectué dans les délais, que vous perdrez pas dormir ? Maintenant vous pouvez !Ce projet est essentiellement un masque hautement complexe rêve lucide qui détecte REM sleep au mouvement des yeux.Vous pouvez