The final project of Embedde class.
Dependencies: C12832 LM75B ESP-call MMA7660
main.cpp
00001 #include "LM75B.h" 00002 #include "MMA7660.h" 00003 00004 #include "APPLICATION.h" 00005 #include "PAGE.h" 00006 #include "WEB.h" 00007 00008 #include "ESP-call.h" 00009 00010 // Values define ========================================================================================================= 00011 00012 LM75B temp(D14, D15); 00013 Thread _application; 00014 char ledState[11] = "Device"; 00015 char ledColor[11] = " "; 00016 00017 // Functions prototype ========================================================================================================= 00018 00019 void ledChangeColor(unsigned short i); 00020 void wifiInitValues(void); 00021 void application(void); 00022 00023 // Main function ========================================================================================================= 00024 00025 int main() 00026 { 00027 applicationInit(); 00028 lcdShowInitDevicePage(1); 00029 00030 00031 lcdShowTryToConnectPage(1); 00032 lcdShowLoadingSimbolStart(0, 20); 00033 wifiConnectToAP(); 00034 wifiGetIpAddress(); 00035 lcdShowLoadingSimbolTerminate(); 00036 00037 _lcd.cls(); 00038 _lcd.locate(0, 0); 00039 _lcd.printf("Generating web site"); 00040 lcdShowMyIPPage(0); 00041 lcdShowLoadingSimbolStart(0, 20); 00042 wifiInitValues(); 00043 webCreateHtmlDoc(); 00044 webDisplayWebsite(); 00045 wifiInitServer(); 00046 timerInit(); 00047 lcdShowLoadingSimbolTerminate(); 00048 00049 _lcd.cls(); 00050 _application.start(application); 00051 00052 wifiInitReceiveData(); 00053 while(true) { 00054 } 00055 00056 } 00057 00058 // Functions define ========================================================================================================= 00059 00060 void application(void) 00061 { 00062 while (true) { 00063 float temperature = temp.read(); 00064 lcdShowMyIPPage(0); 00065 00066 semaphoreTimer.acquire(); 00067 lcdShowDaytime(0); 00068 wifiGenerateValueI("timeHour", timerHour); 00069 wifiGenerateValueI("timeMinute", timerMinute); 00070 wifiGenerateValueI("timeSecond", timerSecond); 00071 semaphoreTimer.release(); 00072 00073 semaphoreAlarmData.acquire(); 00074 lcdShowAlerttime(0); 00075 wifiGenerateValueI("alarmHour", alarmHour); 00076 wifiGenerateValueI("alarmMinute", alarmMinute); 00077 wifiGenerateValueI("alarmSecond", alarmSecond); 00078 semaphoreAlarmData.release(); 00079 00080 wifiGenerateValueF("temperature", temperature); 00081 wifiGenerateValueS("temperatureUnit", "C"); 00082 00083 wifiGenerateValueS("ledState", ledState); 00084 wifiGenerateValueS("ledColor", ledColor); 00085 00086 semaphoreModify.acquire(); 00087 _lcd.locate(0, 0); 00088 if(MODE_MODIFY_TIME == UNABLE_TO_MODIFY_TIME) { 00089 semaphoreModify.release(); 00090 _lcd.characterI(0, 0, 'T'); 00091 wifiGenerateValueS("timeState", "Fixed"); 00092 } else { 00093 semaphoreModify.release(); 00094 _lcd.putc('T'); 00095 wifiGenerateValueS("timeState", "Changeable"); 00096 } 00097 00098 00099 semaphoreAlarmData.acquire(); 00100 _lcd.locate(9, 0); 00101 if(alarmState == ALARM_ENABLED) { 00102 semaphoreAlarmData.release(); 00103 _lcd.putc('A'); 00104 wifiGenerateValueS("alarmState", "Enabled"); 00105 } else { 00106 semaphoreAlarmData.release(); 00107 _lcd.characterI(9, 0, 'A'); 00108 wifiGenerateValueS("alarmState", "Disabled"); 00109 } 00110 semaphoreAlarmData.release(); 00111 ledChangeColor(potValueU16(POT_LEFT)); 00112 _lcd.locate(60, 0); 00113 _lcd.printf("%.2fC", temperature); 00114 thread_sleep_for(100); 00115 } 00116 } 00117 00118 void wifiInitValues(void) 00119 { 00120 wifiGenerateValueS("timeState", " "); 00121 wifiGenerateValueI("timeHour", 0); 00122 wifiGenerateValueI("timeMinute", 12); 00123 wifiGenerateValueI("timeSecond", 20); 00124 00125 wifiGenerateValueS("alarmState", " "); 00126 wifiGenerateValueI("alarmHour", 0); 00127 wifiGenerateValueI("alarmMinute", 12); 00128 wifiGenerateValueI("alarmSecond", 20); 00129 00130 wifiGenerateValueF("temperature", 0.0); 00131 wifiGenerateValueS("temperatureUnit", "C"); 00132 00133 wifiGenerateValueS("ledState", " "); 00134 wifiGenerateValueS("ledColor", " "); 00135 } 00136 00137 00138 void ledChangeColor(unsigned short i) 00139 { 00140 strcpy(ledState, "Device"); 00141 if(0 <= i && i < 0xFFFF / 8) { 00142 ledSetColor(0, 0, 0); 00143 strcpy(ledColor, "Black"); 00144 } else if(0xFFFF / 8 <= i && i < (0xFFFF / 8) * 2) { 00145 ledSetColor(1, 0, 0); 00146 strcpy(ledColor, "Red"); 00147 } else if((0xFFFF / 8) * 2 <= i && i < (0xFFFF / 8) * 3) { 00148 ledSetColor(0, 1, 0); 00149 strcpy(ledColor, "Lime"); 00150 } else if((0xFFFF / 8) * 3 <= i && i < (0xFFFF / 8) * 4) { 00151 ledSetColor(0, 0, 1); 00152 strcpy(ledColor, "Blue"); 00153 } else if((0xFFFF / 8) * 4 <= i && i < (0xFFFF / 8) * 5) { 00154 ledSetColor(1, 1, 0); 00155 strcpy(ledColor, "Yellow"); 00156 } else if((0xFFFF / 8) * 5 <= i && i < (0xFFFF / 8) * 6) { 00157 ledSetColor(0, 1, 1); 00158 strcpy(ledColor, "Cyan"); 00159 } else if((0xFFFF / 8) * 6 <= i && i < (0xFFFF / 8) * 7) { 00160 ledSetColor(1, 0, 1); 00161 strcpy(ledColor, "Fuchsia"); 00162 } else if((0xFFFF / 8) * 7 <= i && i <= (0xFFFF / 8) * 8) { 00163 ledSetColor(1, 1, 1); 00164 strcpy(ledColor, "White"); 00165 } 00166 } 00167 00168
Generated on Fri Jul 15 2022 05:56:23 by 1.7.2