ISS Globe- Blinks When the ISS Passes Overhead

7,544

86

26

About: Hello. My name's Arpan. At present, I'm an Aerospace engineering student. I love painting and making stuff, stuff that you could buy but better when you DIY!

Howdy! If you are interested in astronomy and always look up at the stars and not down at your feet, you'll surely know the ISS. The ISS or The International Space Station revolves around the earth around 16 times per day. Being an aerospace engineering student, I'm very keen about things like the ISS. If you're too, then I bet you'll love this project.

Meet ISS Globe - a smart lamp that can notify you whenever the ISS is passing overhead. Basically, it's a small (and cute looking) hemispherical lamp that gives a mild glow when connected to a power supply. If the ISS is passing overhead, the lamp starts blinking for about 30 seconds (you can customise the duration). It's also very pleasant to look at when it just sits on the table like any other mood lamp. Sounds complicated to build, but nope, it's probably one of the easiest microcontroller projects you can find. A few wires plugged here and there and you're done! No soldering, no glue gun, just a microcontroller and an LED for the main part. You can finish the complete build in just an hour! So what's the wait for? Let's get making!

Before we begin, please consider voting this project for the contest. Thank you!

Supplies:

NodeMcu WiFi development board https://www.amazon.com/AZDelivery-Nodemcu-Module-E...

An LED

Cardboard

Female- Female jumpers (optional) https://www.amazon.com/LANDZO-Multicolored-Breadbo...

Cellophane tape

Adhesive

Besides these, you'll have to install two free apps- Blynk and ifttt

Playstore link:

Blynk: https://play.google.com/store/apps/details?id=cc.b...

IFTTT: https://play.google.com/store/apps/details?id=com....

Appstore link:

IFTTT: https://itunes.apple.com/us/app/ifttt/id660944635?...

Blynk: https://itunes.apple.com/us/app/blynk-iot-for-ardu...

Step 1: Build the Structure

To make the globe, I used the top portion of an old LED light. It can disperse the light very well. Popping it out of the light is simple, use a screw driver to push it out of the bottom plastic part.

To make the base of the lamp, I cut a strip from black cardboard and rolled it into a cylinder. The height of the cylinder (thickness of the strip) should be a tiny bit more than the height of the NodeMcu when it is standing on its pins. I cut a circle with diameter equal to the diameter of the top globe from the cardboard and stuck the cylinder on it with adhesive. Great! The building process is complete. Now let's move to the electronics.

Step 2: Upload the Code

The heart of the ISS globe is the NodeMcu, and we need to code it to make it work as we want it to. You can find two different versions of the code in this step. One is the blink version and the other is power saving version. Let me explain what each one does.

Blink version: When you power the NodeMcu, the led will always remain on. When the space station passes overhead, the led will start blinking for about 30 seconds. After that, it'll again glow continuously.

Power saving version: The LED will remain off even when you power up the NodeMcu. When the space station passes overhead, the led will turn on for 30 seconds and then turn off.

While the second one saves power since the led is normally off, I would suggest you to still use the first one because the globe looks very beautiful when it glows. Anyway a single led will not consume so much power that it'll alter your electricity bill. I shall do a code walkthrough at the end of the instructable. So if you're interested, you can refer it to understand the working.

After you've decided which one to use, download it and open it in the Arduino IDE. Make sure you have the blynk and node mcu libraries installed. Then, replace the part of the code saying "ssid" with your WiFi name and "password" with the WiFi password. You also need to replace the part saying "Auth" which I'll explain in the coming steps. After doing these modifications, you can upload the code to your NodeMcu.

Step 3: A Little Bit of Electronics

This step is an easy one. I'll keep it short. Connect pin D1 of the NodeMcu to D7. Connect the positive electrode of the LED to D5 and negative electrode to GND of the NodeMcu. I sanded the top of the led to disperse the light and bent the pins in L shape. I then stuck the LED to the bottom of the NodeMcu so that it doesn't occupy much space. Now the NodeMcu can be placed upside down in the cardboard bottom we built earlier and the hemisphere can be stuck on top.

Yify! The major part of the build is done! Now the only things left are configuring the two downloaded apps. Go ahead and download them if you haven't because I shall be explaining how to configure them in the next steps with screenshots. So it'll be easier for you if you follow along.

Step 4: Setup Blynk

