The final project of Embedde class.

Dependencies:   C12832 LM75B ESP-call MMA7660

Committer:
pkr7098
Date:
Thu Jun 03 07:09:55 2021 +0000
Revision:
2:37756b51ccdb
Parent:
1:ed1c6618f739
The final project of Embedde class.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pkr7098 1:ed1c6618f739 1 #include "LM75B.h"
pkr7098 1:ed1c6618f739 2 #include "MMA7660.h"
pkr7098 1:ed1c6618f739 3
pkr7098 1:ed1c6618f739 4 #include "APPLICATION.h"
pkr7098 1:ed1c6618f739 5 #include "PAGE.h"
pkr7098 1:ed1c6618f739 6 #include "WEB.h"
pkr7098 1:ed1c6618f739 7
pkr7098 1:ed1c6618f739 8 #include "ESP-call.h"
pkr7098 1:ed1c6618f739 9
pkr7098 1:ed1c6618f739 10 // Values define =========================================================================================================
dshin 0:f31836d48420 11
pkr7098 1:ed1c6618f739 12 LM75B temp(D14, D15);
pkr7098 1:ed1c6618f739 13 Thread _application;
pkr7098 1:ed1c6618f739 14 char ledState[11] = "Device";
pkr7098 1:ed1c6618f739 15 char ledColor[11] = " ";
dshin 0:f31836d48420 16
pkr7098 1:ed1c6618f739 17 // Functions prototype =========================================================================================================
pkr7098 1:ed1c6618f739 18
pkr7098 1:ed1c6618f739 19 void ledChangeColor(unsigned short i);
pkr7098 1:ed1c6618f739 20 void wifiInitValues(void);
pkr7098 1:ed1c6618f739 21 void application(void);
pkr7098 1:ed1c6618f739 22
pkr7098 1:ed1c6618f739 23 // Main function =========================================================================================================
dshin 0:f31836d48420 24
dshin 0:f31836d48420 25 int main()
dshin 0:f31836d48420 26 {
pkr7098 1:ed1c6618f739 27 applicationInit();
pkr7098 1:ed1c6618f739 28 lcdShowInitDevicePage(1);
pkr7098 1:ed1c6618f739 29
pkr7098 1:ed1c6618f739 30
pkr7098 1:ed1c6618f739 31 lcdShowTryToConnectPage(1);
pkr7098 1:ed1c6618f739 32 lcdShowLoadingSimbolStart(0, 20);
pkr7098 1:ed1c6618f739 33 wifiConnectToAP();
pkr7098 1:ed1c6618f739 34 wifiGetIpAddress();
pkr7098 1:ed1c6618f739 35 lcdShowLoadingSimbolTerminate();
pkr7098 1:ed1c6618f739 36
pkr7098 1:ed1c6618f739 37 _lcd.cls();
pkr7098 1:ed1c6618f739 38 _lcd.locate(0, 0);
pkr7098 1:ed1c6618f739 39 _lcd.printf("Generating web site");
pkr7098 1:ed1c6618f739 40 lcdShowMyIPPage(0);
pkr7098 1:ed1c6618f739 41 lcdShowLoadingSimbolStart(0, 20);
pkr7098 1:ed1c6618f739 42 wifiInitValues();
pkr7098 1:ed1c6618f739 43 webCreateHtmlDoc();
pkr7098 1:ed1c6618f739 44 webDisplayWebsite();
pkr7098 1:ed1c6618f739 45 wifiInitServer();
pkr7098 1:ed1c6618f739 46 timerInit();
pkr7098 1:ed1c6618f739 47 lcdShowLoadingSimbolTerminate();
pkr7098 1:ed1c6618f739 48
pkr7098 1:ed1c6618f739 49 _lcd.cls();
pkr7098 1:ed1c6618f739 50 _application.start(application);
pkr7098 1:ed1c6618f739 51
pkr7098 1:ed1c6618f739 52 wifiInitReceiveData();
pkr7098 1:ed1c6618f739 53 while(true) {
pkr7098 1:ed1c6618f739 54 }
pkr7098 1:ed1c6618f739 55
pkr7098 1:ed1c6618f739 56 }
pkr7098 1:ed1c6618f739 57
pkr7098 1:ed1c6618f739 58 // Functions define =========================================================================================================
pkr7098 1:ed1c6618f739 59
pkr7098 1:ed1c6618f739 60 void application(void)
pkr7098 1:ed1c6618f739 61 {
dshin 0:f31836d48420 62 while (true) {
pkr7098 1:ed1c6618f739 63 float temperature = temp.read();
pkr7098 1:ed1c6618f739 64 lcdShowMyIPPage(0);
pkr7098 1:ed1c6618f739 65
pkr7098 1:ed1c6618f739 66 semaphoreTimer.acquire();
pkr7098 1:ed1c6618f739 67 lcdShowDaytime(0);
pkr7098 1:ed1c6618f739 68 wifiGenerateValueI("timeHour", timerHour);
pkr7098 1:ed1c6618f739 69 wifiGenerateValueI("timeMinute", timerMinute);
pkr7098 1:ed1c6618f739 70 wifiGenerateValueI("timeSecond", timerSecond);
pkr7098 1:ed1c6618f739 71 semaphoreTimer.release();
pkr7098 1:ed1c6618f739 72
pkr7098 1:ed1c6618f739 73 semaphoreAlarmData.acquire();
pkr7098 1:ed1c6618f739 74 lcdShowAlerttime(0);
pkr7098 1:ed1c6618f739 75 wifiGenerateValueI("alarmHour", alarmHour);
pkr7098 1:ed1c6618f739 76 wifiGenerateValueI("alarmMinute", alarmMinute);
pkr7098 1:ed1c6618f739 77 wifiGenerateValueI("alarmSecond", alarmSecond);
pkr7098 1:ed1c6618f739 78 semaphoreAlarmData.release();
pkr7098 1:ed1c6618f739 79
pkr7098 1:ed1c6618f739 80 wifiGenerateValueF("temperature", temperature);
pkr7098 1:ed1c6618f739 81 wifiGenerateValueS("temperatureUnit", "C");
pkr7098 1:ed1c6618f739 82
pkr7098 1:ed1c6618f739 83 wifiGenerateValueS("ledState", ledState);
pkr7098 1:ed1c6618f739 84 wifiGenerateValueS("ledColor", ledColor);
pkr7098 1:ed1c6618f739 85
pkr7098 1:ed1c6618f739 86 semaphoreModify.acquire();
pkr7098 1:ed1c6618f739 87 _lcd.locate(0, 0);
pkr7098 1:ed1c6618f739 88 if(MODE_MODIFY_TIME == UNABLE_TO_MODIFY_TIME) {
pkr7098 1:ed1c6618f739 89 semaphoreModify.release();
pkr7098 1:ed1c6618f739 90 _lcd.characterI(0, 0, 'T');
pkr7098 1:ed1c6618f739 91 wifiGenerateValueS("timeState", "Fixed");
pkr7098 1:ed1c6618f739 92 } else {
pkr7098 1:ed1c6618f739 93 semaphoreModify.release();
pkr7098 1:ed1c6618f739 94 _lcd.putc('T');
pkr7098 1:ed1c6618f739 95 wifiGenerateValueS("timeState", "Changeable");
pkr7098 1:ed1c6618f739 96 }
pkr7098 1:ed1c6618f739 97
pkr7098 1:ed1c6618f739 98
pkr7098 1:ed1c6618f739 99 semaphoreAlarmData.acquire();
pkr7098 1:ed1c6618f739 100 _lcd.locate(9, 0);
pkr7098 1:ed1c6618f739 101 if(alarmState == ALARM_ENABLED) {
pkr7098 1:ed1c6618f739 102 semaphoreAlarmData.release();
pkr7098 1:ed1c6618f739 103 _lcd.putc('A');
pkr7098 1:ed1c6618f739 104 wifiGenerateValueS("alarmState", "Enabled");
pkr7098 1:ed1c6618f739 105 } else {
pkr7098 1:ed1c6618f739 106 semaphoreAlarmData.release();
pkr7098 1:ed1c6618f739 107 _lcd.characterI(9, 0, 'A');
pkr7098 1:ed1c6618f739 108 wifiGenerateValueS("alarmState", "Disabled");
pkr7098 1:ed1c6618f739 109 }
pkr7098 1:ed1c6618f739 110 semaphoreAlarmData.release();
pkr7098 1:ed1c6618f739 111 ledChangeColor(potValueU16(POT_LEFT));
pkr7098 1:ed1c6618f739 112 _lcd.locate(60, 0);
pkr7098 1:ed1c6618f739 113 _lcd.printf("%.2fC", temperature);
pkr7098 1:ed1c6618f739 114 thread_sleep_for(100);
dshin 0:f31836d48420 115 }
pkr7098 1:ed1c6618f739 116 }
pkr7098 1:ed1c6618f739 117
pkr7098 1:ed1c6618f739 118 void wifiInitValues(void)
pkr7098 1:ed1c6618f739 119 {
pkr7098 1:ed1c6618f739 120 wifiGenerateValueS("timeState", " ");
pkr7098 1:ed1c6618f739 121 wifiGenerateValueI("timeHour", 0);
pkr7098 1:ed1c6618f739 122 wifiGenerateValueI("timeMinute", 12);
pkr7098 1:ed1c6618f739 123 wifiGenerateValueI("timeSecond", 20);
pkr7098 1:ed1c6618f739 124
pkr7098 1:ed1c6618f739 125 wifiGenerateValueS("alarmState", " ");
pkr7098 1:ed1c6618f739 126 wifiGenerateValueI("alarmHour", 0);
pkr7098 1:ed1c6618f739 127 wifiGenerateValueI("alarmMinute", 12);
pkr7098 1:ed1c6618f739 128 wifiGenerateValueI("alarmSecond", 20);
pkr7098 1:ed1c6618f739 129
pkr7098 1:ed1c6618f739 130 wifiGenerateValueF("temperature", 0.0);
pkr7098 1:ed1c6618f739 131 wifiGenerateValueS("temperatureUnit", "C");
pkr7098 1:ed1c6618f739 132
pkr7098 1:ed1c6618f739 133 wifiGenerateValueS("ledState", " ");
pkr7098 1:ed1c6618f739 134 wifiGenerateValueS("ledColor", " ");
pkr7098 1:ed1c6618f739 135 }
pkr7098 1:ed1c6618f739 136
pkr7098 1:ed1c6618f739 137
pkr7098 1:ed1c6618f739 138 void ledChangeColor(unsigned short i)
pkr7098 1:ed1c6618f739 139 {
pkr7098 1:ed1c6618f739 140 strcpy(ledState, "Device");
pkr7098 1:ed1c6618f739 141 if(0 <= i && i < 0xFFFF / 8) {
pkr7098 1:ed1c6618f739 142 ledSetColor(0, 0, 0);
pkr7098 1:ed1c6618f739 143 strcpy(ledColor, "Black");
pkr7098 1:ed1c6618f739 144 } else if(0xFFFF / 8 <= i && i < (0xFFFF / 8) * 2) {
pkr7098 1:ed1c6618f739 145 ledSetColor(1, 0, 0);
pkr7098 1:ed1c6618f739 146 strcpy(ledColor, "Red");
pkr7098 1:ed1c6618f739 147 } else if((0xFFFF / 8) * 2 <= i && i < (0xFFFF / 8) * 3) {
pkr7098 1:ed1c6618f739 148 ledSetColor(0, 1, 0);
pkr7098 1:ed1c6618f739 149 strcpy(ledColor, "Lime");
pkr7098 1:ed1c6618f739 150 } else if((0xFFFF / 8) * 3 <= i && i < (0xFFFF / 8) * 4) {
pkr7098 1:ed1c6618f739 151 ledSetColor(0, 0, 1);
pkr7098 1:ed1c6618f739 152 strcpy(ledColor, "Blue");
pkr7098 1:ed1c6618f739 153 } else if((0xFFFF / 8) * 4 <= i && i < (0xFFFF / 8) * 5) {
pkr7098 1:ed1c6618f739 154 ledSetColor(1, 1, 0);
pkr7098 1:ed1c6618f739 155 strcpy(ledColor, "Yellow");
pkr7098 1:ed1c6618f739 156 } else if((0xFFFF / 8) * 5 <= i && i < (0xFFFF / 8) * 6) {
pkr7098 1:ed1c6618f739 157 ledSetColor(0, 1, 1);
pkr7098 1:ed1c6618f739 158 strcpy(ledColor, "Cyan");
pkr7098 1:ed1c6618f739 159 } else if((0xFFFF / 8) * 6 <= i && i < (0xFFFF / 8) * 7) {
pkr7098 1:ed1c6618f739 160 ledSetColor(1, 0, 1);
pkr7098 1:ed1c6618f739 161 strcpy(ledColor, "Fuchsia");
pkr7098 1:ed1c6618f739 162 } else if((0xFFFF / 8) * 7 <= i && i <= (0xFFFF / 8) * 8) {
pkr7098 1:ed1c6618f739 163 ledSetColor(1, 1, 1);
pkr7098 1:ed1c6618f739 164 strcpy(ledColor, "White");
pkr7098 1:ed1c6618f739 165 }
pkr7098 1:ed1c6618f739 166 }
pkr7098 1:ed1c6618f739 167
pkr7098 1:ed1c6618f739 168