If you are interested where exactly at the moment the ISS (International Space Station) is located, then this project is for you.
Inside the device are two stepper motors that control the position of the laser. The illumination of that part of the Earth on which the sun's rays fall is also implemented.
Tools and materials:
-3D-printed Earth with a diameter of 18 cm;
-3D printer;
-Copper tube;
-Concrete tile;
-Wemos D1 Mini module with Wi-Fi;
- Servo drive EMAX ES3352 MG;
-Step engine 28BYJ-48 with driver board ULN2003;
-10 LEDs NeoPixels;
-Laser with a wavelength of 405 nm;
- Limit switch;
- Power supply 5V 3A;
Step One: 3D Printing
To assemble all the equipment you need to print the details of the frame. You can download files for printing here.
The frame has three parts:
-base - for mounting a stepper motor, WEMOS, Neopixels tape and copper tube.
- the middle part for installing the limit switch;
- The upper part is for mounting a servomotor.
Step Two: Connect and Build
For power, a voltage of 5V 3A will be supplied. Power is supplied from the connector to the step driver, laser, LEDs and the Wemos module.
Next you need to make a connection to Wemos:
1) Step driver
IN1-> D5
IN2-> D6
IN3-> D7
IN4-> D8
2) Servo motor
Data Servo Pin -> D1
3) LEDs
Neopixels Pin -> D2
4) Limit switch
Two switch pins on GND and D3
Step Three: Code
In order for two engines to move synchronously with the ISS, you need to get the position of the ISS in real time:
To do this, we will first use the API from Open notify here
Then you need to analyze the data to get the ISS location value using data analysis: ArduinoJson Library
#include 0) {// Parsing
const size_t bufferSize = JSON_OBJECT_SIZE (2) + JSON_OBJECT_SIZE (3) + 100;
DynamicJsonBuffer jsonBuffer (bufferSize);
JsonObject & root = jsonBuffer.parseObject (http.getString ()); // Parameters
const char * message = root ["message"];
const char * lon = root ["iss_position"] ["longitude"];
const char * lat = root ["iss_position"] ["latitude"]; // Output to serial monitor
Serial.print ("Message:");
Serial.println (message);
Serial.print ("Longitude:");
Serial.println (lon);
Serial.print ("Latitude:");
Serial.println (lat);
}
http.end (); // Close connection
}
delay (50000);
}
Following code Arduino allows you to obtain the location of the ISS to move the laser to the desired location on the Earth’s surface and obtain the position of the Sun to illuminate the corresponding LEDs on the Earth’s surface, illuminated by the Sun.
ISS_Tracker_Final.ino
All is ready.