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 hours4,381
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

Kotatsu Frame 2

Kotatsu Frame

Kotatsu Frame 3

Kotatsu Frame

Kotatsu Frame 4

Kotatsu Frame

Kotatsu Frame 5

Kotatsu Frame

Kotatsu Frame 6

Kotatsu Frame

Kotatsu Frame 7

Kotatsu Frame 8

Kotatsu Frame

MainBox Frame 1

MainBox Freame

MainBox Frame 2

MainBox Freame

MainBox Frame 3

MainBox Freame

MainBox Frame 4

MainBox Freame

Remote Control Box Frame 1

Remote Control Box Frame

Remote Control Box Frame 2

Remote Control Box Frame

Remote Control Box Frame 3

Remote Control Box Frame

Remote Control Box Frame 4

Remote Control Box Frame

Remote Control Box Frame 5

Remote Control Box Frame

Kotatsu inner Device

Kotatsu inner Device

Incandescent Lamp(bulb)

Incandescent Lamp(bulb)

Principle of Kotatsu

Schematics

Kotatsu Mainbox

It is the main board and controls all of it.

Remote Control Box

This is the remote control needed to activate the Kotatsu.

Full circuit

This is Kotatsu's Circuit Diagram.

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
0 projects • 2 followers
Contact

Comments

Please log in or sign up to comment.