Make sure you've signed up for blynk and logged in to the app. Create a new project and the Auth token will be mailed to you. You'll need to enter this token in the "Auth" part of the code that I was talking about earlier. In blynk, click anywhere on the black screen to see the widget box appear. In the widget box, click on "button". You'll find that a button widget has been added. Click on it and select "PIN". Select gp5 from the list and you're done! It's worth noting that gp5 means gpio pin 5 of Arduino which mapps to pin D1 of NodeMcu. Also, make sure the button is set to "push", which should be set by default. So when the button is pressed, D1 of the NodeMcu will be triggered. Anyway, we're not going to press the button, let the IFTTT app do the job.

Step 5: Setup IFTTT

Again, make sure you've signed up and logged in to the IFTTT app. Click on the 3rd tab (bottom right) and select the "+" symbol on top right. From there, click on "this" which should be in blue colour. Search "space" in the search bar and click on it. Click on "ISS passes over a specific location" and select your location.

Now click on "that" and search for "webhooks" on the search bar. Click on "make a web request" and enter the URL. Select "put" in the method section and select "application/json" in the content type. In the body, type ["1"]

I know what you're thinking, I didn't elaborate about the URL section. Well, here you go. The URL format is https://IP/Auth/update/D5 Replace Auth with the Auth token of the blynk project and IP with blynk cloud IP of your country. To get the IP, open command prompt and type "ping blynk-cloud.com". For India, the IP is 188.166.206.43

Woh, that was a lot of configuration. But good news. We're done! We've completed making the ISS tracking globe.

Step 6: Look Up at the Sky!

There you go. Your very own ISS overhead indicator is ready to roll. From now on, every time the ISS hovers over your location, the cute globe will let you know. From what I've seen so far, the ISS crosses my location once or twice most days. There are a few days when it doesn't show up at all, but that's kinda rare. Somedays it even crosses three to four times.

Well it's always good to know there are people working up there and really feels exiting when they hover overhead. And if it's after sunset, you can even run out and have a look at it sweeping through the sky, and may be wave a hello!

A gentle reminder, this project is in the 1-hour contest. Please consider voting.

Step 7: Code Walk Through

This walkthrough is for the blink version. The power saving one is almost the same if not simpler. Here's all that's going on in the loop() function (since outside it is all initializations and some other basic stuff to get the development board running)

We begin by starting blynk using Blynk.run()

First step is to turn on the led by using digitalWrite() and setting pin D5 to HIGH

Now when the ISS passes overhead, ifttt is set to trigger gpio pin 5 i.e. D1 to HIGH and since D1 is connected to D7, D7 will read D1's state. So when D7 reads HIGH, the if() block is executed

Inside the if() block, a loop runs through setting D5 LOW then a 1 second delay and then D5 HIGH and again 1 second delay and so on fifteen times. Which means the LED will blink for 30 seconds.

Again, make sure the blynk button is set to "push" and not "switch"

1 Hour Challenge

This is an entry in the
1 Hour Challenge

2 People Made This Project!

Recommendations

  • Colors of the Rainbow Contest

    Colors of the Rainbow Contest
  • 1 Hour Challenge

    1 Hour Challenge
  • Growing Beyond Earth Maker Contest

    Growing Beyond Earth Maker Contest

26 Discussions

1
None
dpcons

Question 3 days ago on Step 5

Have this working somewhat. In testing, I'm using Blynk button. The blinking operation starts but doesn't stop after 30 sec. Have to restart to stop blinking. Blynk project identical to yours. Didn't make any code changes except auth, ssid and p/w. Thought you might have idea. Thanks Dan

1 answer
0
None
Artistikkdpcons

Answer 2 days ago

Thanks Dan, it was problem in the code I guess. The LED kept blinking even though D1 goes to LOW. I couldn't figure out the reason. I have updated the code and tested it again several times. It seems to work fine now. You can find the updated code in Step 2.
Thanks again!

0
None
Dave7hered

Question 6 days ago

Thanks for such a fun project! Very noob question (first time ever project with Arduino so waaaay more than 1 hour to this point ;-) I've got the LED flashing - even thought the ISS is not overhead. Not sure what the best troubleshooting process is. Any way to confirm that the IFTTT app is actually sending info to Blynk, and that Blynk is actually connecting to the NodeMCU?

1 answer
0
None
ArtistikkDave7hered

Answer 5 days ago

