Bon après-midi Je m'appelle Nikita Sergeevich, j'ai 14 ans et dans ce post, je veux vous parler de l'appareil (et de l'application) que j'ai développé il y a six mois, car l'appareil fini a été soudé et assemblé par mon père. Bien que vous ayez peut-être vu un tel appareil plus d'une fois, cela ne me dérange pas.
Tout cela a été créé pour allumer et éteindre automatiquement la lumière dans le poulailler, mais également applicable à d'autres fins.


L'appareil fini et assemblé peut envoyer à la broche numérique spécifiée arduino 1 ou 0 dans la période de et à l'heure spécifiée, jusqu'à exactement minutes (en dehors de la période, la valeur opposée à celle spécifiée dans l'application lors de l'ajout d'une minuterie est fournie).
Tous les paramètres sont indiqués dans l'application. Mais d'ici plus en détail ...
Il existe une application pour Android dans laquelle vous devez vous connecter au module Bluetooth et ajouter une minuterie. L'application est intuitive et je pense qu'elle ne posera aucun problème.


Le fichier .apk sera dans le dossier de ce projet.
Éléments requis:
- arduino;
- module rtc ds1307;
- module Bluetooth HC-05;
- éléments de connexion (par exemple fils);
- firmware pour arduino; le croquis est compliqué à mon avis et il vaut mieux ne pas entrer dans les détails.
- application pour android;
Nous traitons Arduino et les plug-ins.
Oui, paragraphes 1-4:

arduino - hc-05 5v - vcc gnd - gnd TX1 - RXD RX0 - TXD arduino - ds1307 5v - 5v gnd - gnd A5 - scl A4 - sda
N'oubliez pas de déconnecter la broche RX0 de l'arduino lors du chargement du croquis. Vous avez dit croquis?
5. Croquis au studio:
#include <Wire.h> // i2c #include <iarduino_RTC.h> // rtc ( c, (Timer->firmware_for_timer->iarduino_RTC)) #include <EEPROM.h> // iarduino_RTC time(RTC_DS1307); // int values; // unsigned int to_minutes(unsigned int hours, unsigned int minutes)// { return (60*hours)+minutes; } void setup() { time.begin(); // Serial.begin(9600); // } void loop() { if(Serial.available() > 0) // - { values = Serial.read(); time.settime(0,-1, values); // delay(50); values = Serial.read(); time.settime(0, values); // delay(50); // for (int i = 0 ; i < EEPROM.length() ; i++) { EEPROM.write(i, 0); } ////////////////////////////////// values = Serial.read(); delay(50); // , while (values > 0) // { for(int i = 0; i < 7; ++i) { EEPROM.write(EEPROM.read(EEPROM.length() - 1) * 7 + i, Serial.read()); delay(50); } EEPROM.write(EEPROM.length() - 1, EEPROM.read(EEPROM.length() - 1) + 1); values = Serial.read(); delay(50); } ///////////////////////////////////////// } // for(int i = 0; i < EEPROM.read(EEPROM.length() - 1); ++i) { if(EEPROM.read(i * 7 + 0) == 1) // { bool find = 0; // time.gettime(); if((to_minutes(EEPROM.read(i * 7 + 1), EEPROM.read(i * 7 + 2)) <= to_minutes(time.Hours, time.minutes)) && // (to_minutes(EEPROM.read(i * 7 + 3), EEPROM.read(i * 7 + 4)) > to_minutes(time.Hours, time.minutes))) { pinMode(EEPROM.read(i * 7 + 5), OUTPUT); // digitalWrite(EEPROM.read(i * 7 + 5), EEPROM.read(i * 7 + 6)); // } else // { // for (int j = 0; j < EEPROM.read(EEPROM.length() - 1); ++j) { if(EEPROM.read(i * 7 + 5) == EEPROM.read(j * 7 + 5) && (i != j) && (EEPROM.read(j * 7 + 0) == 1)) { // if((to_minutes(EEPROM.read(j * 7 + 1), EEPROM.read(j * 7 + 2)) <= to_minutes(time.Hours, time.minutes)) && (to_minutes(EEPROM.read(j * 7 + 3), EEPROM.read(j * 7 + 4)) > to_minutes(time.Hours, time.minutes))) // { pinMode(EEPROM.read(i * 7 + 5), OUTPUT); // digitalWrite(EEPROM.read(i * 7 + 5), EEPROM.read(j * 7 + 6)); // find = 1; // } } } if(find == 0) // { pinMode(EEPROM.read(i * 7 + 5), OUTPUT); // digitalWrite(EEPROM.read(i * 7 + 5), !EEPROM.read(i * 7 + 6)); // } } } } }
Mais tout cela sans application sera froid et immobile comme une pierre, alors continuez.
6.
L'application est intuitive et je pense qu'elle ne posera aucun problème.
Mais il vaut mieux le comprendre tout de suite. Lorsque vous entrez pour la première fois dans l'application, vous devrez vous connecter au module Bluetooth, pour cela, cliquez sur "synchroniser l'appareil"
et sélectionnez notre module. Avec la case à cocher «se connecter automatiquement», le téléphone lui-même tentera de se connecter au module Bluetooth lorsque l'application est ouverte (cette puce a été prise à partir d'Alex Gyver). «Timers» est une liste de tous les temporisateurs et leur recherche par nom. Cliquer sur le nom de la minuterie ouvre l'écran de modification de cette minuterie. Ici (où la liste des minuteries) est situé dans le coin inférieur droit "+" en cliquant sur lequel l'écran d'ajout de minuteur s'ouvre, où il est indiqué:
- son nom
- à partir de quelle heure (heures minutes)
- quelle heure (heures minutes)
- broche contrôlée
- valeur pour lui
- et l'état (Arduino l'allumera ou s'éteindra au bon moment).
Archives du projet;Il y a une application.
À ce sujet, je tiens à vous remercier de votre attention et à dire que si vous trouvez des montants ou des bugs - n'hésitez pas à écrire à ce sujet, nous le corrigerons.