The final project of Embedde class.
Dependencies: C12832 LM75B ESP-call MMA7660
main.cpp@2:37756b51ccdb, 2021-06-03 (annotated)
- 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?
User | Revision | Line number | New 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 |