If the led is flashing, it means D1 is in high state for some reason. Try rechecking the connections.
To check if blynk is connected to NodeMcu, tap on your blynk project and tap the play button on top right you'll find a microcontroller symbol on top after that. Click on it and it'll show if the NodeMcu is online (connected)
To check if ifttt is triggering, try making a similar applet, only in place of ISS in 'this' condition, make a button widget. Now if you add the IFTTT button widget on your phone home screen and tap on it, it should simulate the ISS passing and blink the led.
I hope I didn't make it confusing :) Let me know if you need any help.

0
None
ToolboxGuy

8 days ago

How much time do you have to find it in the night sky? Any way to get a 5 minute warning light, so you can be , oh, looking up before it arrives?

3 replies
0
None
Randman80ToolboxGuy

Reply 7 days ago

Just indicate a location a bit further south west of your location. That will give you advance warning.

0
None
VinceL25ToolboxGuy

Reply 7 days ago

Check out the phone app ISS Notify. It has current and all future sightings of the space station. I know it is around for android...

0
None
ArtistikkToolboxGuy

Reply 8 days ago

The IFTTT app generally triggers the applet before around 5 to 10 minutes or exactly at the instant of the transient. But ISS generally stays visible in the sky for 2-4 minutes, if that's enough.
Or you can sign up for the service from NASA that'll give you a mail long before the transient occurs. https://spotthestation.nasa.gov/

0
None
Randman80

Question 7 days ago

OK, I have it working.
I deleted my applet on the IFTTT site.
I recreated it using the Windows app rather than the IOS app. The applet then ran successfully, but the LED wouldn't light. I then moved the LED to D2 and made changed the last of the URL in the IFTTT app from D1 to D2. Now it works. Don't know why it wouldn't operate D1, but it will operate D2. I should add that when I used the Blynk app on the IOS device, I was able to "Press" the button and make the LED flash on D1, Yet the IFTTT app wouldn't operate D1 but will operate D2.

0
None
L.L.Moorloch

Question 8 days ago on Step 2

What do you download the code to--other than your PC--and how do you open it in the Arduino IDE? Is it supposed to be connected some way to my computer? Please give more details.

2 answers
0
None
ArtistikkL.L.Moorloch

Answer 8 days ago

In case you're downloading it in your phone, transfer it to your pc via USB cable. Make sure your pc has Arduino IDE installed. Now if you double click on the code file, it should automatically open in the Arduino IDE!

0
None
L.L.MoorlochArtistikk

Reply 8 days ago

Thanks, I was assuming the Arduino IDE was a piece of hardware. (The IDE is an archaic hard drive acronym.)

0
None
matti04_electronics

Question 8 days ago

great project, especially the video is great, but does all the apps also work for IOS? and can you really make this in just one hour? greetings!

1 answer
0
None
Artistikkmatti04_electronics

Answer 8 days ago

Thank you!
Yes the apps work on iOS, I've provided appstore links. Anyway you may also use ifttt website instead of the app.
Coming to the 1 hour thing, if you directly upload the code I've attached (of course after making the required changes), you only spend time in configuring the two apps. So overall an hour should be enough.

0
None
Randman80

Question 9 days ago

Hi,
Fun project. I built one, but I am having a problem with the trigger from IFTTT. The code is working. It hits the Blynk servers and If I put 3v on pin D7, the LED blinks.
I had to renumber the GPIO pins to the GPIO#, 5,13,and 14, rather than using D1,D7,and D5.
My question is the IFTTT URL line ends in /update/D1. Is that the GPIO pin that it will trigger, or is that a command suffix that is not related to the i/o pins?

Thanks for a fun project! ( now if I can just get it to work .. :)
Chuck

4 answers
0
None
ArtistikkRandman80

Answer 8 days ago

Hello! May I know why you put 3v on D7?
And yes, /update/D1 is gpio pin 1 that it'll trigger. D1 means gpio 1, not D1 of NodeMcu. For example, to update pin D0 of NodeMcu which is gpio 16, you can write /update/D16.

0
None
Randman80Artistikk

Reply 8 days ago

Thanks for the reply.
I put the 3v on D7 to trigger the software. I should have said " when I touch 3v on D7 the led triggers" That simulates the trigger from the IFTTT app.
Thanks again.

Chuck

0
None
ArtistikkRandman80

Reply 8 days ago

You're welcome :)
By the way did you get your lamp working? Do let me know if there are any issues

0
None
GiorGio Felipe

9 days ago

I liked the project but I can not execute because the ip of Blynk here in Brazil does not work I got that 45.55.96.146 through the ping blynk-cloud.com already used the Indian of 188.166.206.43, and also did not work.
Would you help me?