Yuancong Jing’s concept

Aroma diffuser for Meditate

I want to use Arduino to do a project; use an aroma diffuser to help people meditate; first, the aroma diffuser can be equipped with a bracelet, which can be placed on top of the aroma diffuser. At the same time, the bracelet can rotate on the aroma diffuser, so that , this bracelet can control the startup time and timing of the aromatherapy machine. Second: this bracelet can be taken off and turned in the hand, just like normal people use Buddhist beads. As the user turns the smart bracelet, the fragrance of the aromatherapy machine will also change. It can get thicker and thicker. Because this rotation process controls the switch of the aroma diffuser to release fragrance.

I have already have a idea of how the things works, The part list is below:

  • Hall Effect Sensor: For detecting the magnetic connection.
  • Rotary Encoder: Installed on the bracelet for tracking rotations.
  • Arduino Control Board: To process signals and control logic.
  • Bluetooth Module: For wireless communication between the bracelet and diffuser.
  • Relay Module: To control the power and intensity of the diffuser.
  • LED Lights and/or Buzzer: For user feedback.
  • Battery: To power the bracelet.

I might need a smell Arduino set into the bracelet, for this Rotary encoder to works.

This is a hard concept. But i really want to try. i have already draw the concept and made quick model just like the image i uploaded.

Kira’s Final Project Planning

Material Preparation:
Photoresistor: used to detect the ambient light intensity.
Color LED: used to display different colors.
Microcontroller (e.g. Arduino): used to control the LED and read the value of the photoresistor.
Resistor: used to limit the current and protect the LED and the photoresistor.
Breadboard and/or soldering tool: used to build the circuit.
Wires: to connect the parts of the circuit.
Power source: can be a battery or a stand.
Sensors (optional): such as temperature and humidity sensors for weather-related functions.
Programming cable: connects the microcontroller to the computer.

Circuit diagram design:
Connect the photoresistor to one of the analog inputs of the Arduino.
Connect each of the RGB LED color pins (red, green, blue) to a digital output of the Arduino through appropriate resistors.
If needed, connect the sensor other to the Arduino.
Connect the power supply:
Ensure that the microcontroller has a stable power supply.
Choose a battery or adapter as needed.
Consider additional features:
To control the color according to time or weather changes, an Ethernet module (e.g. ESP8266) may be needed to get the time or data.
Write and upload code:
Write code to read the value of the photoresistor and control the brightness of the LED or switch it on/off based on that value.
Write code to change the LED color, either based on time or weather data obtained from the network.

Carol’s IoT and Final Project Planning

Bill of Materials (BOM):


Clear Acrylic Sheets 1/8″ Thick 4″ x 6″https://www.amazon.com/gp/product/B0CLHQZJVZ/ref=ox_sc_act_title_1?smid=A37FRF5AURRF9M&psc=1

LED light

Idea4: Stainless Steel Hollow Ball (I want an opaque plastic or acrylic ball, but I don’t know if the thermal conductivity will be good enough): https://www.amazon.com/gp/product/B0BQZRW4VC/ref=ox_sc_act_image_1?smid=A2T37KO80TMWQQ&th=1

Possible temperature sensors:

TMP36 – Analog Temperature sensor – TMP36 https://www.adafruit.com/product/165

reference instruction https://www.instructables.com/TMP36-Temperature-Sensor-Arduino-Tinkercad/

Adafruit PCT2075 Temperature Sensor – STEMMA QT / Qwiic https://www.adafruit.com/product/4369

LED light

Rough draft circuit diagram:

Idea1 (a Playback Counting Board for YouTubers. After the video playback reaches a specific value 1000, the YouTube acrylic panel light on the desktop will be turned on) possible code:

const char *ssid = “YourWiFiSSID”;
const char *password = “YourWiFiPassword”;

const int buttonPin = D2; // Connect the push button to pin D2
const int ledPin = D3; // Connect the LED to pin D3

volatile int playbackCount = 0;

