simpteam
Published © CC BY-NC-SA

How To Make an Arduino Japanese Kotatsu (Heating Table)

How To Make ARDUINO Kotatsu! Kotatsu with ARDUINO starts from scratch, winter project! World's first guide to make Arduino kotatsu.

ExpertShowcase (no instructions)10 hours811
How To Make an Arduino Japanese Kotatsu (Heating Table)

Things used in this project

Hardware components

Arduino Nano R3
Arduino Nano R3
or CH340
×1
5V Relay Module
×1
Smartphone 5V Charger
×1
60℃ Bimetal Sensor
×1
60W Bulb
×1
Push Switch
×1
Cover type Toggle Switch
×1
500Ω Adjustable Resistance
×1
Glass Body Fuses(250V 0.6~1A)
×1
3P Terminal Block
×1
Fuses socket
×1
Rocker Switch
×1
LED (generic)
LED (generic)
×1
Resistor 330 ohm
Resistor 330 ohm
×1
Thermistor Sensor
×1
Resistor 10k ohm
Resistor 10k ohm
×1
Inlet Socket(P)
×1
Inlet Socket(N)
×1
Speaker: 0.25W, 8 ohms
Speaker: 0.25W, 8 ohms
×1
Character LCD i2c 16x02
×1
UL1007 AWG24
×1
Shrinkable tube
×1
Steel basket
×1
Metal washer
×1
Various screw
×1
Rubber tree (solid wood)
×1
Oil primer
×1
Finish oil
×1
Corner bracket
×1
L bracket
×1

Hand tools and fabrication machines

Soldering iron (generic)
Soldering iron (generic)
Hand saw
Electric miter saw
Electric Trimmer
Electric saending
Digilent Screwdriver
Digilent Screwdriver
Rubber hammer
Hand drill

Story

Read more

Custom parts and enclosures

Kotatsu Frame 1

Kotatsu Frame
2 7 100 4pmn5bqnhf

Kotatsu Frame 2

Kotatsu Frame
2 1 100 dweycivipl

Kotatsu Frame 3

Kotatsu Frame
2 2 100 gmjsovatrk

Kotatsu Frame 4

Kotatsu Frame
2 3 100 e20crx4kgk

Kotatsu Frame 5

Kotatsu Frame
2 4 100 ggsih6cq4w

Kotatsu Frame 6

Kotatsu Frame
2 5 100 zqgdozirmy

Kotatsu Frame 7

2 6 100 pbkj08sego

Kotatsu Frame 8

Kotatsu Frame
2 10 100 guukoeuqt4

MainBox Frame 1

MainBox Freame
22 1 100 vmbhhnnlwc

MainBox Frame 2

MainBox Freame
22 2 100 2peudmrizv

MainBox Frame 3

MainBox Freame
22 3 100 a1fgmv8bob

MainBox Frame 4

MainBox Freame
22 4 100 rw333ffjrc

Remote Control Box Frame 1

Remote Control Box Frame
22 5 100 nuvptnxxdd

Remote Control Box Frame 2

Remote Control Box Frame
22 6 100 o5hszf2xkh

Remote Control Box Frame 3

Remote Control Box Frame
22 7 100 zvzeqwb5lk

Remote Control Box Frame 4

Remote Control Box Frame
22 8 100 83muovezg0

Remote Control Box Frame 5

Remote Control Box Frame
22 9 100 aqgdrriyrc

Kotatsu inner Device

Kotatsu inner Device
123artboard 2 100 zkfiptowqq

Incandescent Lamp(bulb)

Incandescent Lamp(bulb)
12 1 100 i6yqnuq7kb

Principle of Kotatsu

1 1 100 2w5ry0vyrx

Schematics

Kotatsu Mainbox

It is the main board and controls all of it.
2 1 vetnbuqbot

Remote Control Box

This is the remote control needed to activate the Kotatsu.
2 2 kaovg6t36m

Full circuit

This is Kotatsu's Circuit Diagram.
2 3 wl5pbztvqk

Code

