Stufin
Home Quick Cart Profile

DIY Solar Powered Ferris Wheel Kit

Buy Now on Stufin

Solar Panel

+ TypeMonocrystalline
+ Power Output5V, 1A
+ Efficiency18%

DC Motor

+ TypeBrushed
+ Voltage5V
+ Current200mA
+ Speed100-500 RPM

Gearbox

+ Ratio1:10
+ MaterialMetal

IoT Module

+ Wi-Fi/Bluetooth 4.0

+ MicrocontrollerESP32
+ Operating Frequency2.4GHz

Ferris Wheel

+ MaterialABS Plastic
+ Diameter150mm
+ Height200mm

Power Consumption

+ Average0.5W
+ Peak1.5W

What's Included

Solar Panel Module

DC Motor and Gearbox Assembly

IoT Module

Ferris Wheel Assembly

Assembly Instructions

Power Cables and Connectors

Mobile App and Web Interface Access

Intended Use

The DIY Solar Powered Ferris Wheel Kit is designed for educational and hobbyist purposes. It is suitable for individuals aged 12 and above, and is an ideal project for STEM education, robotics clubs, and DIY enthusiasts.

Pin Configuration

  • DIY Solar Powered Ferris Wheel Kit Pinout Guide
  • The DIY Solar Powered Ferris Wheel Kit is an innovative IoT component that combines renewable energy harvesting with a fascinating mechanical system. This guide provides a detailed explanation of each pin on the kit's microcontroller and their connections.
  • Microcontroller Pinout:
  • The microcontroller used in this kit has a total of 20 pins, divided into two rows of 10 pins each. The pinout is as follows:
  • Row 1:
  • 1. VCC (Pin 1): Power supply pin for the microcontroller. Connect to a 3.3V or 5V power source.
  • 2. GND (Pin 2): Ground pin for the microcontroller. Connect to the negative terminal of the power source or the ground terminal of the solar panel.
  • 3. Solar Panel Voltage Input (Pin 3): Connect the positive terminal of the solar panel to this pin.
  • 4. Battery Voltage Input (Pin 4): Connect the positive terminal of the rechargeable battery to this pin.
  • 5. Motor Driver Input 1 (Pin 5): Connect to the first motor driver IC (e.g., L298N) to control the Ferris wheel's motor.
  • 6. Motor Driver Input 2 (Pin 6): Connect to the second motor driver IC (e.g., L298N) to control the Ferris wheel's motor.
  • 7. I2C SCL (Pin 7): Serial clock pin for I2C communication. Connect to I2C devices such as sensors or displays.
  • 8. I2C SDA (Pin 8): Serial data pin for I2C communication. Connect to I2C devices such as sensors or displays.
  • 9. UART TX (Pin 9): Transmit pin for UART communication. Connect to a serial terminal or a Bluetooth module.
  • 10. UART RX (Pin 10): Receive pin for UART communication. Connect to a serial terminal or a Bluetooth module.
  • Row 2:
  • 11. Digital Input/Output 1 (Pin 11): General-purpose digital I/O pin. Can be used for connecting sensors, switches, or LEDs.
  • 12. Digital Input/Output 2 (Pin 12): General-purpose digital I/O pin. Can be used for connecting sensors, switches, or LEDs.
  • 13. Analog Input 1 (Pin 13): Analog-to-digital converter (ADC) pin. Can be used for reading analog sensor values.
  • 14. Analog Input 2 (Pin 14): Analog-to-digital converter (ADC) pin. Can be used for reading analog sensor values.
  • 15. PWM Output 1 (Pin 15): Pulse-width modulation (PWM) output pin. Can be used for controlling the speed of the Ferris wheel's motor.
  • 16. PWM Output 2 (Pin 16): Pulse-width modulation (PWM) output pin. Can be used for controlling the speed of the Ferris wheel's motor.
  • 17. Interrupt Pin (Pin 17): External interrupt pin. Can be used for interrupt-driven programming.
  • 18. Reset Pin (Pin 18): Active-low reset pin. Connect to a reset button or a capacitor for automatic reset.
  • 19. 3.3V Regulator Output (Pin 19): 3.3V voltage regulator output pin. Can be used to power external devices.
  • 20. GND (Pin 20): Ground pin for the microcontroller. Connect to the negative terminal of the power source or the ground terminal of the solar panel.
  • Connection Structure:
  • 1. Connect the solar panel to the solar panel voltage input pin (Pin 3) and the negative terminal to the ground pin (Pin 2).
  • 2. Connect the rechargeable battery to the battery voltage input pin (Pin 4) and the negative terminal to the ground pin (Pin 2).
  • 3. Connect the motor driver ICs (e.g., L298N) to the motor driver input pins (Pin 5 and Pin 6).
  • 4. Connect I2C devices (e.g., sensors or displays) to the I2C SCL pin (Pin 7) and I2C SDA pin (Pin 8).
  • 5. Connect a serial terminal or a Bluetooth module to the UART TX pin (Pin 9) and UART RX pin (Pin 10).
  • 6. Connect digital sensors, switches, or LEDs to the digital input/output pins (Pin 11 and Pin 12).
  • 7. Connect analog sensors to the analog input pins (Pin 13 and Pin 14).
  • 8. Connect the Ferris wheel's motor to the PWM output pins (Pin 15 and Pin 16).
  • 9. Connect a reset button or a capacitor to the reset pin (Pin 18).
  • 10. Connect external devices that require a 3.3V power supply to the 3.3V regulator output pin (Pin 19).
  • Important Note:
  • Ensure proper voltage and current ratings for all connections.
  • Use appropriate resistors, capacitors, and voltage regulators to prevent damage to the microcontroller and external devices.
  • Refer to the microcontroller's datasheet and the Ferris wheel kit's documentation for specific connection guidelines and programming instructions.

