Posted on

Normally Open(NO) / Normally Closed (NC) Contact

ในทุกวงจรควบคุมและระบบอัตโนมัติ

  • Normally open(NO) ปกติเปิด
  • Normally closed (NC) ปกติปิด

เป็นคำที่ใช้เพื่อกำหนดสถานะของสวิตช์ เซ็นเซอร์ หรือหน้าสัมผัสรีเลย์ เป็นพื้นฐานของกระบวนการอัตโนมัติ

https://oshwlab.com/s2insupply/Normally-Open-NO-Normally-Closed-NC

Posted on

เซนเซอร์วัดอัตราการไหลของน้ำ+ตรวจจับอุณหภูมิ Water Flow+Temp Sensor YF-B7

Water Flow Sensor เซนเซอร์การไหลของน้ำ ประกอบด้วยใบพัดน้ำและเซนเซอร์ Hall-Effect, บอร์ด PCB อิเล็กทรอนิกส์ เมื่อน้ำไหลผ่านโรเตอร์ โรเตอร์ จะหมุน
ความเร็วที่วัดได้จะเปลี่ยนไปตามอัตราการไหลที่ต่างกัน จากนั้นโรเตอร์แม่เหล็กจะหมุนตัด เซนเซอร์ Hall-Effect และจะส่งสัญญาณพัลส์ Output

  • Water Flow Sensor Flow Sensor Liquid 1L/m to 25L/m Flow Range 1,750 kPa Operating Pressure
  • แรงดันที่ใช้งาน 5V to 15V
  • Temperature Coefficient of Resistance 50k Ohms at 25 deg. C
  • B Value 3,950 K at 25/50 deg. C
  • Temp. Range:-40-+150℃

Water Flow Sensor Wiring

  • Terminal 1 ( Red) Vdd ” + ”
  • Terminal 2 (Black) Vout ” – ”
  • Terminal 3 ( Yellow ) Gnd : output
  • Terminal 4 Temp Sensor
  • Terminal 5 Temp. Sensor

Water Flow Sensor Output waveform

 

Temperature vs. Resistance Coefficient Table

  • Resistance 50k Ohms at 25deg. C
  • B Value 3950K at 25/50 deg. C
  • Temp. Range:-40-+150℃

สัมประสิทธิ์อุณหภูมิอธิบายถึงการเปลี่ยนแปลงสัมพัทธ์ของสมบัติทางกายภาพที่เกี่ยวข้องกับการเปลี่ยนแปลงอุณหภูมิที่กำหนด สำหรับคุณสมบัติ R ที่เปลี่ยนแปลงเมื่ออุณหภูมิเปลี่ยนแปลง

โดย

  • dT ค่าสัมประสิทธิ์อุณหภูมิ
  • α ถูกกำหนดโดยสมการ  ที่ α มีมิติของอุณหภูมิผกผันและสามารถแสดงได้เช่น ใน 1 / K หรือK⁻¹
Posted on

ข้อกำหนดทั่วไป เกี่ยวกับสายพานไทม์มิ่ง Timing Belt ประเภทต่างๆ

  1. MXL, XL, L, H, XH, XXH  /Inch Unit / Trapezoid tooth
  2. DXL, DL, DH /Inch Unit / Double-sided ladder tooth
  3. HTD 2M, 3M, 5M, 8M, 14M, 20M / Arc tooth
  4. D3M, D5M, D8M, D14M / Double-sided arc tooth
  5. S2M, S3M, S4.5M, S5M, S8M, S14M / Semi-circular tooth
  6. DS5M, DS8M, DS14M / Double-sided semi-circular tooth
  7. P3M, P5M, P8M, P14M / Concave peak tooth
  8. T2.5, T5, T10, T20
  9. AT5, AT10
  10. 1.5GT, 2GT, 3GT, 5GT
Posted on

พื้นฐานระบบอัตโนมัติ

พื้นฐานระบบอัตโนมัติ

