下午好 我叫Nikita Sergeevich,今年14岁,在这篇文章中,我想向您介绍我半年前开发的设备(和应用),因为成品设备是由父亲焊接和组装的。 尽管您可能不止一次看到过这样的设备,但是它并没有打扰我。
所有这些都是为了自动打开和关闭鸡舍中的灯而创建的,也可用于其他目的。


成品和组装后的设备可以在从指定的时间到指定的时间(精确到分钟)内发送到指定的数字引脚arduino 1或0(在该时段之外,提供与添加计时器时应用程序中指定的值相反的值)。
所有参数均在应用程序中指示。 但是从这里更详细...
有一个适用于android的应用程序,您需要在其中连接到蓝牙模块并添加计时器。 该应用程序很直观,我认为它不会有任何问题。


.apk文件将位于该项目的文件夹中。
必填项:
- arduino;
- rtc模块ds1307;
- 蓝牙模块HC-05;
- 连接元件(例如电线);
- arduino固件; 我认为草图很复杂,最好不要详细介绍。
- 适用于android的应用程序;
我们处理arduino和插件。
是的,第1-4段:

arduino - hc-05 5v - vcc gnd - gnd TX1 - RXD RX0 - TXD arduino - ds1307 5v - 5v gnd - gnd A5 - scl A4 - sda
加载草图时,不要忘记断开arduino上的RX0引脚。 你说素描吗?
5.素描到工作室:
#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)); // } } } } }
但是,所有这些无需应用的操作将像石头一样寒冷而静止,因此继续前进。
6。
该应用程序很直观,我认为它不会有任何问题。
但是最好立即解决。 首次进入应用程序时,需要连接到蓝牙模块,为此,请单击“同步设备”
然后选择我们的模块 选中“自动连接”复选框,打开应用程序时手机本身将尝试连接至蓝牙模块(此芯片取自Alex gyver)“计时器”是所有计时器及其名称搜索的列表。 单击计时器名称将打开用于更改该计时器的屏幕。 单击此处(添加计时器屏幕),在此处(计时器列表的位置)位于右下角“ +”,其中指示:
- 他的名字
- 从什么时间开始(小时分钟)
- 什么时间(小时分钟)
- 受控引脚
- 对他有价值
- 和状态(arduino将在正确的时间打开或关闭它)。
项目档案;有一个应用程序。
关于这一点,我要感谢您的关注,并说,如果发现任何侧钉或错误-随时写一下,我们将修复它。