Fabriquer une terrasse pour SPA gonflable, avec couvercle motorisé.

L’idée est venu au début du confinement : acheter un SPA gonflable mais faire quelque chose de sympa autour et le protéger (contre les griffes de chats par exemple !).
Je partage donc ma création avec vous, un terrasse de 11 m² surélevée, qui intègre un SPA gonflable 4 places de 1,8 m de diamètre.
Une trappe permet l’accès à la commande du SPA (pompe, chauffage, bulles…)
Un couvercle coulissant le recouvre quand on ne s’en sert pas, il est motorisé grâce à un moteur de portail, il est pilotable depuis un smartphone ou en commande vocale avec Alexa, tout comme les 4 spots le long du mur.

Fabriquer une terrasse pour SPA gonflable, avec couvercle motorisé.
Lire cette vidéo sur YouTube.

Matériel :

Outillage :

  • Perceuse à colonne
  • Scie à onglet
  • Visseuse
  • Défonceuse (spots)
  • Scie sauteuse
  • Scie sur table
  • Outillage à main

Durée de réalisation : environ 60H

Coût total : environ 1200 € (Spa compris). Détail :
• 500 vis SPAX : 49.99 €
• 100 vis 8x80 : 19.10 €
• 15 poteaux : 88.50 €
• 10 lambourdes : 119.00 €
• 55 lames de terrasse : 323.40 €
• 3 panneaux occultants : 41.70 €
• SPA : 309.00 €
• 4 roues (galets) : 39.96 €
• 3 rails : 29.97 €
• 4 spots : 68.99 €
• Divers : 100.00 €

Plan :

Schéma électronique du couvercle :

Code Arduino du couvercle :

MotorSPA.zip

/*
Resettable electronic circuit breaker for motorized hot tub cover
MagicManu 06/2020
https://www.magicmanu.com
*/

#define Current_sensor A0  // The ACS712 sensor analog input pin (-20A 0 +20A => 0 512 1024)
#define Potentiometer A2   // Potentiometer (0 to 1024)
#define ResetButton 12     // RaZ button
#define LedGreen 4         // Green LED ready
#define LedRed 6           // Red LED error
#define Relay 2            // Relay (HIGH = stop)

long TimeRef = 0;   // Time at the start of current is exceeds
int Cpt = 0;        // Number of millisecond of current is exceeds

boolean ButtonState;
float CurrentValue;
float PotenValue;
float RealCurrentValue;

boolean Exceeds = LOW;
boolean STOP = LOW;


void setup() {
 
  pinMode(Current_sensor, INPUT);
  pinMode(Potentiometer, INPUT);
  pinMode(ResetButton, INPUT_PULLUP);
  pinMode(LedGreen, OUTPUT);
  pinMode(LedRed, OUTPUT);
  pinMode(Relay, OUTPUT);

  digitalWrite(LedGreen, HIGH);
  digitalWrite(LedRed, LOW);
  digitalWrite(Relay, LOW);
}

void loop() {

  ButtonState  = digitalRead(ResetButton);
  CurrentValue = analogRead(Current_sensor);
  PotenValue   = analogRead(Potentiometer);

  // To convert 512-612 to 0-1024 (0A - 6A)
  RealCurrentValue = (CurrentValue - 512) * 10.24;

  // Current is exceeds
  if (RealCurrentValue > PotenValue && !Exceeds && !STOP){
    TimeRef = millis();
    Exceeds = HIGH;
  }

  if (RealCurrentValue < PotenValue){
    Exceeds = LOW;
  }


  Cpt = millis() - TimeRef;

  // 0,25 seconds : stop
  if (Exceeds && Cpt > 250){
    STOP = HIGH;
    digitalWrite(Relay, HIGH);
    digitalWrite(LedGreen, LOW);  
    digitalWrite(LedRed, HIGH);        
  }

  // 5 seconds : we can start
  if (STOP && Cpt > 5000){
    digitalWrite(LedGreen, HIGH); // Ready
    
    // Reset
    if (!ButtonState){
      STOP = LOW;
      digitalWrite(Relay, LOW);
      digitalWrite(LedRed, LOW);  
    }    
  }
}

Merci à Alex pour son aide sur la pose des dalles, la tranchée et la peinture du mur par exemple 😉