Alarm

Dependencies:   mbed HTTPClient mbed-rtos 4DGL-uLCD-SE NTPClient EthernetInterface

Committer:
conormoloney
Date:
Wed Dec 16 18:52:50 2020 +0000
Revision:
0:070d52cbaed0
Child:
1:2dcc0acbaa0b
Alarm

Who changed what in which revision?

UserRevisionLine numberNew contents of line
conormoloney 0:070d52cbaed0 1
conormoloney 0:070d52cbaed0 2 #include "mbed.h"
conormoloney 0:070d52cbaed0 3 #include "EthernetInterface.h"
conormoloney 0:070d52cbaed0 4 #include "NTPClient.h"
conormoloney 0:070d52cbaed0 5
conormoloney 0:070d52cbaed0 6 #define VOLUME 1
conormoloney 0:070d52cbaed0 7
conormoloney 0:070d52cbaed0 8 Serial pc(USBTX, USBRX);
conormoloney 0:070d52cbaed0 9
conormoloney 0:070d52cbaed0 10 // Parameters
conormoloney 0:070d52cbaed0 11 char* domain_name = "us.pool.ntp.org";
conormoloney 0:070d52cbaed0 12 int port_number = 123;
conormoloney 0:070d52cbaed0 13
conormoloney 0:070d52cbaed0 14 // Networking
conormoloney 0:070d52cbaed0 15 EthernetInterface eth;
conormoloney 0:070d52cbaed0 16 NTPClient ntpClient;
conormoloney 0:070d52cbaed0 17
conormoloney 0:070d52cbaed0 18 //Pins
conormoloney 0:070d52cbaed0 19 PwmOut pwm_pin(p21);
conormoloney 0:070d52cbaed0 20 DigitalIn button(p8);
conormoloney 0:070d52cbaed0 21 BusOut LEDS(LED1,LED2,LED3,LED4);
conormoloney 0:070d52cbaed0 22
conormoloney 0:070d52cbaed0 23
conormoloney 0:070d52cbaed0 24
conormoloney 0:070d52cbaed0 25 // Plays a sound with the defined frequency, duration, and volume
conormoloney 0:070d52cbaed0 26 void playNote(float frequency, float duration, float volume) {
conormoloney 0:070d52cbaed0 27 pwm_pin.period(1.0/frequency);
conormoloney 0:070d52cbaed0 28 pwm_pin = volume/2.0;
conormoloney 0:070d52cbaed0 29 wait(duration);
conormoloney 0:070d52cbaed0 30 pwm_pin = 0.0;
conormoloney 0:070d52cbaed0 31 }
conormoloney 0:070d52cbaed0 32
conormoloney 0:070d52cbaed0 33 void soundalarm()
conormoloney 0:070d52cbaed0 34 {
conormoloney 0:070d52cbaed0 35 time_t ctTime;
conormoloney 0:070d52cbaed0 36 eth.init();
conormoloney 0:070d52cbaed0 37 eth.connect();
conormoloney 0:070d52cbaed0 38
conormoloney 0:070d52cbaed0 39
conormoloney 0:070d52cbaed0 40 pc.printf("IP address is \n%s\n\n",eth.getIPAddress());
conormoloney 0:070d52cbaed0 41 wait(1);
conormoloney 0:070d52cbaed0 42
conormoloney 0:070d52cbaed0 43 char* domainName="0.uk.pool.ntp.org";
conormoloney 0:070d52cbaed0 44
conormoloney 0:070d52cbaed0 45
conormoloney 0:070d52cbaed0 46 // Read time from server
conormoloney 0:070d52cbaed0 47 pc.printf("Reading time...\n\r");
conormoloney 0:070d52cbaed0 48 ntpClient.setTime(domainName,123,0x00005000);
conormoloney 0:070d52cbaed0 49 char buffer[80];
conormoloney 0:070d52cbaed0 50 wait(2);
conormoloney 0:070d52cbaed0 51 eth.disconnect();
conormoloney 0:070d52cbaed0 52 ctTime = time(NULL);
conormoloney 0:070d52cbaed0 53 pc.printf("Alarm began on\n");
conormoloney 0:070d52cbaed0 54 strftime(buffer, 80, " %a %b %d\n %T %p %z\n %Z\n", \
conormoloney 0:070d52cbaed0 55 localtime(&ctTime));
conormoloney 0:070d52cbaed0 56 pc.printf(" UTC/GMT:\n%s", buffer);
conormoloney 0:070d52cbaed0 57
conormoloney 0:070d52cbaed0 58 // Loop
conormoloney 0:070d52cbaed0 59 while((button==1))
conormoloney 0:070d52cbaed0 60 {
conormoloney 0:070d52cbaed0 61 playNote(960,1.2,VOLUME);
conormoloney 0:070d52cbaed0 62 LEDS=0x0F;
conormoloney 0:070d52cbaed0 63 wait(0.1);
conormoloney 0:070d52cbaed0 64 playNote(770,1.2,VOLUME);
conormoloney 0:070d52cbaed0 65 LEDS=0;
conormoloney 0:070d52cbaed0 66 }
conormoloney 0:070d52cbaed0 67
conormoloney 0:070d52cbaed0 68 pc.printf("Alarm stopped on\n");
conormoloney 0:070d52cbaed0 69 ctTime = time(NULL);
conormoloney 0:070d52cbaed0 70 strftime(buffer, 80, " %a %b %d\n %T %p %z\n %Z\n", \
conormoloney 0:070d52cbaed0 71 localtime(&ctTime));
conormoloney 0:070d52cbaed0 72 pc.printf(" UTC/GMT:\n%s", buffer);
conormoloney 0:070d52cbaed0 73 }
conormoloney 0:070d52cbaed0 74
conormoloney 0:070d52cbaed0 75
conormoloney 0:070d52cbaed0 76
conormoloney 0:070d52cbaed0 77
conormoloney 0:070d52cbaed0 78
conormoloney 0:070d52cbaed0 79