Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Réveillez-moi!

Composants et fournitures

Arduino Nano R3
× 1
Module périphérique intégré maximum DS3231MPMB1
× 1

À propos de ce projet

L'hiver arrive, les nuits deviennent plus longues que les jours, et c'est un cauchemar pour moi de me réveiller à 6h du matin dans une pièce sombre et froide. Et s'il existait un moyen de créer un « lever de soleil » artificiel pour rendre la pièce beaucoup plus chaleureuse et agréable ?

C'est une tâche facile, je vais créer une ampoule intelligente qui s'intègre dans mon plafonnier actuel. Il simulera un lever de soleil en éclairant lentement la pièce. Si cela fonctionne, je vais le connecter à mon téléphone pour en faire un bon réveil.

Ampoule

Pour créer une ampoule intelligente, vous avez d'abord besoin d'une ampoule « muette » en raison de sa douille qui est vissée dans la lampe et fournit l'alimentation électrique. Je l'ai écrasé avec un marteau. Cette procédure de délice a retiré le verre de la douille en aluminium et après avoir soudé les fils à la douille et à la broche en bas, la base de l'ampoule intelligente était prête.

Ensuite, vous avez besoin d'un support pour toute l'électronique. J'ai utilisé une carte perforée et je l'ai coupée pour l'adapter à un microcontrôleur Arduino Nano, une alimentation 5V et tous les composants électroniques.

Circuit haute tension

Avertissement de sécurité : Vous travaillez avec des tensions supérieures à 50V. Le contact avec la haute tension peut entraîner des blessures graves ou la mort.

Étant donné que j'utilise une ampoule ordinaire qui est alimentée par une tension secteur, je ne peux pas utiliser directement le microcontrôleur pour contrôler l'alimentation de l'ampoule. J'ai besoin d'un TRIAC. Ce petit appareil agit comme un relais qui peut s'allumer et s'éteindre assez rapidement. Le microcontrôleur allumera et éteindra le triac afin de modifier l'onde sinusoïdale AC, atténuant ou éclaircissant ainsi la lumière.

Cependant, la tension alternative est contrôlée différemment de la tension continue. L'onde sinusoïdale CA doit être coupée de manière précise et le triac doit donc être allumé et éteint à des moments précis pour y parvenir (voir l'image ci-dessous). En d'autres termes, le microcontrôleur a besoin de savoir quand l'onde sinusoïdale de la tension secteur passe par zéro pour couper chacune des demi-ondes à la même taille. Sinon, la lumière vacillerait.

Pour détecter le passage par zéro de la tension secteur, il existe un optocoupleur 4N35 (U1) avec un transistor qui s'allume lorsque l'onde sinusoïdale passe par zéro. Le microcontrôleur verra cela comme un signal haut sur sa broche d'entrée. L'optocoupleur a une autre fonction, c'est d'isoler la basse tension du circuit de tension secteur.

Le deuxième optocoupleur - MOC3063 (U2) - avec un triac en sortie est utilisé pour isoler le microcontrôleur du triac haute tension (Q2). Assurez-vous que vous n'utilisez pas d'optocoupleur avec fonction de passage par zéro, car il ne s'allume que lorsque l'onde sinusoïdale passe par zéro.

Circuit basse tension

En tant que microcontrôleur, j'utilise Arduino Nano. Son objectif principal est de contrôler le triac et de commencer à allumer la lumière lorsque l'heure définie arrive. Pour fournir une horloge en temps réel, il existe un module d'horloge en temps réel précis DS3231 qui préserve également le temps en cas de panne de courant.

Pour le fournisseur 5V pour les puces, j'utilise une alimentation abaisseur 5V 700mA bon marché connectée à la tension secteur de la douille d'ampoule. Solution sympa et pratique !

Code

Le programme est assez simple. Lorsque la lampe est alimentée par l'interrupteur, elle éclaire la pièce et l'atténue lentement dans la nuit pour vérifier que l'électronique fonctionne toujours. Pendant la nuit, il vérifie l'horloge en temps réel stockée dans le module DS3231 et enfin à 6 heures du matin, la pièce s'éclaire lentement jusqu'à la pleine "lumière du jour" jusqu'à ce que la lampe soit éteinte par l'interrupteur.

Consultez le code ci-dessous, je pense qu'il se passe d'explications. Si ce n'est pas le cas, je suis un mauvais développeur !

Quelle est la prochaine étape ?

Maintenant je vais expérimenter pendant quelques jours ou semaines et si ça peut me réveiller le matin je ferai évoluer ce projet en quelque chose de plus intelligent et moins brut !

Bonne nuit !

Code

  • lightalarm.ino
