#define LGFX_USE_V1 #include #include "Matouch7.h" #include "JpegFunc.h" #include #include #include "SPIFFS.h" #include "FS.h" #include "SD_MMC.h" #include #include "SPIFFS.h" #include // microSD card #define PIN_SD_CMD 11 #define PIN_SD_CLK 12 #define PIN_SD_D0 13 static LGFX lcd; WiFiMulti wifiMulti; Chrono timer; String googleKey = ""; String my_coordinate=""; String ISS = ""; int zoom=1; int distance; char charBuffer[50]; float latISS,lonISS; bool FORMAT = false; static int jpegDrawCallback(JPEGDRAW *pDraw) { // Serial.printf("Draw pos = %d,%d. size = %d x %d\n", pDraw->x, pDraw->y, pDraw->iWidth, pDraw->iHeight); // gfx->draw16bitBeRGBBitmap(pDraw->x, pDraw->y, pDraw->pPixels, pDraw->iWidth, pDraw->iHeight); lcd.pushImageDMA(pDraw->x, pDraw->y, pDraw->iWidth, pDraw->iHeight, (lgfx::swap565_t *)pDraw->pPixels); return 1; } void setup() { Serial.begin(115200); /* SD_MMC */ SD_MMC.setPins(PIN_SD_CLK, PIN_SD_CMD, PIN_SD_D0); if (!SD_MMC.begin("/sdcard", true, true)) Serial.println("Card Mount Failed"); else Serial.println("Card Mounted"); /* SPIFFS */ SPIFFS.begin(true); if(!SPIFFS.begin()) Serial.println("SPIFFS Mount Failed"); else Serial.println("SPIFFS Mount!"); listAllFiles(); if (FORMAT) { Serial.println("Start formatting SPIFFS"); bool formatted = SPIFFS.format(); if(formatted) Serial.println("\n\nSuccess formatting"); else Serial.println("\n\nError formatting"); Serial.println("\n\n----Listing files after format----"); listAllFiles(); } lcd.init(); lcd.setRotation(0); lcd.fillScreen(TFT_BLACK); lcd.setTextColor(TFT_DARKGREY,TFT_WHITE); lcd.setTextSize (2); // Set datum to Middle Right lcd.setTextDatum(MC_DATUM); initWifi(); ISS = ISSCoord(); downloadFile("http://maps.googleapis.com/maps/api/staticmap?center=0,0&zoom=" + String(zoom) + "&format=jpg-baseline&size=640x420&maptype=roadmap&markers=size:tiny%7C" + my_coordinate + "&markers=icon:https://images.srad.jp/topics/iss_64.png%7Cshadow:false%7C" + ISS + "&key=" + googleKey, "/staticmap.jpg"); jpegDraw("/staticmap.jpg", jpegDrawCallback, true , 80 , 20 , 640 , 420); Serial.println("\n\nfile-copy......"); File sourceFile = SPIFFS.open("/staticmap.jpg"); File destFile = SD_MMC.open("/staticmap.jpg", FILE_WRITE); static uint8_t buf[512]; while( sourceFile.read( buf, 512) ) { destFile.write( buf, 512 ); } destFile.close(); sourceFile.close(); Serial.println("Filecopy ready"); while(true) {}; } void loop() { ISS = ISSCoord(); distance = int(distanceToISS(51.841570,4.162640,latISS,lonISS)); sprintf(charBuffer,"%05d km",distance); lcd.drawString(charBuffer, 740, 310, 1); if (timer.hasPassed(10000)) // every 60 seconds { timer.restart(); downloadFile("http://maps.googleapis.com/maps/api/staticmap?center="+ISS+"&zoom=" + String(2) + "&format=jpg-baseline&size=664x420&maptype=roadmap&markers=size:tiny%7C" + my_coordinate + "&markers=icon:https://images.srad.jp/topics/iss_64.png%7Cshadow:false%7C" + ISS + "&key=" + googleKey, "/staticmap.jpg"); delay(1000); //jpegDraw("/staticmap.jpg", jpegDrawCallback, true , 80 , 20 , 640 , 420); } } void listAllFiles(){ File root = SPIFFS.open("/"); File file = root.openNextFile(); while(file){ Serial.print("FILE: "); Serial.println(file.name()); file = root.openNextFile(); } }