├── README.md ├── moon_data.csv ├── moon_pi.py ├── quotations.csv └── screen_template.png /README.md: -------------------------------------------------------------------------------- 1 | # Moon-Pi 2 | An ePaper moon calendar powered by Raspberry Pi 3 | 4 | ![IMG_9535](https://github.com/barryl93/Moon-Pi/assets/39839859/7b96522b-2f72-4b4d-bb55-57c7d8657edb) 5 | 6 | OK, so you want to build a moon-a-day calendar! Let's get started. You'll need the following: 7 | 8 | 17 | 18 | You will also need a Raspberry Pi of your choice (I used a Pi Zero W), a screwdriver, wires, screws, a drill, etc. And maybe even some thin plywood and a saw. 19 | 20 | # Step One: Images 21 | You'll need to create your own moon images because the ones I have in my project aren't available for public license. Feel free, though, to use the background image I created, located in this repository. It has a yellow band already in place for the quotation text. You can have as many images as you like. I use one each for full and new moons, one each for first and third quarters, two each for waxing and waning gibbous, and three each for waxing and waning crescents. It's up to you. Just be sure to sync it up with the Moon Data, described below. 22 | 23 | # Step Two: Moon Data 24 | You can see a sample file of moon data in this repository. You'll want to extend it out yourself. Doing it this way means you don't have to have your Pi talk to the internet at all -- all data is on the device. Note that there are sometimes multiple images depending on the phase of the moon. The sample file is set up to work with the script provided here. If you change the formatting of the moon data file, you'll need to tweak the Python script to match. 25 | 26 | # Step Three: Quotations 27 | You'll have to find your own quotations. I've put a few in the sample file for you. Note that one field measures the character length of the quotation. This is because you only have one line (no line wrapping!) to print your quotation, so the font size changes depending on the line length. If you use a different font than the one I've chosen, you'll need to figure out your own line length/font ratios with some trial and error. (That's how I did it!) Use Excel or Numbers or Sheets or whatever to count up the line lengths for you automatically -- makes life easier! And don't forget to enclose in quotation marks any quotations that have commas in them! 28 | 29 | # Step Four: Wire it Up 30 | There are a total of 13 wired connections (not counting plugging the battery into the PiJuice). There are eight wires from the Raspberry Pi to the display and five wires from the Pi to the PiJuice. 31 | 32 | Here's the pinout guide to connect the display to the Pi: https://www.waveshare.com/wiki/5.65inch_e-Paper_Pi 33 | 34 | And here's the pinout for the PiJuice: https://pinout.xyz/pinout/pijuice 35 | 36 | And here's the PiJuice Quick Start Guide. You'll need this to walk you through setting up the PiJuice to wake up the Pi on a schedule. 37 | 38 | # Step Five: Software 39 | Everything you need is in the moon-pi.py script in this repository. Read through it carefully -- it's copiously commented and will walk you through the modifications you need to make so that, for example, it says "Happy Birthday!" on the right day. You may also need to make other modifications depending on choices you make in the first three steps of this guide. If you change text lengths or images or how the moon data is formatted, you may need to tweak the script. 40 | 41 | You'll need to set up either a cronjob or a system service to run the moon-pi script on reboot. In my experience, it was easier to use systemd, but YMMV. Also, note that you'll need to build in some delay time between booting the Pi and running the script. Otherwise, the script encounters errors by running before it has permissions for everything it needs. I use a 65-second delay and it works great. 42 | 43 | Once you've got it all set up, remember that when the Pi boots, it'll only run for a few minutes before shutting itself down. So if you realize you need to fix or tweak something, you'll need to be sure to SSH into the PI and avail yourself of pkill before the script stops. (In my experience, there's plenty of time to do this. And if you miss your window, you can always reboot the Pi and try again!) 44 | 45 | # Step Six: The Frame 46 | Any properly sized frame should work. I used a shadow box, linked above. Once you have the display and the mat in, I suggest screwing everything into place so that it doesn't jostle around. I tried cutting my own mats, but couldn't keep it neat -- a local frame shop was kind enough to cut several of them for me for a few bucks. 47 | 48 | My shadow box came with an insert designed to keep the back panel in place. I drilled some holes in that and mounted the Pi, the PiJuice, and the battery. Don't screw all the way through -- there isn't enough space between the insert and the frame itself to accomodate a screw poking out! I used nylon spacers to keep the Pi and PiJuice from touching the insert. 49 | 50 | The back panels of most frames and shadow boxes are too flimsy for my purposes, so I cut a piece of thin plywood to size, then drilled ventilation holes. (A Pi Zero shouldn't have any heat issues, but I'm paranoid.) I also cut a slot for a USB cable, then stapled a Velcro cable wrap to the back panel for cable management. You can probably come up with something nicer! Don't forget that you need a way to keep the back panel in place -- I used some frame turn fasteners from Amazon. Piece of cake. 51 | 52 | # The End 53 | OK, that's the process! Enjoy! 54 | -------------------------------------------------------------------------------- /moon_data.csv: -------------------------------------------------------------------------------- 1 | datetime,caption,,file 2 | 2023-01-19,Waning Crescent,waning_crescent2,waning_crescent2.bmp 3 | 2023-01-20,Waning Crescent,waning_crescent3,waning_crescent3.bmp 4 | 2023-01-21,New Moon,new_moon,new_moon.bmp 5 | 2023-01-22,New Moon,new_moon,new_moon.bmp 6 | 2023-01-23,New Moon,new_moon,new_moon.bmp 7 | 2023-01-24,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 8 | 2023-01-25,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 9 | 2023-01-26,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 10 | 2023-01-27,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 11 | 2023-01-28,First Quarter,first_quarter,first_quarter.bmp 12 | 2023-01-29,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 13 | 2023-01-30,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 14 | 2023-01-31,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 15 | 2023-02-01,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 16 | 2023-02-02,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 17 | 2023-02-03,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 18 | 2023-02-04,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 19 | 2023-02-05,Full Moon,full_moon,full_moon.bmp 20 | 2023-02-06,Full Moon,full_moon,full_moon.bmp 21 | 2023-02-07,Full Moon,full_moon,full_moon.bmp 22 | 2023-02-08,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 23 | 2023-02-09,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 24 | 2023-02-10,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 25 | 2023-02-11,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 26 | 2023-02-12,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 27 | 2023-02-13,Third Quarter,third_quarter,third_quarter.bmp 28 | 2023-02-14,Waning Crescent,waning_crescent,waning_crescent.bmp 29 | 2023-02-15,Waning Crescent,waning_crescent2,waning_crescent2.bmp 30 | 2023-02-16,Waning Crescent,waning_crescent2,waning_crescent2.bmp 31 | 2023-02-17,Waning Crescent,waning_crescent3,waning_crescent3.bmp 32 | 2023-02-18,Waning Crescent,waning_crescent3,waning_crescent3.bmp 33 | 2023-02-19,New Moon,new_moon,new_moon.bmp 34 | 2023-02-20,New Moon,new_moon,new_moon.bmp 35 | 2023-02-21,New Moon,new_moon,new_moon.bmp 36 | 2023-02-22,Waxing Crescent,waxing_crescent,waxing_crescent.bmp 37 | 2023-02-23,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 38 | 2023-02-24,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 39 | 2023-02-25,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 40 | 2023-02-26,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 41 | 2023-02-27,First Quarter,first_quarter,first_quarter.bmp 42 | 2023-02-28,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 43 | 2023-03-01,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 44 | 2023-03-02,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 45 | 2023-03-03,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 46 | 2023-03-04,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 47 | 2023-03-05,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 48 | 2023-03-06,Full Moon,full_moon,full_moon.bmp 49 | 2023-03-07,Full Moon,full_moon,full_moon.bmp 50 | 2023-03-08,Full Moon,full_moon,full_moon.bmp 51 | 2023-03-09,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 52 | 2023-03-10,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 53 | 2023-03-11,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 54 | 2023-03-12,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 55 | 2023-03-13,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 56 | 2023-03-14,Third Quarter,third_quarter,third_quarter.bmp 57 | 2023-03-15,Waning Crescent,waning_crescent,waning_crescent.bmp 58 | 2023-03-16,Waning Crescent,waning_crescent,waning_crescent.bmp 59 | 2023-03-17,Waning Crescent,waning_crescent2,waning_crescent2.bmp 60 | 2023-03-18,Waning Crescent,waning_crescent2,waning_crescent2.bmp 61 | 2023-03-19,Waning Crescent,waning_crescent3,waning_crescent3.bmp 62 | 2023-03-20,Waning Crescent,waning_crescent3,waning_crescent3.bmp 63 | 2023-03-21,New Moon,new_moon,new_moon.bmp 64 | 2023-03-22,New Moon,new_moon,new_moon.bmp 65 | 2023-03-23,New Moon,new_moon,new_moon.bmp 66 | 2023-03-24,Waxing Crescent,waxing_crescent,waxing_crescent.bmp 67 | 2023-03-25,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 68 | 2023-03-26,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 69 | 2023-03-27,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 70 | 2023-03-28,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 71 | 2023-03-29,First Quarter,first_quarter,first_quarter.bmp 72 | 2023-03-30,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 73 | 2023-03-31,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 74 | 2023-04-01,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 75 | 2023-04-02,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 76 | 2023-04-03,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 77 | 2023-04-04,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 78 | 2023-04-05,Full Moon,full_moon,full_moon.bmp 79 | 2023-04-06,Full Moon,full_moon,full_moon.bmp 80 | 2023-04-07,Full Moon,full_moon,full_moon.bmp 81 | 2023-04-08,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 82 | 2023-04-09,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 83 | 2023-04-10,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 84 | 2023-04-11,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 85 | 2023-04-12,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 86 | 2023-04-13,Third Quarter,third_quarter,third_quarter.bmp 87 | 2023-04-14,Waning Crescent,waning_crescent,waning_crescent.bmp 88 | 2023-04-15,Waning Crescent,waning_crescent2,waning_crescent2.bmp 89 | 2023-04-16,Waning Crescent,waning_crescent2,waning_crescent2.bmp 90 | 2023-04-17,Waning Crescent,waning_crescent3,waning_crescent3.bmp 91 | 2023-04-18,Waning Crescent,waning_crescent3,waning_crescent3.bmp 92 | 2023-04-19,New Moon,new_moon,new_moon.bmp 93 | 2023-04-20,New Moon,new_moon,new_moon.bmp 94 | 2023-04-21,New Moon,new_moon,new_moon.bmp 95 | 2023-04-22,Waxing Crescent,waxing_crescent,waxing_crescent.bmp 96 | 2023-04-23,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 97 | 2023-04-24,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 98 | 2023-04-25,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 99 | 2023-04-26,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 100 | 2023-04-27,First Quarter,first_quarter,first_quarter.bmp 101 | 2023-04-28,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 102 | 2023-04-29,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 103 | 2023-04-30,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 104 | 2023-05-01,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 105 | 2023-05-02,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 106 | 2023-05-03,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 107 | 2023-05-04,Full Moon,full_moon,full_moon.bmp 108 | 2023-05-05,Full Moon,full_moon,full_moon.bmp 109 | 2023-05-06,Full Moon,full_moon,full_moon.bmp 110 | 2023-05-07,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 111 | 2023-05-08,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 112 | 2023-05-09,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 113 | 2023-05-10,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 114 | 2023-05-11,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 115 | 2023-05-12,Third Quarter,third_quarter,third_quarter.bmp 116 | 2023-05-13,Waning Crescent,waning_crescent,waning_crescent.bmp 117 | 2023-05-14,Waning Crescent,waning_crescent,waning_crescent.bmp 118 | 2023-05-15,Waning Crescent,waning_crescent2,waning_crescent2.bmp 119 | 2023-05-16,Waning Crescent,waning_crescent2,waning_crescent2.bmp 120 | 2023-05-17,Waning Crescent,waning_crescent3,waning_crescent3.bmp 121 | 2023-05-18,Waning Crescent,waning_crescent3,waning_crescent3.bmp 122 | 2023-05-19,New Moon,new_moon,new_moon.bmp 123 | 2023-05-20,New Moon,new_moon,new_moon.bmp 124 | 2023-05-21,New Moon,new_moon,new_moon.bmp 125 | 2023-05-22,Waxing Crescent,waxing_crescent,waxing_crescent.bmp 126 | 2023-05-23,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 127 | 2023-05-24,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 128 | 2023-05-25,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 129 | 2023-05-26,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 130 | 2023-05-27,First Quarter,first_quarter,first_quarter.bmp 131 | 2023-05-28,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 132 | 2023-05-29,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 133 | 2023-05-30,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 134 | 2023-05-31,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 135 | 2023-06-01,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 136 | 2023-06-02,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 137 | 2023-06-03,Full Moon,full_moon,full_moon.bmp 138 | 2023-06-04,Full Moon,full_moon,full_moon.bmp 139 | 2023-06-05,Full Moon,full_moon,full_moon.bmp 140 | 2023-06-06,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 141 | 2023-06-07,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 142 | 2023-06-08,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 143 | 2023-06-09,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 144 | 2023-06-10,Third Quarter,third_quarter,third_quarter.bmp 145 | 2023-06-11,Waning Crescent,waning_crescent,waning_crescent.bmp 146 | 2023-06-12,Waning Crescent,waning_crescent,waning_crescent.bmp 147 | 2023-06-13,Waning Crescent,waning_crescent2,waning_crescent2.bmp 148 | 2023-06-14,Waning Crescent,waning_crescent2,waning_crescent2.bmp 149 | 2023-06-15,Waning Crescent,waning_crescent3,waning_crescent3.bmp 150 | 2023-06-16,Waning Crescent,waning_crescent3,waning_crescent3.bmp 151 | 2023-06-17,New Moon,new_moon,new_moon.bmp 152 | 2023-06-18,New Moon,new_moon,new_moon.bmp 153 | 2023-06-19,New Moon,new_moon,new_moon.bmp 154 | 2023-06-20,Waxing Crescent,waxing_crescent,waxing_crescent.bmp 155 | 2023-06-21,Waxing Crescent,waxing_crescent,waxing_crescent.bmp 156 | 2023-06-22,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 157 | 2023-06-23,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 158 | 2023-06-24,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 159 | 2023-06-25,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 160 | 2023-06-26,First Quarter,first_quarter,first_quarter.bmp 161 | 2023-06-27,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 162 | 2023-06-28,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 163 | 2023-06-29,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 164 | 2023-06-30,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 165 | 2023-07-01,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 166 | 2023-07-02,Full Moon,full_moon,full_moon.bmp 167 | 2023-07-03,Full Moon,full_moon,full_moon.bmp 168 | 2023-07-04,Full Moon,full_moon,full_moon.bmp 169 | 2023-07-05,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 170 | 2023-07-06,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 171 | 2023-07-07,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 172 | 2023-07-08,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 173 | 2023-07-09,Third Quarter,third_quarter,third_quarter.bmp 174 | 2023-07-10,Waning Crescent,waning_crescent,waning_crescent.bmp 175 | 2023-07-11,Waning Crescent,waning_crescent,waning_crescent.bmp 176 | 2023-07-12,Waning Crescent,waning_crescent2,waning_crescent2.bmp 177 | 2023-07-13,Waning Crescent,waning_crescent2,waning_crescent2.bmp 178 | 2023-07-14,Waning Crescent,waning_crescent3,waning_crescent3.bmp 179 | 2023-07-15,Waning Crescent,waning_crescent3,waning_crescent3.bmp 180 | 2023-07-16,Waning Crescent,waning_crescent3,waning_crescent3.bmp 181 | 2023-07-17,New Moon,new_moon,new_moon.bmp 182 | 2023-07-18,New Moon,new_moon,new_moon.bmp 183 | 2023-07-19,New Moon,new_moon,new_moon.bmp 184 | 2023-07-20,Waxing Crescent,waxing_crescent,waxing_crescent.bmp 185 | 2023-07-21,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 186 | 2023-07-22,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 187 | 2023-07-23,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 188 | 2023-07-24,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 189 | 2023-07-25,First Quarter,first_quarter,first_quarter.bmp 190 | 2023-07-26,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 191 | 2023-07-27,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 192 | 2023-07-28,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 193 | 2023-07-29,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 194 | 2023-07-30,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 195 | 2023-07-31,Full Moon,full_moon,full_moon.bmp 196 | 2023-08-01,Supermoon,full_moon,full_moon.bmp 197 | 2023-08-02,Full Moon,full_moon,full_moon.bmp 198 | 2023-08-03,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 199 | 2023-08-04,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 200 | 2023-08-05,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 201 | 2023-08-06,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 202 | 2023-08-07,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 203 | 2023-08-08,Third Quarter,third_quarter,third_quarter.bmp 204 | 2023-08-09,Waning Crescent,waning_crescent,waning_crescent.bmp 205 | 2023-08-10,Waning Crescent,waning_crescent,waning_crescent.bmp 206 | 2023-08-11,Waning Crescent,waning_crescent2,waning_crescent2.bmp 207 | 2023-08-12,Waning Crescent,waning_crescent2,waning_crescent2.bmp 208 | 2023-08-13,Waning Crescent,waning_crescent3,waning_crescent3.bmp 209 | 2023-08-14,Waning Crescent,waning_crescent3,waning_crescent3.bmp 210 | 2023-08-15,New Moon,new_moon,new_moon.bmp 211 | 2023-08-16,New Moon,new_moon,new_moon.bmp 212 | 2023-08-17,New Moon,new_moon,new_moon.bmp 213 | 2023-08-18,Waxing Crescent,waxing_crescent,waxing_crescent.bmp 214 | 2023-08-19,Waxing Crescent,waxing_crescent,waxing_crescent.bmp 215 | 2023-08-20,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 216 | 2023-08-21,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 217 | 2023-08-22,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 218 | 2023-08-23,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 219 | 2023-08-24,First Quarter,first_quarter,first_quarter.bmp 220 | 2023-08-25,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 221 | 2023-08-26,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 222 | 2023-08-27,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 223 | 2023-08-28,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 224 | 2023-08-29,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 225 | 2023-08-30,Full Moon,full_moon,full_moon.bmp 226 | 2023-08-31,Blue Moon,full_moon,full_moon.bmp 227 | 2023-09-01,Full Moon,full_moon,full_moon.bmp 228 | 2023-09-02,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 229 | 2023-09-03,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 230 | 2023-09-04,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 231 | 2023-09-05,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 232 | 2023-09-06,Third Quarter,third_quarter,third_quarter.bmp 233 | 2023-09-07,Waning Crescent,waning_crescent,waning_crescent.bmp 234 | 2023-09-08,Waning Crescent,waning_crescent,waning_crescent.bmp 235 | 2023-09-09,Waning Crescent,waning_crescent2,waning_crescent2.bmp 236 | 2023-09-10,Waning Crescent,waning_crescent2,waning_crescent2.bmp 237 | 2023-09-11,Waning Crescent,waning_crescent3,waning_crescent3.bmp 238 | 2023-09-12,Waning Crescent,waning_crescent3,waning_crescent3.bmp 239 | 2023-09-13,Waning Crescent,waning_crescent3,waning_crescent3.bmp 240 | 2023-09-14,New Moon,new_moon,new_moon.bmp 241 | 2023-09-15,New Moon,new_moon,new_moon.bmp 242 | 2023-09-16,New Moon,new_moon,new_moon.bmp 243 | 2023-09-17,Waxing Crescent,waxing_crescent,waxing_crescent.bmp 244 | 2023-09-18,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 245 | 2023-09-19,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 246 | 2023-09-20,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 247 | 2023-09-21,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 248 | 2023-09-22,First Quarter,first_quarter,first_quarter.bmp 249 | 2023-09-23,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 250 | 2023-09-24,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 251 | 2023-09-25,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 252 | 2023-09-26,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 253 | 2023-09-27,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 254 | 2023-09-28,Full Moon,full_moon,full_moon.bmp 255 | 2023-09-29,Harvest Moon,full_moon,full_moon.bmp 256 | 2023-09-30,Full Moon,full_moon,full_moon.bmp 257 | 2023-10-01,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 258 | 2023-10-02,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 259 | 2023-10-03,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 260 | 2023-10-04,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 261 | 2023-10-05,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 262 | 2023-10-06,Third Quarter,third_quarter,third_quarter.bmp 263 | 2023-10-07,Waning Crescent,waning_crescent,waning_crescent.bmp 264 | 2023-10-08,Waning Crescent,waning_crescent,waning_crescent.bmp 265 | 2023-10-09,Waning Crescent,waning_crescent2,waning_crescent2.bmp 266 | 2023-10-10,Waning Crescent,waning_crescent2,waning_crescent2.bmp 267 | 2023-10-11,Waning Crescent,waning_crescent3,waning_crescent3.bmp 268 | 2023-10-12,Waning Crescent,waning_crescent3,waning_crescent3.bmp 269 | 2023-10-13,Waning Crescent,waning_crescent3,waning_crescent3.bmp 270 | 2023-10-14,New Moon,new_moon,new_moon.bmp 271 | 2023-10-15,New Moon,new_moon,new_moon.bmp 272 | 2023-10-16,New Moon,new_moon,new_moon.bmp 273 | 2023-10-17,Waxing Crescent,waxing_crescent,waxing_crescent.bmp 274 | 2023-10-18,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 275 | 2023-10-19,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 276 | 2023-10-20,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 277 | 2023-10-21,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 278 | 2023-10-22,First Quarter,first_quarter,first_quarter.bmp 279 | 2023-10-23,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 280 | 2023-10-24,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 281 | 2023-10-25,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 282 | 2023-10-26,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 283 | 2023-10-27,Full Moon,full_moon,full_moon.bmp 284 | 2023-10-28,Full Moon,full_moon,full_moon.bmp 285 | 2023-10-29,Full Moon,full_moon,full_moon.bmp 286 | 2023-10-30,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 287 | 2023-10-31,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 288 | 2023-11-01,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 289 | 2023-11-02,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 290 | 2023-11-03,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 291 | 2023-11-04,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 292 | 2023-11-05,Third Quarter,third_quarter,third_quarter.bmp 293 | 2023-11-06,Waning Crescent,waning_crescent,waning_crescent.bmp 294 | 2023-11-07,Waning Crescent,waning_crescent,waning_crescent.bmp 295 | 2023-11-08,Waning Crescent,waning_crescent2,waning_crescent2.bmp 296 | 2023-11-09,Waning Crescent,waning_crescent2,waning_crescent2.bmp 297 | 2023-11-10,Waning Crescent,waning_crescent3,waning_crescent3.bmp 298 | 2023-11-11,Waning Crescent,waning_crescent3,waning_crescent3.bmp 299 | 2023-11-12,New Moon,new_moon,new_moon.bmp 300 | 2023-11-13,New Moon,new_moon,new_moon.bmp 301 | 2023-11-14,New Moon,new_moon,new_moon.bmp 302 | 2023-11-15,Waxing Crescent,waxing_crescent,waxing_crescent.bmp 303 | 2023-11-16,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 304 | 2023-11-17,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 305 | 2023-11-18,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 306 | 2023-11-19,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 307 | 2023-11-20,First Quarter,first_quarter,first_quarter.bmp 308 | 2023-11-21,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 309 | 2023-11-22,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 310 | 2023-11-23,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 311 | 2023-11-24,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 312 | 2023-11-25,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 313 | 2023-11-26,Full Moon,full_moon,full_moon.bmp 314 | 2023-11-27,Full Moon,full_moon,full_moon.bmp 315 | 2023-11-28,Full Moon,full_moon,full_moon.bmp 316 | 2023-11-29,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 317 | 2023-11-30,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 318 | 2023-12-01,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 319 | 2023-12-02,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 320 | 2023-12-03,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 321 | 2023-12-04,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 322 | 2023-12-05,Third Quarter,third_quarter,third_quarter.bmp 323 | 2023-12-06,Waning Crescent,waning_crescent,waning_crescent.bmp 324 | 2023-12-07,Waning Crescent,waning_crescent,waning_crescent.bmp 325 | 2023-12-08,Waning Crescent,waning_crescent2,waning_crescent2.bmp 326 | 2023-12-09,Waning Crescent,waning_crescent2,waning_crescent2.bmp 327 | 2023-12-10,Waning Crescent,waning_crescent3,waning_crescent3.bmp 328 | 2023-12-11,Waning Crescent,waning_crescent3,waning_crescent3.bmp 329 | 2023-12-12,New Moon,new_moon,new_moon.bmp 330 | 2023-12-13,New Moon,new_moon,new_moon.bmp 331 | 2023-12-14,New Moon,new_moon,new_moon.bmp 332 | 2023-12-15,Waxing Crescent,waxing_crescent,waxing_crescent.bmp 333 | 2023-12-16,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 334 | 2023-12-17,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 335 | 2023-12-18,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 336 | 2023-12-19,First Quarter,first_quarter,first_quarter.bmp 337 | 2023-12-20,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 338 | 2023-12-21,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 339 | 2023-12-22,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 340 | 2023-12-23,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 341 | 2023-12-24,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 342 | 2023-12-25,Full Moon,full_moon,full_moon.bmp 343 | 2023-12-26,Full Moon,full_moon,full_moon.bmp 344 | 2023-12-27,Full Moon,full_moon,full_moon.bmp 345 | 2023-12-28,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 346 | 2023-12-29,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 347 | 2023-12-30,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 348 | 2023-12-31,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 349 | 2024-01-01,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 350 | 2024-01-02,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 351 | 2024-01-03,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 352 | 2024-01-04,Third Quarter,third_quarter,third_quarter.bmp 353 | 2024-01-05,Waning Crescent,waning_crescent,waning_crescent.bmp 354 | 2024-01-06,Waning Crescent,waning_crescent2,waning_crescent2.bmp 355 | 2024-01-07,Waning Crescent,waning_crescent2,waning_crescent2.bmp 356 | 2024-01-08,Waning Crescent,waning_crescent3,waning_crescent3.bmp 357 | 2024-01-09,Waning Crescent,waning_crescent3,waning_crescent3.bmp 358 | 2024-01-10,New Moon,new_moon,new_moon.bmp 359 | 2024-01-11,New Moon,new_moon,new_moon.bmp 360 | 2024-01-12,New Moon,new_moon,new_moon.bmp 361 | 2024-01-13,Waxing Crescent,waxing_crescent,waxing_crescent.bmp 362 | 2024-01-14,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 363 | 2024-01-15,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 364 | 2024-01-16,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 365 | 2024-01-17,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 366 | 2024-01-18,First Quarter,first_quarter,first_quarter.bmp 367 | 2024-01-19,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 368 | 2024-01-20,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 369 | 2024-01-21,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 370 | 2024-01-22,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 371 | 2024-01-23,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 372 | 2024-01-24,Full Moon,full_moon,full_moon.bmp 373 | 2024-01-25,Full Moon,full_moon,full_moon.bmp 374 | 2024-01-26,Full Moon,full_moon,full_moon.bmp 375 | 2024-01-27,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 376 | 2024-01-28,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 377 | 2024-01-29,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 378 | 2024-01-30,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 379 | 2024-01-31,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 380 | 2024-02-01,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 381 | 2024-02-02,Third Quarter,third_quarter,third_quarter.bmp 382 | 2024-02-03,Waning Crescent,waning_crescent,waning_crescent.bmp 383 | 2024-02-04,Waning Crescent,waning_crescent,waning_crescent.bmp 384 | 2024-02-05,Waning Crescent,waning_crescent2,waning_crescent2.bmp 385 | 2024-02-06,Waning Crescent,waning_crescent2,waning_crescent2.bmp 386 | 2024-02-07,Waning Crescent,waning_crescent3,waning_crescent3.bmp 387 | 2024-02-08,Waning Crescent,waning_crescent3,waning_crescent3.bmp 388 | 2024-02-09,New Moon,new_moon,new_moon.bmp 389 | 2024-02-10,New Moon,new_moon,new_moon.bmp 390 | 2024-02-11,New Moon,new_moon,new_moon.bmp 391 | 2024-02-12,Waxing Crescent,waxing_crescent,waxing_crescent.bmp 392 | 2024-02-13,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 393 | 2024-02-14,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 394 | 2024-02-15,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 395 | 2024-02-16,First Quarter,first_quarter,first_quarter.bmp 396 | 2024-02-17,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 397 | 2024-02-18,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 398 | 2024-02-19,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 399 | 2024-02-20,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 400 | 2024-02-21,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 401 | 2024-02-22,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 402 | 2024-02-23,Full Moon,full_moon,full_moon.bmp 403 | 2024-02-24,Full Moon,full_moon,full_moon.bmp 404 | 2024-02-25,Full Moon,full_moon,full_moon.bmp 405 | 2024-02-26,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 406 | 2024-02-27,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 407 | 2024-02-28,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 408 | 2024-02-29,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 409 | 2024-03-01,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 410 | 2024-03-02,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 411 | 2024-03-03,Third Quarter,third_quarter,third_quarter.bmp 412 | 2024-03-04,Waning Crescent,waning_crescent,waning_crescent.bmp 413 | 2024-03-05,Waning Crescent,waning_crescent2,waning_crescent2.bmp 414 | 2024-03-06,Waning Crescent,waning_crescent2,waning_crescent2.bmp 415 | 2024-03-07,Waning Crescent,waning_crescent3,waning_crescent3.bmp 416 | 2024-03-08,Waning Crescent,waning_crescent3,waning_crescent3.bmp 417 | 2024-03-09,New Moon,new_moon,new_moon.bmp 418 | 2024-03-10,New Moon,new_moon,new_moon.bmp 419 | 2024-03-11,New Moon,new_moon,new_moon.bmp 420 | 2024-03-12,Waxing Crescent,waxing_crescent,waxing_crescent.bmp 421 | 2024-03-13,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 422 | 2024-03-14,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 423 | 2024-03-15,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 424 | 2024-03-16,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 425 | 2024-03-17,First Quarter,first_quarter,first_quarter.bmp 426 | 2024-03-18,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 427 | 2024-03-19,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 428 | 2024-03-20,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 429 | 2024-03-21,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 430 | 2024-03-22,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 431 | 2024-03-23,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 432 | 2024-03-24,Full Moon,full_moon,full_moon.bmp 433 | 2024-03-25,Full Moon,full_moon,full_moon.bmp 434 | 2024-03-26,Full Moon,full_moon,full_moon.bmp 435 | 2024-03-27,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 436 | 2024-03-28,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 437 | 2024-03-29,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 438 | 2024-03-30,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 439 | 2024-03-31,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 440 | 2024-04-01,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 441 | 2024-04-02,Third Quarter,third_quarter,third_quarter.bmp 442 | 2024-04-03,Waning Crescent,waning_crescent,waning_crescent.bmp 443 | 2024-04-04,Waning Crescent,waning_crescent2,waning_crescent2.bmp 444 | 2024-04-05,Waning Crescent,waning_crescent2,waning_crescent2.bmp 445 | 2024-04-06,Waning Crescent,waning_crescent3,waning_crescent3.bmp 446 | 2024-04-07,Waning Crescent,waning_crescent3,waning_crescent3.bmp 447 | 2024-04-08,New Moon,new_moon,new_moon.bmp 448 | 2024-04-09,New Moon,new_moon,new_moon.bmp 449 | 2024-04-10,New Moon,new_moon,new_moon.bmp 450 | 2024-04-11,Waxing Crescent,waxing_crescent,waxing_crescent.bmp 451 | 2024-04-12,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 452 | 2024-04-13,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 453 | 2024-04-14,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 454 | 2024-04-15,First Quarter,first_quarter,first_quarter.bmp 455 | 2024-04-16,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 456 | 2024-04-17,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 457 | 2024-04-18,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 458 | 2024-04-19,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 459 | 2024-04-20,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 460 | 2024-04-21,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 461 | 2024-04-22,Full Moon,full_moon,full_moon.bmp 462 | 2024-04-23,Full Moon,full_moon,full_moon.bmp 463 | 2024-04-24,Full Moon,full_moon,full_moon.bmp 464 | 2024-04-25,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 465 | 2024-04-26,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 466 | 2024-04-27,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 467 | 2024-04-28,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 468 | 2024-04-29,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 469 | 2024-04-30,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 470 | 2024-05-01,Third Quarter,third_quarter,third_quarter.bmp 471 | 2024-05-02,Waning Crescent,waning_crescent,waning_crescent.bmp 472 | 2024-05-03,Waning Crescent,waning_crescent2,waning_crescent2.bmp 473 | 2024-05-04,Waning Crescent,waning_crescent2,waning_crescent2.bmp 474 | 2024-05-05,Waning Crescent,waning_crescent3,waning_crescent3.bmp 475 | 2024-05-06,Waning Crescent,waning_crescent3,waning_crescent3.bmp 476 | 2024-05-07,New Moon,new_moon,new_moon.bmp 477 | 2024-05-08,New Moon,new_moon,new_moon.bmp 478 | 2024-05-09,New Moon,new_moon,new_moon.bmp 479 | 2024-05-10,Waxing Crescent,waxing_crescent,waxing_crescent.bmp 480 | 2024-05-11,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 481 | 2024-05-12,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 482 | 2024-05-13,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 483 | 2024-05-14,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 484 | 2024-05-15,First Quarter,first_quarter,first_quarter.bmp 485 | 2024-05-16,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 486 | 2024-05-17,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 487 | 2024-05-18,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 488 | 2024-05-19,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 489 | 2024-05-20,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 490 | 2024-05-21,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 491 | 2024-05-22,Full Moon,full_moon,full_moon.bmp 492 | 2024-05-23,Full Moon,full_moon,full_moon.bmp 493 | 2024-05-24,Full Moon,full_moon,full_moon.bmp 494 | 2024-05-25,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 495 | 2024-05-26,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 496 | 2024-05-27,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 497 | 2024-05-28,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 498 | 2024-05-29,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 499 | 2024-05-30,Third Quarter,third_quarter,third_quarter.bmp 500 | 2024-05-31,Waning Crescent,waning_crescent,waning_crescent.bmp 501 | 2024-06-01,Waning Crescent,waning_crescent,waning_crescent.bmp 502 | 2024-06-02,Waning Crescent,waning_crescent2,waning_crescent2.bmp 503 | 2024-06-03,Waning Crescent,waning_crescent2,waning_crescent2.bmp 504 | 2024-06-04,Waning Crescent,waning_crescent3,waning_crescent3.bmp 505 | 2024-06-05,New Moon,new_moon,new_moon.bmp 506 | 2024-06-06,New Moon,new_moon,new_moon.bmp 507 | 2024-06-07,New Moon,new_moon,new_moon.bmp 508 | 2024-06-08,Waxing Crescent,waxing_crescent,waxing_crescent.bmp 509 | 2024-06-09,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 510 | 2024-06-10,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 511 | 2024-06-11,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 512 | 2024-06-12,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 513 | 2024-06-13,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 514 | 2024-06-14,First Quarter,first_quarter,first_quarter.bmp 515 | 2024-06-15,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 516 | 2024-06-16,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 517 | 2024-06-17,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 518 | 2024-06-18,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 519 | 2024-06-19,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 520 | 2024-06-20,Full Moon,full_moon,full_moon.bmp 521 | 2024-06-21,Full Moon,full_moon,full_moon.bmp 522 | 2024-06-22,Full Moon,full_moon,full_moon.bmp 523 | 2024-06-23,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 524 | 2024-06-24,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 525 | 2024-06-25,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 526 | 2024-06-26,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 527 | 2024-06-27,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 528 | 2024-06-28,Third Quarter,third_quarter,third_quarter.bmp 529 | 2024-06-29,Waning Crescent,waning_crescent,waning_crescent.bmp 530 | 2024-06-30,Waning Crescent,waning_crescent,waning_crescent.bmp 531 | 2024-07-01,Waning Crescent,waning_crescent2,waning_crescent2.bmp 532 | 2024-07-02,Waning Crescent,waning_crescent2,waning_crescent2.bmp 533 | 2024-07-03,Waning Crescent,waning_crescent3,waning_crescent3.bmp 534 | 2024-07-04,Waning Crescent,waning_crescent3,waning_crescent3.bmp 535 | 2024-07-05,New Moon,new_moon,new_moon.bmp 536 | 2024-07-06,New Moon,new_moon,new_moon.bmp 537 | 2024-07-07,New Moon,new_moon,new_moon.bmp 538 | 2024-07-08,Waxing Crescent,waxing_crescent,waxing_crescent.bmp 539 | 2024-07-09,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 540 | 2024-07-10,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 541 | 2024-07-11,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 542 | 2024-07-12,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 543 | 2024-07-13,First Quarter,first_quarter,first_quarter.bmp 544 | 2024-07-14,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 545 | 2024-07-15,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 546 | 2024-07-16,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 547 | 2024-07-17,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 548 | 2024-07-18,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 549 | 2024-07-19,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 550 | 2024-07-20,Full Moon,full_moon,full_moon.bmp 551 | 2024-07-21,Full Moon,full_moon,full_moon.bmp 552 | 2024-07-22,Full Moon,full_moon,full_moon.bmp 553 | 2024-07-23,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 554 | 2024-07-24,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 555 | 2024-07-25,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 556 | 2024-07-26,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 557 | 2024-07-27,Third Quarter,third_quarter,third_quarter.bmp 558 | 2024-07-28,Waning Crescent,waning_crescent,waning_crescent.bmp 559 | 2024-07-29,Waning Crescent,waning_crescent,waning_crescent.bmp 560 | 2024-07-30,Waning Crescent,waning_crescent2,waning_crescent2.bmp 561 | 2024-07-31,Waning Crescent,waning_crescent2,waning_crescent2.bmp 562 | 2024-08-01,Waning Crescent,waning_crescent3,waning_crescent3.bmp 563 | 2024-08-02,Waning Crescent,waning_crescent3,waning_crescent3.bmp 564 | 2024-08-03,New Moon,new_moon,new_moon.bmp 565 | 2024-08-04,New Moon,new_moon,new_moon.bmp 566 | 2024-08-05,New Moon,new_moon,new_moon.bmp 567 | 2024-08-06,Waxing Crescent,waxing_crescent,waxing_crescent.bmp 568 | 2024-08-07,Waxing Crescent,waxing_crescent,waxing_crescent.bmp 569 | 2024-08-08,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 570 | 2024-08-09,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 571 | 2024-08-10,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 572 | 2024-08-11,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 573 | 2024-08-12,First Quarter,first_quarter,first_quarter.bmp 574 | 2024-08-13,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 575 | 2024-08-14,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 576 | 2024-08-15,Waxing Gibbous,waxing_gibbous,waxing_gibbous.bmp 577 | 2024-08-16,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 578 | 2024-08-17,Waxing Gibbous,waxing_gibbous2,waxing_gibbous2.bmp 579 | 2024-08-18,Full Moon,full_moon,full_moon.bmp 580 | 2024-08-19,Full Moon,full_moon,full_moon.bmp 581 | 2024-08-20,Full Moon,full_moon,full_moon.bmp 582 | 2024-08-21,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 583 | 2024-08-22,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 584 | 2024-08-23,Waning Gibbous,waning_gibbous,waning_gibbous.bmp 585 | 2024-08-24,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 586 | 2024-08-25,Waning Gibbous,waning_gibbous2,waning_gibbous2.bmp 587 | 2024-08-26,Third Quarter,third_quarter,third_quarter.bmp 588 | 2024-08-27,Waning Crescent,waning_crescent,waning_crescent.bmp 589 | 2024-08-28,Waning Crescent,waning_crescent,waning_crescent.bmp 590 | 2024-08-29,Waning Crescent,waning_crescent2,waning_crescent2.bmp 591 | 2024-08-30,Waning Crescent,waning_crescent2,waning_crescent2.bmp 592 | 2024-08-31,Waning Crescent,waning_crescent3,waning_crescent3.bmp 593 | 2024-09-01,Waning Crescent,waning_crescent3,waning_crescent3.bmp 594 | 2024-09-02,New Moon,new_moon,new_moon.bmp 595 | 2024-09-03,New Moon,new_moon,new_moon.bmp 596 | 2024-09-04,New Moon,new_moon,new_moon.bmp 597 | 2024-09-05,Waxing Crescent,waxing_crescent,waxing_crescent.bmp 598 | 2024-09-06,Waxing Crescent,waxing_crescent,waxing_crescent.bmp 599 | 2024-09-07,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 600 | 2024-09-08,Waxing Crescent,waxing_crescent2,waxing_crescent2.bmp 601 | 2024-09-09,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 602 | 2024-09-10,Waxing Crescent,waxing_crescent3,waxing_crescent3.bmp 603 | 2024-09-11,First Quarter,first_quarter,first_quarter.bmp -------------------------------------------------------------------------------- /moon_pi.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding:utf-8 -*- 3 | 4 | import sys 5 | import os 6 | #picdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'pic') 7 | libdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'lib') 8 | if os.path.exists(libdir): 9 | sys.path.append(libdir) 10 | 11 | import logging 12 | from waveshare_epd import epd5in65f 13 | import time 14 | from PIL import Image,ImageDraw,ImageFont 15 | import traceback 16 | from datetime import datetime 17 | 18 | import csv 19 | import random 20 | 21 | from subprocess import call 22 | 23 | import emoji #I use emoji for the low battery icon. You may choose something else. 24 | import pijuice # import the PiJuice module 25 | 26 | # get battery charge info from the PiJuice and set charge_pct to that value 27 | pj = pijuice.PiJuice(1, 0x14) # create an instance of the PiJuice class 28 | battery_info = pj.status.GetChargeLevel() # get the battery charge level 29 | charge_pct = format(battery_info['data']) 30 | 31 | # get today's date and break it into day and month variables 32 | today = datetime.today().strftime('%Y-%m-%d') 33 | currentDay = datetime.now().day 34 | currentMonth = datetime.now().month 35 | 36 | # Compare the month and day of the recipient's birthday with today's month and day 37 | # Replace BDAYMONTH w/ recipient's month of birth and BDAYDAY w/ day of birth 38 | # This will replace the random moon quotation with HAPPY BIRTHDAY on the recipient's birthday 39 | if BDAYMONTH == currentMonth and BDAYDAY == currentDay: 40 | quotation_text = "HAPPY BIRTHDAY!" 41 | credit_text = "" 42 | quotationSize = 44 43 | # If it's not the birthday, then the script grabs a random quotation from the file. 44 | # Replace "/home/pi/quotations.csv" with your own file 45 | else: 46 | with open('/home/pi/quotations.csv', 'r') as f: 47 | reader = csv.reader(f) 48 | # Skip the header row 49 | next(reader) 50 | # Convert the remaining rows to a list 51 | rows = list(reader) 52 | # Choose a random row 53 | random_row = random.choice(rows) 54 | #set the variables to print the text later 55 | quotation_text = random_row[0] 56 | credit_text = random_row[1] 57 | quote_length = int(random_row[2]) 58 | if quote_length <=54: 59 | quotationSize = 24 60 | elif quote_length > 54 and quote_length < 60: 61 | quotationSize = 22 62 | elif quote_length >= 60 and quote_length <= 65: 63 | quotationSize = 20 64 | else: 65 | quotationSize = 18 66 | 67 | 68 | logging.basicConfig(level=logging.DEBUG) 69 | 70 | # Grabs today's date and formats it for display 71 | date_to_show = datetime.today().strftime('%A, %B %-d') 72 | 73 | # open the .csv file containing the moonphase data and grabs the needed info 74 | with open('/home/pi/moon_data.csv') as csvfile: 75 | # read the file as a dictionary 76 | reader = csv.DictReader(csvfile) 77 | # iterate over the rows in the file 78 | for row in reader: 79 | # if the date in the current row matches today's date 80 | if row['datetime'] == today: 81 | # set the caption 82 | caption_text = row['caption'] 83 | #set the file 84 | filename = row['file'] 85 | 86 | #defining variables for the text to be printed 87 | # I used Luminari, Futura, and AppleColorEmoji (for the low battery indicator) 88 | # You'll want to choose your own and you'll need to put them in proper directory 89 | quotation = ImageFont.truetype(os.path.join('/home/pi/Luminari.ttf'), quotationSize) 90 | credit = ImageFont.truetype(os.path.join('/home/pi/Futura.ttc'), 18) 91 | date_and_phase = ImageFont.truetype(os.path.join('/home/pi/Futura.ttc'), 26) 92 | battery_warning = u"\U0001FAAB" 93 | unicode_font = ImageFont.truetype("/home/pi/AppleColorEmoji.ttc", 26) 94 | 95 | 96 | epd = epd5in65f.EPD() 97 | 98 | epd.init() 99 | 100 | epd.Clear() 101 | 102 | # Note that you will need to create your own images and possibly change the image directory below 103 | logging.info("getting image file") 104 | Himage = Image.open('/home/pi/images/%s' % (filename)) 105 | draw = ImageDraw.Draw(Himage) 106 | draw.text((300, 5), quotation_text, font = quotation, fill = 0, anchor = 'mt') 107 | draw.text((600,40), credit_text, font = credit, fill = 0, anchor = "rm") 108 | draw.text((10, 410), date_to_show, font = date_and_phase, fill = epd.WHITE, anchor = "lt") 109 | draw.text((590, 410), caption_text, font = date_and_phase, fill = epd.WHITE, anchor = "rt") 110 | if int(charge_pct) > 20: 111 | print("Battery level is fine.") 112 | else: 113 | draw.rectangle((10, 55, 35, 90), fill="white") 114 | draw.text((10, 60), battery_warning, font=unicode_font, embedded_color=True) 115 | epd.display(epd.getbuffer(Himage)) 116 | 117 | # It's super important to sleep the display when you're done updating, otherwise you could damage it 118 | 119 | epd.sleep() 120 | 121 | call("sudo shutdown -h now", shell=True) 122 | -------------------------------------------------------------------------------- /quotations.csv: -------------------------------------------------------------------------------- 1 | Quotation,Credit,Length, 2 | The moon is my mother, -- Sylvia Plath,21, 3 | It's the moon that moves me., -- Bavo Dhooge,28, 4 | They asked the Moon her advice., -- Erin Morgenstern,31, 5 | The moon in her chariot of pearl, -- Oscar Wilde,32, 6 | Be the moon in somebody's night., -- Yasmin Mogahed,32, 7 | "There above them it hung, that moon.", -- Virginia Woolf,36, 8 | "Go slowly, my lovely moon, go slowly.", -- Khaled Hosseini,37, 9 | "Be witness to me, O thou blessed moon", -- William Shakespeare,37, 10 | Moonlight is the twinkle of your love., -- Debasish Mridha,38, -------------------------------------------------------------------------------- /screen_template.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barryl93/Moon-Pi/cfe4e28fed930ddf35a2cd1c394251fc0508ca71/screen_template.png --------------------------------------------------------------------------------