防治腰疼提醒器

2018-12-241.2万
AI 快速预览详细 收起
防治腰疼提醒器是一种通过定时震动提醒使用者休息的设备,使用RTC_DS1307时间模块,每15分钟震动一次,帮助预防腰酸背痛。该设备适用于长时间坐或站的场景,简单有效。
坐或站时间久了,就会腰酸背痛,与其事后治疗,不如提前预防。

这个设备用了一个时间模块,来精确的在每15分钟后用一个震动电机来提醒使用者注意休息。

防治腰疼提醒器图1
防治腰疼提醒器图2
[mw_shl_code=applescript,true]/****made by gada888****/

#include <Wire.h>

#include "RTClib.h"

RTC_DS1307 rtc;

unsigned long timer;

unsigned long pumpTimeOn = 60000; //1 min in milliseconds

unsigned long pumpTimeOff = 900000; //15 min in milliseconds

boolean pumpState = 1;

int pumpPin = 7;

void setup () {

Serial.begin(57600);

#ifdef AVR

Wire.begin();

#else

Wire1.begin();

#endif

rtc.begin();

if (! rtc.isrunning()) {

Serial.println("RTC is NOT running!");


rtc.adjust(DateTime(2014,12,16,12,52,0));


}



pinMode(pumpPin, OUTPUT);



timer = millis();

}

void loop () {

if(pumpState == 1){

digitalWrite(pumpPin, HIGH);

unsigned long currentMillis = millis();

if(currentMillis >= (timer + pumpTimeOn)){

pumpState = 0;

Serial.println("the pump is now off at this time:");

printCurrentTime();

timer = millis();

}

}

if(pumpState == 0){

digitalWrite(pumpPin, LOW);

unsigned long currentMillis = millis();

if(currentMillis >= (timer + pumpTimeOff)){

pumpState = 1;

Serial.println("the pump is now on at this time:");

printCurrentTime();

timer = millis();

}

}

//delay(3000);

}

void printCurrentTime(){

DateTime now = rtc.now();

Serial.print(now.year(), DEC);

Serial.print('/');

Serial.print(now.month(), DEC);

Serial.print('/');

Serial.print(now.day(), DEC);

Serial.print(' ');

Serial.print(now.hour(), DEC);

Serial.print(':');

Serial.print(now.minute(), DEC);

Serial.print(':');

Serial.print(now.second(), DEC);

Serial.println();

Serial.print(" since midnight 1/1/1970 = ");

Serial.print(now.unixtime());

Serial.print("s = ");

Serial.print(now.unixtime() / 86400L);

Serial.println("d");

// calculate a date which is 7 days and 30 seconds into the future

DateTime future (now.unixtime() + 7 * 86400L + 30);

Serial.print(" now ");

Serial.print(future.year(), DEC);

Serial.print('/');

Serial.print(future.month(), DEC);

Serial.print('/');

Serial.print(future.day(), DEC);

Serial.print(' ');

Serial.print(future.hour(), DEC);

Serial.print(':');

Serial.print(future.minute(), DEC);

Serial.print(':');

Serial.print(future.second(), DEC);

Serial.println();

Serial.println();

}[/mw_shl_code]

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(2)
gada888
gada888
作者
编辑器里找到,这个是代码插入
20060606
20060606
代码怎么插入的
- 没有更多了 -