Skip to content

Cheap WiFi telepresence device for Ipad

3D model description

Now you can see everybody during your videoconferences with this basic telepresence device made with :

Wemos D1 board : http://a.co/5jSoID8
MG945 Servomotor: http://a.co/0s4OnFZ
Blynk platform: https://www.blynk.cc/
Arduino IDE: https://www.arduino.cc/en/main/software
A breadboard, some wires and electronic components (if you own an Arduino kit box you have everything you need)
Device operation: https://youtu.be/tfWtuBn1SNM

Complete instructions to make yours below.

3D printing settings

Assembly instruction


Very basic setup

Just power the servomotor with the 5V OUTPUT. Seems to work but the high power consumption of the servomotor can sometimes disconnect the usb port or the wifi connection.

Basic setup

Power the servomotor with external supply

Complete setup

external supply + Led lights and switch button

Software instructions
Install the Wemos D1R2 or D1R1 board

To compile and upload the code in your board you have to install the Wemos D1 in your arduino IDE.The Wemos D1 board is basically a layout clone of the Arduino board wich integrate an ESP8266 (a low-cost Wi-Fi microchip with full TCP/IP stack and microcontroller capability).

/!\ WARNING 1: the board supply is 5V but the operating voltage is 3.3V. All GPIO pins supply 3.3V./

//!\ WARNING 2: GPIO pins mapping is different from Arduino board. (See the map below) e.g if you want to use the D6 pin you have to code the number 12./

Add the library: http://arduino.esp8266.com/stable/package_esp8266com_index.json

Go to the boards manager

Install packages

Now you can find your board in the list (D1 R2 or D1 R1)

Just set the upload speed to 115200 bauds

Input/output pins mapping

Create the Blynk app on smartphone
Install the Blynk library for Arduino

Blynk Library establishes communication between your hardware, Blynk Cloud and Blynk Apps.

*Complete instruction here

*Further information on how Blynk works

Install Blynk app on your Android or IOS smartphone

Blynk for Android
Blynk for IOS

Create your app

*Just create new project, choose a name, select the WeMos D1 Device and Wifi.

Configure your app

In your app create two controls with the "+" button:

A "slider" in virtual pin 1
A"step H" in virtual pin 2 for controlling with arrows by step of 25 degrees your device

Here we go !

Now you just have to add your "Auth Token" received by email in the code below with your WiFi credentials.

Upload your sketch in your board.

Share your app with your correspondents.

Code
Arduino Code

#define BLYNK_PRINT Serial
#include
#include
#include
Servo Myservo; // declare servomotor
BlynkTimer timer; // declare timer
int lastPosition = 90;
int servoSpeed = 10; // delay for one step (1 degree) change this value to slow down or accelarate servomotor

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "";

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "";
char pass[] = "";

void CheckConnection() {

if (WiFi.status() != WL_CONNECTED) {
digitalWrite(14, HIGH); //red light ON
digitalWrite(4, LOW); //green light OFF
Serial.println("lost connection to Blynk server");
delay(250);
Blynk.begin(auth, ssid, pass); // try to reconnect
}
else {
digitalWrite(14, LOW); //red light OFF
digitalWrite(4, LOW); //green light OFF
delay(250);
digitalWrite(4, HIGH); //green light ON (blink)
}
}

void setup()
{
// Debug console
Serial.begin(115200);
pinMode(12, OUTPUT); //pin 6 on wemos D1
pinMode(14, OUTPUT); //pin 5 on wemos D1
pinMode(4, OUTPUT); //pin 4 on wemos D1

digitalWrite(14, HIGH); //red light ON
digitalWrite(4, LOW); //green light OFF

delay(250);

Serial.print("Connecting to Blynk...");
Blynk.begin(auth, ssid, pass); // Connect Wifi and Blynk

while (Blynk.connect() == false) {
delay(250);
Serial.print(".");
}
Serial.println("Blynk connected successfully");

// WIFI and Blynk connected Red LED OFF, Green LED ON
digitalWrite(14, LOW);
digitalWrite(4, HIGH);

// Servo motor first position 90°C
Myservo.attach(12);
Myservo.write(90);
delay(750);
Myservo.detach(); // Detach for saving battery power
timer.setInterval(8000L, CheckConnection); // set up timer ; check if still connected every 11 seconds
}

void loop()
{
Blynk.run();
timer.run();
}

BLYNK_WRITE(V1) // Move servomotor with the range slider in Blynk App
{
Myservo.attach(12);
delay(50);
// program to slowdown servomotor go from last position to user position in small step
if (lastPosition < param.asInt()) {
for (int i = lastPosition; i <= param.asInt(); i++) {
Myservo.write(i);
delay(servoSpeed);
}
}
if (lastPosition > param.asInt()) {
for (int i = lastPosition; i >= param.asInt(); i--) {
Myservo.write(i);
delay(servoSpeed);
}
}
delay(100);
Myservo.detach(); // Detach for saving battery power
Blynk.virtualWrite(V2, param.asInt()); // synchronize position of range slider with position of arrows
lastPosition = param.asInt(); // save the new position
}

BLYNK_WRITE(V2) // Move servomotor with left and right arrow in Blynk app
{
Myservo.attach(12);
delay(50);
// program to slowdown servomotor go from last position to user position in small step
if (lastPosition < param.asInt()) {
for (int i = lastPosition; i <= param.asInt(); i++) {
Myservo.write(i);
delay(servoSpeed);
}
}
if (lastPosition > param.asInt()) {
for (int i = lastPosition; i >= param.asInt(); i--) {
Myservo.write(i);
delay(servoSpeed);
}
}
delay(100);
Myservo.detach();// Detach for saving battery power
Blynk.virtualWrite(V1, param.asInt()); // synchronize position of arrows with position of the range slider
lastPosition = param.asInt(); // save the new position
}

  • 3D model format: STL

Tags

Creator

Followers Followings 0
Downloads 4753

I am a PhD student in a research and teaching unit at University of Geneva. My PhD work focuses on conceptual change in physics through the use of augmented reality systems. I notably mentor graduate students in a course on serious game design. I have also previous experience in the field of Citizen Sciences (research), workflow based e-learning systems (research), 3D modelling, web and game development.

License

CC BY NC SA

Similar 3D files

Best sellers of the category Gadget


Add a comment


Would you like to support Cults?

You like Cults and you want to help us continue the adventure independently? Please note that we are a small team of 3 people, therefore it is very simple to support us to maintain the activity and create future developments. Here are 4 solutions accessible to all:

  • ADVERTISING: Disable your AdBlock banner blocker and click on our banner ads.

  • AFFILIATION: Make your purchases online by clicking on our affiliate links here Amazon, Gearbest, Banggood, Aliexpress or Ebay.

  • DONATE: If you want, you can make a donation via PayPal here.

  • WORD OF MOUTH: Invite your friends to come, discover the platform and the magnificent 3D files shared by the community!