![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Alarm
Dependencies: mbed HTTPClient mbed-rtos 4DGL-uLCD-SE NTPClient EthernetInterface
alarm.h@0:070d52cbaed0, 2020-12-16 (annotated)
- Committer:
- conormoloney
- Date:
- Wed Dec 16 18:52:50 2020 +0000
- Revision:
- 0:070d52cbaed0
- Child:
- 1:2dcc0acbaa0b
Alarm
Who changed what in which revision?
User | Revision | Line number | New 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 |