SIMP TEAM's Kotatsu MK1.zip

Arduino
Please Download the file and unzip it.
//https://www.youtube.com/simpteam
//SIMP TEAM

#include <Wire.h>  
#include <LiquidCrystal_I2C.h>   
#include <sound_effect.h>  
#include <thermistor.h> 
#include <MsTimer2.h>  


LiquidCrystal_I2C lcd(0x27,16,2);  

int PotenTiometer = A0;  
int Thermistor = A1;  
int PotenTiometer_val;   
int Relay_Heating = 6;   
int Heating_LED = 2;  
int System_Switch = 4;  
float Temp; 

uint8_t clock[8] = {0x0, 0xe, 0x15, 0x17, 0x11, 0xe, 0x0};   
uint8_t heart[8] = {0x0, 0xa, 0x1f, 0x1f, 0xe, 0x4, 0x0};  

unsigned long this_time = millis();  
int this_state = 0;   


void setup() {   
  pinMode(Heating_LED, OUTPUT);    
  pinMode(System_Switch, INPUT_PULLUP);    )
  pinMode(Relay_Heating , OUTPUT);   

  digitalWrite(Relay_Heating, HIGH); 
  lcd.begin();   
  lcd.backlight();     
  lcd.clear();     
  delay(1000);     
  
  lcd.print("Hello, SIMP! ^0^"); 
  delay(500);   
  lcd.setCursor(0, 1);    
  lcd.print("KOTATSU MK1-2017");   
  seSqueak(13);   

  lcd.createChar(2, clock);    
  lcd.createChar(3, heart);  
  
  MsTimer2::set(14400000,timeout);  
  MsTimer2::start();   
}


void loop() {     


  if(digitalRead(System_Switch) == LOW) {    
    PotenTiometer_val = analogRead(PotenTiometer);    
    PotenTiometer_val = map(PotenTiometer_val, 0, 1023, 30, 40); 
    Temp = analogRead(Thermistor);   

    lcd.clear();    
    lcd.print("Temp : ");    
    lcd.print(ThermistorToC(Temp));   
    lcd.print("(");
    lcd.print(PotenTiometer_val);   
    lcd.print(")");
    lcd.setCursor(0, 1); 


    if(ThermistorToC(Temp)<PotenTiometer_val && this_state==0) {      
      digitalWrite(Relay_Heating, LOW);  
      digitalWrite(Heating_LED, HIGH);    
      lcd.print("Heating ON ");     
      lcd.write(3);    
    } 
    

    else{     
      digitalWrite(Relay_Heating, HIGH);  
      digitalWrite(Heating_LED, LOW);  
      lcd.print("Heating OFF ");    
      lcd.write(2);    
      this_state =1;    
    }
    delay(1000);  
  }
  
  
   if(ThermistorToC(Temp)>PotenTiometer_val || ThermistorToC(Temp)<PotenTiometer_val && this_state==1) {     
    if(this_time + 60000 < millis() ) {    
      this_time=millis();   
      this_state = 0;           
    }
  delay(1000);   
   }


   if(ThermistorToC(Temp)>50) {   
    lcd.clear();    
    lcd.print("Warning"); 
    delay(1000);    
    lcd.setCursor(0, 1);    
    lcd.print("High Temperature");   
    seAlarm(13);  
    digitalWrite(Relay_Heating, HIGH);    
   }


   if(digitalRead(System_Switch) == HIGH) {   
    lcd.clear(); 
    digitalWrite(Heating_LED, LOW);     
    digitalWrite(Relay_Heating, HIGH);   
    lcd.print("bye, SIMP! ^0^");   
    delay(1000); 
    lcd.setCursor(0, 1);    
    lcd.print("Sleep Mode");     
    delay(1000);    
   }
}

void timeout() {    
  digitalWrite(Relay_Heating, HIGH);    
  digitalWrite(Heating_LED, LOW);   
  lcd.clear();  
}

Credits

simpteam

simpteam

0 projects • 0 followers

Comments

Add projectSign up / Login