ระบบอัตโนมัติ หรือ Automation ประกอบด้วย Hardware และ Software ที่ทำงานร่วมกัน ให้สามารถควบคุมการทำงาน ของระบบเป็นไปแบบอัตโนมัติ ระบบอัตโนมัติ นั้นจะเกี่ยวข้องกับ ระบบควบคุม Control System รวมถึงวิศวกรรมแมคคาทรอนิกส์และหุ่นยนต์พื้นฐานของระบบอัตโนมัติประกอบด้วยส่วนหลักๆคือ

  1. อินพุทจากเซนเซอร์ต่างๆ เซ็นเซอร์วัดความดัน Pressure sensor, เซ็นเซอร์อุลตราโซนิค Ultrasonic sensor , เซ็นเซอร์ความชื้น Humidity sensor, เซ็นเซอร์วัดก๊าซ Gas sensor, เซ็นเซอร์ตรวจจับการเคลื่อนไหวแบบพีไออาร์ PIR motion sensor, เซ็นเซอร์วัดความเร่ง Acceleration sensor, เซ็นเซอร์วัดแรง Force sensor, เซ็นเซอร์สี color sensor, เซ็นเซอร์เซ็นเซอร์วัดมุมและการหมุน gyro sensor, เซ็นเซอร์อัลตราโซนิก ultrasonic sensor และอื่นๆเช่น เทอร์โมไพล์
  2. การสื่อสาร – สายเคเบิล USB, RS485, Wi-Fi และอื่นๆ
  3. ตัวควบคุม เช่น MCU และอื่นๆ
  4. เอาท์พุท – เช่นวาล์ว, มอเตอร์, หลอดไฟ, ลำโพง และอื่นๆ
Posted on

Photoelectric Sensor type

1.Through-beam type เป็นเซนเซอร์ที่มีภาคส่งและภาครับแยกกัน ติดตั้งหันเข้าหากัน อาศัยการตรวจจับโดยการเปรียบเทียบปริมาณแสงขณะไม่มีวัตถุและขณะมีวัตถุุเคลื่อนที่ผ่าน ภาครับ Receiver ภาคส่ง Transmitter ทำให้เซนเซอร์ทราบว่ามีวัตถุพร้อมส่งสัญญาณเอาท์พุท

2.Diffuse reflective type เป็นเซนเซอร์ประเภทตรวจจับโดยตรง ภายในเซนเซอร์ประกอบด้วยภาครับ Receiver ภาคส่ง Transmitter  ภาคส่งจะทำหน้าที่ปล่อยแสง เมื่อวัตถุเคลื่อนที่บังลำแสง แสงจะสะท้อนกลับไปยังภาครับ เปรียบเทียบปริมาณแสงก่อนและหลังการสะท้อนทำให้เซนเซอร์ทราบว่ามีวัตถุพร้อมส่งสัญญาณเอาท์พุท

3.Retroreflective type เป็นเซนเซอร์ที่มี ภาครับ Receiver ภาคส่ง Transmitter อยู่ในตัวเดียวกัน ทำงานร่วมกับแผ่นสะท้อน Reflectors อาศัยการตรวจจับโดยรับแสงที่สะท้อนจากแผ่นสะท้อน จากนั้นเปรียบเทียบกับแสงขณะวัตถุเคลื่อนที่ผ่าน ระหว่างเซนเซอร์กับแผ่นสะท้อน Reflectors ทำให้เซนเซอร์ทราบว่ามีวัตถุพร้อมส่งสัญญาณเอาท์พุท

 

Posted on

การเขียนโปรแกรมเชิงภาพสำหรับ Arduino ใช้ ardublockly

การเขียนโปรแกรมเชิงภาพสำหรับ Arduino ใช้การสร้างโค้ด Arduino และอำนวยความสะดวกในการอัปโหลดโปรแกรมโดยอิงตามบล็อก

คุณสมบัติ
สร้างโค้ด Arduino พร้อมบล็อกแบบลากแล้วปล่อย
โหลดโค้ดลงบอร์ด Arduino
“คำเตือนการบล็อกโค้ด” ที่เป็นประโยชน์
ใช้งานร่วมกับบอร์ด Arduino อย่างเป็นทางการได้หลากหลาย
รันบน Windows / Linux / Mac OS X
Ardublockly ยังอยู่ในระหว่างการพัฒนาและยังไม่ได้ใช้งานคุณสมบัติบางอย่าง คุณสามารถดูรายการสิ่งที่ต้องทำได้ในไฟล์ TODO.md

ปัจจุบันทดสอบภายใต้ Windows ด้วย Python 2.7 และ 3.4 และใน Linux และ MacOS X ด้วย Python 2.7

 

ข้อมูลเพิ่มเติม

  • https://ardublockly.embeddedlog.com/demo/index.html#
  • https://github.com/carlosperate/ardublockly
  • https://developers.google.com/blockly/
Posted on

ESP8266 Write Multiple Fields Thingspeak.com

ESP8266 Write Multiple Fields Thingspeak.com

 

#include <ESP8266WiFi.h>
#include "secrets.h"
#include "ThingSpeak.h" // include thingspeak header
#include <math.h>

