หมวดหมู่: Articles
Normally Open(NO) / Normally Closed (NC) Contact
ในทุกวงจรควบคุมและระบบอัตโนมัติ
- Normally open(NO) ปกติเปิด
- Normally closed (NC) ปกติปิด
เป็นคำที่ใช้เพื่อกำหนดสถานะของสวิตช์ เซ็นเซอร์ หรือหน้าสัมผัสรีเลย์ เป็นพื้นฐานของกระบวนการอัตโนมัติ
https://oshwlab.com/s2insupply/Normally-Open-NO-Normally-Closed-NC
เซนเซอร์วัดอัตราการไหลของน้ำ+ตรวจจับอุณหภูมิ 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⁻¹
ข้อกำหนดทั่วไป เกี่ยวกับสายพานไทม์มิ่ง Timing Belt ประเภทต่างๆ
- MXL, XL, L, H, XH, XXH /Inch Unit / Trapezoid tooth
- DXL, DL, DH /Inch Unit / Double-sided ladder tooth
- HTD 2M, 3M, 5M, 8M, 14M, 20M / Arc tooth
- D3M, D5M, D8M, D14M / Double-sided arc tooth
- S2M, S3M, S4.5M, S5M, S8M, S14M / Semi-circular tooth
- DS5M, DS8M, DS14M / Double-sided semi-circular tooth
- P3M, P5M, P8M, P14M / Concave peak tooth
- T2.5, T5, T10, T20
- AT5, AT10
- 1.5GT, 2GT, 3GT, 5GT
การต่อใช้งาน Rejector กับ PLC และ Arduino
พื้นฐานระบบอัตโนมัติ
พื้นฐานระบบอัตโนมัติ
ระบบอัตโนมัติ หรือ Automation ประกอบด้วย Hardware และ Software ที่ทำงานร่วมกัน ให้สามารถควบคุมการทำงาน ของระบบเป็นไปแบบอัตโนมัติ ระบบอัตโนมัติ นั้นจะเกี่ยวข้องกับ ระบบควบคุม Control System รวมถึงวิศวกรรมแมคคาทรอนิกส์และหุ่นยนต์พื้นฐานของระบบอัตโนมัติประกอบด้วยส่วนหลักๆคือ
- อินพุทจากเซนเซอร์ต่างๆ เซ็นเซอร์วัดความดัน Pressure sensor, เซ็นเซอร์อุลตราโซนิค Ultrasonic sensor , เซ็นเซอร์ความชื้น Humidity sensor, เซ็นเซอร์วัดก๊าซ Gas sensor, เซ็นเซอร์ตรวจจับการเคลื่อนไหวแบบพีไออาร์ PIR motion sensor, เซ็นเซอร์วัดความเร่ง Acceleration sensor, เซ็นเซอร์วัดแรง Force sensor, เซ็นเซอร์สี color sensor, เซ็นเซอร์เซ็นเซอร์วัดมุมและการหมุน gyro sensor, เซ็นเซอร์อัลตราโซนิก ultrasonic sensor และอื่นๆเช่น เทอร์โมไพล์
- การสื่อสาร – สายเคเบิล USB, RS485, Wi-Fi และอื่นๆ
- ตัวควบคุม เช่น MCU และอื่นๆ
- เอาท์พุท – เช่นวาล์ว, มอเตอร์, หลอดไฟ, ลำโพง และอื่นๆ
Photoelectric Sensor type
1.Through-beam type เป็นเซนเซอร์ที่มีภาคส่งและภาครับแยกกัน ติดตั้งหันเข้าหากัน อาศัยการตรวจจับโดยการเปรียบเทียบปริมาณแสงขณะไม่มีวัตถุและขณะมีวัตถุุเคลื่อนที่ผ่าน ภาครับ Receiver ภาคส่ง Transmitter ทำให้เซนเซอร์ทราบว่ามีวัตถุพร้อมส่งสัญญาณเอาท์พุท
2.Diffuse reflective type เป็นเซนเซอร์ประเภทตรวจจับโดยตรง ภายในเซนเซอร์ประกอบด้วยภาครับ Receiver ภาคส่ง Transmitter ภาคส่งจะทำหน้าที่ปล่อยแสง เมื่อวัตถุเคลื่อนที่บังลำแสง แสงจะสะท้อนกลับไปยังภาครับ เปรียบเทียบปริมาณแสงก่อนและหลังการสะท้อนทำให้เซนเซอร์ทราบว่ามีวัตถุพร้อมส่งสัญญาณเอาท์พุท
3.Retroreflective type เป็นเซนเซอร์ที่มี ภาครับ Receiver ภาคส่ง Transmitter อยู่ในตัวเดียวกัน ทำงานร่วมกับแผ่นสะท้อน Reflectors อาศัยการตรวจจับโดยรับแสงที่สะท้อนจากแผ่นสะท้อน จากนั้นเปรียบเทียบกับแสงขณะวัตถุเคลื่อนที่ผ่าน ระหว่างเซนเซอร์กับแผ่นสะท้อน Reflectors ทำให้เซนเซอร์ทราบว่ามีวัตถุพร้อมส่งสัญญาณเอาท์พุท
การเขียนโปรแกรมเชิงภาพสำหรับ 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/
การต่อใช้งาน Photoelectric Sensor กับ PLC
การต่อใช้งาน Photoelectric Sensor กับ PLC
ESP8266 Write Multiple Fields Thingspeak.com
ESP8266 Write Multiple Fields Thingspeak.com
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 |
#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