กระปุกออมสินแบบนับเงินทุกครั้งที่มีการออมเข้ามา โดยมูลค่าที่สะสมไว้จะถูกเก็บไว้ใน Local Storage ของเครื่อง ทำให้สามารถดูยอดเงินที่สะสมไว้ได้แม้ไฟตก
✔️ รองรับธนบัตร 20, 50, 100, 500, 1000
✔️ รองรับเหรียญ 1, 2, 5, 10
เมื่อเครื่องถูกเปิดขึ้นมา ระบบจะดึงค่ายอดเงินที่เครื่องเคยออมไว้มาแสดงผลก่อน หากยังไม่เคยออมเลยจะแสดงผลเป็น 0
เมื่อมีการใส่เหรียญ ระบบจะทำการอ่านค่าเหรียญที่ใส่เข้ามา โดยตัว S-626 จะส่งสัญญาณ LOW-HIGH ออกมาสำหรับเหรียญแต่ละแบบ โดยมีสูงสุด 4 แบบ คือ
เหรียญ | สัญญาณ |
---|---|
1 | 1 ครั้ง |
2 | 2 ครั้ง |
5 | 3 ครั้ง |
10 | 4 ครั้ง |
สามารถดูวิธีตั้งค่า S-626 ที่นี่
โดยระบบจะทำการนับจำนวนครั้งที่ได้รับสัญญาณ และแปลงเป็นจำนวนเงิน แล้วทำการเพิ่มยอดเงินใน Local Storage เพื่อทำการแสดงผลยอดเงินที่สะสมไว้ในเครื่อง
แต่สำหรับในธนบัตร ผู้ใช้ต้องเลือกว่าจะใส่แบงค์มูลค่าเท่าไรก่อนใส่ลงไป โดยสามารถใส่ลงไปได้เรื่อย ๆ ในประเภทธนบัตรเดียวกัน
กรณีที่มีการนำเงินออกทั้งหมด ผู้ใช้สามารถกดปุ่มซ้ายพร้อมกับปุ่มขวา เพื่อทำการล้างยอดเงินที่สะสมไว้ในเครื่อง
ในโปรเจคนี้เขียนโดยใช้ class ของ C++ ในแบบที่ port ไปใช้กับไมโครคอนโทรลเลอร์อื่นได้ง่าย แต่สำหรับโปรเจคนี้ จะสร้างโดยอิงอุปกรณ์ดังนี้
LCD | ESP8266 |
---|---|
GND | GND |
VCC | 5V |
SDA | D2 |
SCL | D1 |
Left Button | ESP8266 |
---|---|
NO | GND |
COM | D4 |
Right Button | ESP8266 |
---|---|
NO | GND |
COM | D6 |
QRE1113 | ESP8266 |
---|---|
VCC | 3.3V |
GND | GND |
OUT | A0 |
S-626 | ESP8266 |
---|---|
VCC | 12V |
GND | GND |
COIN | D5 |
DRV8833 | ESP8266 | Step Down |
---|---|---|
VM | OUT+ | |
GND | GND | GND |
AIN1 | D7 | |
AIN2 | GND | |
STBY | OUT+ |
Step Down | Power adapter 12v | ESP8266 |
---|---|---|
IN+ | 12V | |
IN- | GND | |
OUT+ | VIN | |
OUT- | GND |
Motor | DRV8833 |
---|---|
+ | AOUT1 |
- | AOUT2 |
โดยข้อมูลขาสัญญาณของ ESP8266 สามารถดูได้จากในโค้ดส่วนนี้
/* --------------------------------- Pinout --------------------------------- */
pin_t _pin_lcd_sda(4, OUTPUT); //D2 on Nodemcu v2
pin_t _pin_lcd_scl(5, OUTPUT); //D1 on Nodemcu v2
pin_t _pin_coin(14, INPUT_PULLUP); //D5 on Nodemcu v2
pin_t _pin_bill(A0, INPUT); //ADC0 on Nodemcu v2
pin_t _pin_puller(15, OUTPUT); //D8 on Nodemcu v2
pin_t _pin_bleft(2, INPUT_PULLUP); //D4 on Nodemcu v2 *** HIGH At boot
pin_t _pin_bright(12, INPUT_PULLUP); //D6 on Nodemcu v2