char ssid[] = SECRET_SSID;   // your network SSID (name) 
char pass[] = SECRET_PASS;   // your network password
int keyIndex = 0;            // your network key Index number (needed only for WEP)
WiFiClient  client;

unsigned long myChannelNumber = SECRET_CH_ID;
const char * myWriteAPIKey = SECRET_WRITE_APIKEY;

// Schematic:
// [+3V] ---- [Thermistor 10k-Resistor] -------|------- [10k-Resistor] ---- [Ground]
//                                             |
//                                       Analog Pin A0

int analogpin = A0; 
int sensorvalue; 
float Vin;
float Temp_C;  // Celsius
float Temp_K;  // Kelvin
float Temp_F;  // Fahrenheit

//*****************************************************************************************************
float Thermistor(int RawADC){ //Function to perform math of the Steinhart-Hart equation
  
      Temp_C = log(((10230000/RawADC)-10000));       // Temp = log(10000.0*((1023.0/RawADC-1)));
      Temp_C = 1/(0.001129148+(0.000234125+(0.0000000876741*Temp_C*Temp_C))*Temp_C);
      Temp_C = Temp_C - 273.15;                       // Convert Kelvin to Celsius
      return Temp_C;
}

//*****************************************************************************************************
// Initialize values
int number1 = 0;
int number2 = 0;
int number3 = 0;
int number4 = 0;
String myStatus = "";

//*****************************************************************************************************
void setup() {
  Serial.begin(115200);  // Initialize serial
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo native USB port only
  }
  WiFi.mode(WIFI_STA); 
  ThingSpeak.begin(client);  // Initialize ThingSpeak
}

//*****************************************************************************************************
void loop() {
  // Connect or reconnect to WiFi
  if(WiFi.status() != WL_CONNECTED){
    Serial.print("Attempting to connect to SSID: ");
    Serial.println(SECRET_SSID);
    while(WiFi.status() != WL_CONNECTED){
      WiFi.begin(ssid, pass);  // Connect to WPA/WPA2 network. Change this line if using open or WEP network
      Serial.print(".");
      delay(5000);     
    } 
    Serial.println("\nConnected.");
  }
  
//****************************************************************************************************
    Vin = sensorvalue*(3.0/1023.0);  

    sensorvalue = analogRead(analogpin);
    Temp_C = Thermistor(sensorvalue);       // Temp_C = Thermistor(analogRead(analogpin));
    
    Temp_K = Temp_C + 273.15;             // Convert Kelvin  to Celcius
    Temp_F = (Temp_C*1.8) + 32.0;          // Convert Celsius  to Fahrenheit


    Serial.print("ADC Sensor Value\t");
    Serial.print(sensorvalue); 
    Serial.print("\t");
    
    Serial.print("Voltage input\t");  
    Serial.print(Vin); 
    Serial.print("\t");
    
    Serial.print("Temperature Celsius\t");     
    Serial.print(Temp_C); 
    Serial.print("\t");

    Serial.print("Temperature Kelvin\t");        
    Serial.print(Temp_K); 
    Serial.print("\t");

    Serial.print("Temperature Fahrenheit\t");        
    Serial.print(Temp_F); 
    Serial.println("\t");   

    
  number1 = sensorvalue;
  number2 = Vin;
  number3 = Temp_C;
  number4 = Temp_K;
  
//****************************************************************************************************    
// set the fields with the values
  ThingSpeak.setField(1, number1);
  ThingSpeak.setField(2, number2);
  ThingSpeak.setField(3, number3);
  ThingSpeak.setField(4, number4);
  
 //****************************************************************************************************    
  // figure out the status message
  if(number1 > number2){
    myStatus = String("field1 is greater than field2"); 
  }
  else if(number1 < number2){
    myStatus = String("field1 is less than field2");
  }
  else{
    myStatus = String("field1 equals field2");
  }
 //****************************************************************************************************    
  // set the status
  ThingSpeak.setStatus(myStatus);
 //****************************************************************************************************    
 // write to the ThingSpeak channel
  int x = ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey);
  if(x == 200){
    Serial.println("Channel update successful.");
  }
  else{
    Serial.println("Problem updating channel. HTTP error code " + String(x));
  }
  
 //****************************************************************************************************    
  delay(5000); // Wait 5 seconds to update the channel again
 //****************************************************************************************************    
}

 

Channel update successful.
ADC Sensor Value 585 Voltage input 1.72 Temperature Celsius 31.73 Temperature Kelvin 304.88 Temperature Fahrenheit 89.11
Problem updating channel. HTTP error code -401

https://thingspeak.com/channels/1452499