TINKER PIEDESIGN IN INDIA

Smart dustbin lid

Wave over the bin: a servo opens the lid for two seconds, then closes it.

Sensor projectsultrasonicservo

Open in TinkerPie Studio

What you need

Wiring

HC-SR04P: TRIG → P10, ECHO → P11. Lid servo → S1 servo port.

Step by step

  1. Open Smart dustbin lid in TinkerPie Studio. It opens as blocks.
  2. Wire it: HC-SR04P: TRIG → P10, ECHO → P11. Lid servo → S1 servo port.
  3. Press Run to try it in the simulator. Use the sliders and buttons under the board picture to test it.
  4. Connect TinkerPie with a USB-C cable in Chrome or Edge, press Connect, then Download. Or, with Studio started from the TinkerPie launcher on your computer, open the Arduino C++ tab and press Build & Flash.
  5. Change something: a colour, a number, a sound. Then run it again.

The code

This is the program the blocks make. The same program runs in the simulator and on the board.

JavaScript
var distance;

basic.forever(function () {
  distance = sensors.ultrasonicCm(Pin.P10, Pin.P11);
  if (distance > 0 && distance < 15) {
    servos.setAngle(ServoPort.S1, 90);
    basic.showIcon(IconNames.Happy, Colors.Green);
    basic.pause(2000);
  } else {
    servos.setAngle(ServoPort.S1, 0);
    basic.clearScreen();
  }
  basic.pause(200);
});

servos.setAngle(ServoPort.S1, 0);
Arduino C++ (TinkerPie library)
// Smart dustbin lid
// Arduino C++ made by TinkerPie Studio from the blocks. Board: TinkerPie V1 (ESP32-S3).
// Arduino IDE: install the TinkerPie library (Studio menu > Arduino library), then Tools > Board > ESP32S3 Dev Module,
// USB CDC On Boot: Enabled, Flash Size: 16MB, Partition Scheme: 16M Flash (3MB APP/9.9MB FATFS), PSRAM: OPI PSRAM.
#include <TinkerPie.h>
using namespace tinkerpie;

double distance = 0;

void setup() {
  tinkerpie::begin();
  basic::forever([]() {
    distance = sensors::ultrasonicCm(Pin::P10, Pin::P11);
    if (distance > 0 && distance < 15) {
      servos::setAngle(ServoPort::S1, 90);
      basic::showIcon(IconNames::Happy, Colors::Green);
      basic::pause(2000);
    } else {
      servos::setAngle(ServoPort::S1, 0);
      basic::clearScreen();
    }
    basic::pause(200);
  });

  servos::setAngle(ServoPort::S1, 0);
}

void loop() {
  tinkerpie::loop();   // runs the forever blocks and handles events
}

More projects like this

Thirsty plant alarmA soil moisture sensor tells TinkerPie when the plant needs water: a sad face and a beep.Sensor projectsUltrasonic rulerMeasures how far your hand is, in centimetres, with an HC-SR04 sonar.Sensor projectsIntruder alarmA PIR motion sensor sees someone moving: red flashes and a siren.Sensor projectsWeather station on OLEDA DHT11 measures temperature and humidity; an OLED screen shows them with a bar.Sensor projectsRoom climate on an LCDAn AHT20 sensor and a 16 × 2 LCD. The matrix smiles when the room is comfortable.Sensor projectsFire alarmA flame sensor sees fire: red and orange flashing with a two-tone siren.Sensor projects