Code Examples

DIY Solar Powered Ferris Wheel Kit Documentation
Overview
The DIY Solar Powered Ferris Wheel Kit is a innovative IoT component that combines sustainable energy harvesting with interactive mechanical systems. This kit allows users to build and program a solar-powered Ferris wheel that can be controlled and monitored remotely. The kit consists of a solar panel, a rechargeable battery, a motor, a Ferris wheel module, and a microcontroller board.
Technical Specifications
Solar Panel: 6V, 1.5W
 Rechargeable Battery: 3.7V, 1000mAh
 Motor: DC, 6V, 100rpm
 Ferris wheel module: 12-segments, 360-degree rotation
 Microcontroller Board: Arduino-compatible, Wi-Fi enabled
Programming and APIs
The DIY Solar Powered Ferris Wheel Kit comes with a custom Arduino library that provides an easy-to-use API for controlling and monitoring the Ferris wheel. The library provides the following functions:
`setSpeed(int speed)`: Sets the rotation speed of the Ferris wheel (0-100rpm)
 `rotate(int angle)`: Rotates the Ferris wheel to a specific angle (0-360 degrees)
 `getBatteryLevel()`: Returns the current battery level (0-100%)
 `getSolarPowerLevel()`: Returns the current solar power level (0-100%)
Code Examples
### Example 1: Basic Ferris Wheel Control
This example demonstrates how to control the Ferris wheel's rotation speed and angle using the API.
```c
#include <SolarFerrisWheel.h>
SolarFerrisWheel ferrisWheel;
void setup() {
  ferrisWheel.begin();
}
void loop() {
  ferrisWheel.setSpeed(50); // Set rotation speed to 50rpm
  ferrisWheel.rotate(90); // Rotate to 90 degrees
  delay(1000);
  ferrisWheel.setSpeed(20); // Set rotation speed to 20rpm
  ferrisWheel.rotate(180); // Rotate to 180 degrees
  delay(1000);
}
```
### Example 2: Remote Monitoring and Control using Wi-Fi
This example demonstrates how to monitor the Ferris wheel's battery and solar power levels remotely using Wi-Fi and a web interface.
```c
#include <SolarFerrisWheel.h>
#include <WiFi.h>
SolarFerrisWheel ferrisWheel;
WiFiServer server(80);
void setup() {
  ferrisWheel.begin();
  WiFi.begin("your_wifi_ssid", "your_wifi_password");
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }
  server.begin();
}
void loop() {
  WiFiClient client = server.available();
  if (client) {
    String request = client.readStringUntil('
');
    if (request.indexOf("getBatteryLevel") != -1) {
      client.println(ferrisWheel.getBatteryLevel());
    } else if (request.indexOf("getSolarPowerLevel") != -1) {
      client.println(ferrisWheel.getSolarPowerLevel());
    }
    client.stop();
  }
}
```
### Example 3: IoT Integration with Cloud Services
This example demonstrates how to integrate the Ferris wheel with cloud services using APIs to send and receive data.
```c
#include <SolarFerrisWheel.h>
#include <WiFi.h>
#include <HTTPClient.h>
SolarFerrisWheel ferrisWheel;
WiFiClient wifiClient;
HTTPClient http;
void setup() {
  ferrisWheel.begin();
  WiFi.begin("your_wifi_ssid", "your_wifi_password");
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }
}
void loop() {
  int batteryLevel = ferrisWheel.getBatteryLevel();
  int solarPowerLevel = ferrisWheel.getSolarPowerLevel();
  String json = "{""batteryLevel"":" + String(batteryLevel) + ",""solarPowerLevel"":" + String(solarPowerLevel) + "}";
  http.begin("https://your-cloud-service.com/api/ferriswheel");
  http.addHeader("Content-Type", "application/json");
  int httpCode = http.POST(json);
  if (httpCode == 200) {
    Serial.println("Data sent successfully!");
  } else {
    Serial.println("Error sending data: " + http.getString());
  }
  http.end();
  delay(10000);
}
```
These code examples demonstrate the versatility and potential of the DIY Solar Powered Ferris Wheel Kit in various IoT applications.