lightalarm.inoArduino
Une ampoule intelligente qui s'allume lorsqu'il est temps de sortir de votre lit.
/*Une ampoule intelligente qui s'allume lorsqu'il est temps de sortir de votre lit.Comment ça marche :1) lorsque l'alimentation est allumée , la lumière est allumée pour vérifier qu'elle fonctionne2) elle s'éteint lentement jusqu'à ce qu'elle s'éteigne complètement3) à 6 heures du matin la lumière s'allumera lentement jusqu'à ce qu'elle s'éteigne le soir4) la lumière ne s'allumera pas lorsque la pièce n'est pas sombre plus (cellule photoélectrique)Comment utiliser:- allumez la lumière en vous couchant et elle éclairera la pièce lorsque vous vous réveillerez le matin, éteignez la lumière en quittant la pièce pour l'éteindre.- le temps sera préservé en raison au module DS3231@author Jiri Praus (https://twitter.com/jipraus)AC Light control inspiré de http://arduinotehniq.blogspot.com/2014/10/ac-light-dimmer-with-arduino.html* /#include  // disponible sur http://www.arduino.cc/playground/Code/#include "RTClib.h"#define TRIAC_PIN 2#define ZERO_CROSS_PIN 3#define LIGHT_SENSOR_PIN A6#define FREQUENCY_STEP 75 // Il s'agit du pas de retard par luminosité en microsecondes pour 50 Hz (changez la valeur en 65 pour 60 Hz)#define CHANGE_DIM_LEVEL_EVERY 1 // changez le niveau de gradation toutes les N secondes, la lenteur de l'éclairage/de la gradation#define MAX_DIM_LEVEL 128 // off# définir MIN_DIM_LEVEL 0 // on#define DARK_THRESHOLD 300 // résistance de la cellule photoélectrique lorsqu'il fait sombre à l'extérieur // variables de contrôle triac octet volatile triacCounter =0; // contrôle triac timerovatile booléen zeroCrossed =false; // Indicateur de passage par zéro de la phase AC // dim controlbyte dimLevel =MIN_DIM_LEVEL; // à la mise sous tension, la lumière est allumée et s'éteint lentement comme un checkboolean lightOn =false;// réveilRTC_DS3231 rtc;void setup() { Serial.begin(115200); digitalWrite(TRIAC_PIN, LOW); pinMode(TRIAC_PIN, SORTIE); pinMode(ZERO_CROSS_PIN, INPUT); pinMode(LIGHT_SENSOR_PIN, INPUT); // initialise l'horloge en temps réel if (!rtc.begin()) { Serial.println("Impossible de trouver RTC"); tandis que (1); } if (rtc.lostPower()) { Serial.println("RTC a perdu l'alimentation, définissons l'heure !"); rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // la ligne suivante définit le RTC sur la date et l'heure de compilation de cette esquisse } // initialise les interruptions et les minuteries pour le contrôle du triac noInterrupts(); attachInterrupt(digitalPinToInterrupt(ZERO_CROSS_PIN), zeroCrossDetected, RISING); // Attachez une interruption à la broche 2 (interruption 0) pour les interruptions de détection de croisement zéro (); Timer1.initialize(FREQUENCY_STEP); Timer1.attachInterrupt(triacTimerInterrupt, FREQUENCY_STEP);}boucle vide() { delay(CHANGE_DIM_LEVEL_EVERY * 1000); checkAlarmClock(); ajusterDimLevel(); debugPrint();}void zeroCrossDetected() { zeroCrossed =true; // définit le booléen sur true pour indiquer à notre fonction de gradation qu'un croisement par zéro s'est produit triacCounter =0; // commence à compter quand le triac doit être ouvert digitalWrite(TRIAC_PIN, LOW); // éteint la lumière}void triacTimerInterrupt() { if (dimLevel>=MAX_DIM_LEVEL) { // définitivement éteint digitalWrite(TRIAC_PIN, LOW); } else if (dimLevel <=MIN_DIM_LEVEL) { // en permanence sur digitalWrite(TRIAC_PIN, HIGH); } else if (zeroCrossed) { if (triacCounter>=dimLevel) { digitalWrite(TRIAC_PIN, HIGH); // ouvrir le triac zeroCrossed =false; // réinitialiser la détection de croisement à zéro jusqu'à la prochaine moitié de vawe } else { triacCounter ++; // incrémente le compteur de pas de temps } }}void AdjustDimLevel() { if (lightOn &&dimLevel> MIN_DIM_LEVEL) { dimLevel--; } else if (!lightOn &&dimLevel  

Schémas


Processus de fabrication

  1. piles de série
  2. Diviseur de tension
  3. Thermoélectricité
  4. Voltmètre potentiométrique
  5. Batterie pomme de terre
  6. Déphasage
  7. Régulateur de tension
  8. Suiveur de tension
  9. diodes spéciales