void setup() {
pinMode(buttonPin, INPUT_PULLUP);
pinMode(ledPin, OUTPUT);


attachInterrupt(digitalPinToInterrupt(buttonPin), incrementPlaybackCount, FALLING);

void loop() {
if (playbackCount >= 1000) {
digitalWrite(ledPin, HIGH); // Turn on the LED when playback count reaches 1000
} else {
digitalWrite(ledPin, LOW); // Turn off the LED if playback count is less than 1000

void incrementPlaybackCount() {
Serial.println(“Playback Count: ” + String(playbackCount));

void connectToWiFi() {
WiFi.begin(ssid, password);
Serial.print(“Connecting to WiFi”);

while (WiFi.status() != WL_CONNECTED) {

Serial.println(“\nConnected to WiFi”);

In this code:

  • The button is connected to pin D2 and set up with a pull-up resistor.
  • The LED is connected to pin D3.
  • The playbackCount is a counter that increments when the button is pressed (interrupt triggered).
  • The LED will turn on when the playback count reaches 1000.
  • The ESP8266 connects to the WiFi network using the provided credentials.

Idea4 (a Divinationcrystal ball. When your hand is close to the crystal ball for a period of time, the heat sensor will sense the heat and will light up the built-in LED lights):

Possible code:

const int heatSensorPin = A0; // Connect the heat sensor to analog pin A0
const int ledPin = 13; // Built-in LED on most Arduino boards

const int heatThreshold = 300; // Adjust this value based on your sensor and environment

void setup() {
pinMode(heatSensorPin, INPUT);
pinMode(ledPin, OUTPUT);

void loop() {
int heatValue = analogRead(heatSensorPin);
Serial.println(“Heat Value: ” + String(heatValue));

if (heatValue > heatThreshold) {
// If heat is detected, turn on the LED
digitalWrite(ledPin, HIGH);
} else {
// If no heat is detected, turn off the LED
digitalWrite(ledPin, LOW);

delay(1000); // Adjust the delay as needed

Jinny’s Final device design progress☯️

Theme :Cyber Buddhist niche

My topic is digital faith, how is the digital changing the way we believe

Kneel on the mat in front of the electronic shrine, then insert the electronic incense into the incense burner, and the machine will print the result of your request

Cyber Buddhist niche style design:

I drew a design of a Buddha statue that will be projected onto the screen

Materials required(BOM):

press sensor, vibration sensor, printing module

Circuit diagram and code:

The press sensor controls the mat, the vibration sensor controls the electronic incense, and the printing module controls the final printed ticket

It’s so complicated! There are really three interactive parts, which is really difficult. In the follow-up production, if it is too difficult, I may reduce one interactive part, so maybe remove the induction of kneeling or the part of burning incense.

(Of course, if I have the ability, I will complete all three interactive parts)

Jinny ‘s final project ideas

1:Slot machine Help you choose

Designed for me who chooses phobia—When you need to make a choice, go to the category you want to make a choice on the machine, like “What to eat,” “What to wear,” and then tap the top of the slot machine, and the slot machine will help you make a choice

2: Coin sorting + counting piggy banks

As a newcomer to the United States,I can’t remember the denomination of each coin, and I was eager to find out how much my coins added up to, so I needed a piggy bank. It can automatically sort the denomination of coins and calculate the total, and the savings calculation is very practical.

3: Office chair that vibrates

Work or study sitting too long is not good for your health, there is a timer on the chair, when you sit and study for many hours without getting up, the chair will vibrate and swing and light up the red light, indicating you: hurry up and rest for a while

Jin’s Final Project Ideas

All of my ideas are come from my life.

IDEA 1: Voice Control Lamp
I have two lamps in my bedroom. One is a ground lamp another is a table lamp. The switches of both of them are far away from my bed. Everytime i wanna turn down the light, i have to get up which is annoying. So i wish i can have a Voice control lamp just like the Amazon Echo and Siri that i can talk to. This idea is quiet normal, but it can save me money to buy a new lamp :).(lol)

IDEA 2: Clothing Suggestion Board
Weather in NYC changed randomly. I’d like to have a CLOTH SYGGESTION BOARD to give me advise that what i should wear everyday so that i won’t wear the wrong clothes.

Zhiwen(Kira) Fu’s Final Concepts

1. plant grow light controller:

Use an Arduino to control a set of LED grow lights to automatically adjust the light intensity according to different times of the day, mimicking the natural photoperiod and helping indoor plants grow.

2. Holiday countdown device:

Make a device that shows how many days are left until a specific holiday. It displays numbers and can play a holiday song or display a special message on the day of the holiday.

3. smart night light:

Create a nightlight that automatically turns on or off using a photoresistor. The nightlight will automatically turn on when the environment becomes dark and turn off when the environment becomes bright. Color LEDs can be further added to display different colors depending on the time of day or weather.

Yuancong Jing Rex glove

“Hand Glove REX From Naruto Pain ”

In the transcendent world of “Naruto”, the character Pain (Pein), particularly his manifestation as Shurado , presents a fascinating amalgamation of mystic lore and mechanized warfare.

Drawing inspiration from this iconic figure, we introduce “Rex” – a hand glove design project that transcends the boundary between the fictional realm and practical application

sketches for the design concept

The Part list:

  • Flex sensor * 1.
  • 10k Orm resist
  • Led Board Number*8
  • Lead circle board * 7
  • Adafruit Gemma Mo
  • Jumper electric wire
  • electric wire * 8


#include <Adafruit_NeoPixel.h>

#define FLEX_PIN A1
#define LED_PIN 1
#define LED_COUNT 60
#define MAX_BRIGHTNESS 150

Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);

int lastFlexPosition = 0;
int state = 0;
unsigned long lastBlinkTime = 0;
const int blinkInterval = 100;

void setup() {

void loop() {
  int flexPosition = analogRead(FLEX_PIN);

  if (lastFlexPosition > 650 && flexPosition <= 650) {
    state = (state + 1) % 7;

  lastFlexPosition = flexPosition;

  int litLEDs = map(flexPosition, 550, 800, 0, LED_COUNT);
  litLEDs = constrain(litLEDs, 0, LED_COUNT);

  switch (state) {
    case 0: setStripColor(litLEDs, strip.Color(255, 0, 0)); break;
    case 1: setStripColor(litLEDs, strip.Color(0, 0, 255)); break;
    case 2: setStripColor(litLEDs, strip.Color(0, 255, 0)); break;
    case 3: blinkStrip(litLEDs, strip.Color(255, 0, 0)); break;
    case 4: blinkStrip(litLEDs, strip.Color(0, 0, 255)); break;
    case 5: blinkStrip(litLEDs, strip.Color(0, 255, 0)); break;
    case 6: randomBlink(litLEDs); break;


void setStripColor(int litLEDs, uint32_t color) {
  for (int i = 0; i < LED_COUNT; i++) {
    uint32_t dimmedColor = dimColor(color);
    strip.setPixelColor(i, i < litLEDs ? dimmedColor : strip.Color(0, 0, 0));

void blinkStrip(int litLEDs, uint32_t color) {
  unsigned long currentMillis = millis();

  if (currentMillis - lastBlinkTime > blinkInterval) {
    lastBlinkTime = currentMillis;
    for (int i = 0; i < LED_COUNT; i++) {
      if (i < litLEDs) {
        uint32_t currentColor = strip.getPixelColor(i);
        uint32_t dimmedColor = dimColor(color);
        strip.setPixelColor(i, currentColor ? strip.Color(0, 0, 0) : dimmedColor);
      } else {
        strip.setPixelColor(i, strip.Color(0, 0, 0));

void randomBlink(int litLEDs) {
  unsigned long currentMillis = millis();

  if (currentMillis - lastBlinkTime > blinkInterval) {
    lastBlinkTime = currentMillis;
    for (int i = 0; i < LED_COUNT; i++) {
      if (i < litLEDs) {
        uint32_t randomColor = strip.Color(random(256), random(256), random(256));
        uint32_t dimmedColor = dimColor(randomColor);
        strip.setPixelColor(i, dimmedColor);
      } else {
        strip.setPixelColor(i, strip.Color(0, 0, 0));

uint32_t dimColor(uint32_t color) {
  uint8_t r = (uint8_t)(color >> 16);
  uint8_t g = (uint8_t)(color >> 8);
  uint8_t b = (uint8_t)color;

  r = (r * MAX_BRIGHTNESS) / 255;
  g = (g * MAX_BRIGHTNESS) / 255;
  b = (b * MAX_BRIGHTNESS) / 255;

  return strip.Color(r, g, b);

Wire connections

This image has an empty alt attribute; its file name is IMG_0585-472x1024.png
Test the code and the flexsensor

soldering to the Gemma Mo

Final test

Fnal look