์๋
ํ์ธ์. ์ผ๋ฐ ์ค๊ตญ USB-COM ์ด๋ํฐ(RTS - CTS)์์ ํ 7๊ณผ 8์ ๋ซํ์ ๋ชจ๋ํฐ๋งํ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ง๋ ๊ฒฝํ์ ๊ณต์ ํ๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ฐ ์ผ์ด ์๊ธฐ๋ฉด ๋์๊ฒ ๋ฉ์ผ์ ๋ณด๋ด์ค๋ค.
์ฒ์์๋ ๋ฌผ ํ๋ฆ ์ผ์๋ฅผ ๋ง๋๋ ๊ฒ์ด ๋ชฉํ์์ต๋๋ค. ๋์ค์ ํ์ํ๋ ๋ฐฉ๋ฒ์ ๋์ฒด๋ก ์ค์ํ์ง ์์ง๋ง ์ฃผ๋ฅผ ์ฐ์ฒด๊ตญ์ผ๋ก ๋ณด๋ด๊ณ ์ถ์์ต๋๋ค. ์ ๋ JavaRush๋ฅผ ์ฌ์ฉํ์ฌ Java๋ฅผ ๋ฐฐ์ฐ๊ณ ์์ผ๋ฏ๋ก IntelliJ Idea๋ผ๋ ์ ์ ํ ๋๊ตฌ๋ฅผ ์ ํํ์ต๋๋ค. ๋ฌผ๋ก ๋ฉ์ผ์ SMS๊ฐ ์๋์ง๋ง SMS๋ com ํฌํธ์ ํจ๊ป ์๋ํด์ผ ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ด๋ฅผ ์ํ ์์ฃผ ์ข์ ๋๊ตฌ๋ฅผ ๋ฐฐ์ธ ๊ฒ์
๋๋ค. 3G ๋ชจ๋์ ์์๋ผ ๋ ์ด๋ฏธ ์์ง๋ง ์ฝ๊ฐ์ ์ ๋ณด๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค. ์ธํฐ๋ท์ ๋ง์ด ์์ด์. ๋ฐ๋ผ์ ํ๋์จ์ด ๋ถ๋ถ์ ์ด์ ์ ๋ง์ถ์ง ๋ง๊ณ ์ปค๋ฅํฐ ์์ฒด๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค
ํ 5๋ ์ ์ง์ด๊ณ ํ 7์ RTS์
๋๋ค. ํ๋ก๊ทธ๋จ์๋ ํญ์ 1๊ฐ๊ฐ ๊ฑธ๋ ค ์๊ณ (ํ 5์ ๋ํด + 9V) ํ์ด ์์ต๋๋ค. 8์ ์
๋ ฅ์
๋๋ค. 5ํฌ๋ก์ด ์ ํญ์ ์ํด 0V๋ก ํ์
๋ฉ๋๋ค. ํ๋ก๊ทธ๋จ์ด ์คํ๋์ง ์์ ๋ ํ 7์ ์ ์์ -9V๊ฐ ๋ฉ๋๋ค. ์ ์ถ ์ผ์๋ฅผ ์ฌ์ฉํ๋ฉด ํ 8์ ์ ์ฉํ ์ ์์ง๋ง ์์ ์์ผ๋ก ์ธํด ํ๋ ์ฅ์น๊ฐ ์์ต๋๋ค. ๋ฐ๋ผ์ ํ๋ก๊ทธ๋จ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ํ์ธํ๊ธฐ ์ํด ํ๋ก๊ทธ๋จ์ ์์ํ ํ ์ฐ๋ฝ์ฒ 7์์ ์ฐ๋ฝ์ฒ 8์ ๋ซ๊ณ ํ๋ก๊ทธ๋จ์ ์ด๋ฌํ ์ด๋ฒคํธ๋ฅผ 1์ด์ ํ ๋ฒ์ฉ ๋ชจ๋ํฐ๋งํ๊ณ "Puddle"์ด๋ผ๋ ํ
์คํธ๊ฐ ํฌํจ๋ ํธ์ง๋ฅผ ๋ณด๋ธ ๋ค์ ์ฝ๋๋ค. ํ๋ก๊ทธ๋จ์ "์
๋ฉ์ด"๋ผ๋ ํ
์คํธ๊ฐ ํฌํจ๋ ํธ์ง๋ฅผ ๋ณด๋ผ ๊ฒ์
๋๋ค. ์
๋ฉ์ด๊ฐ ์์ต๋๋ค." ๋ฐ๋ผ์ JDK ๋ฐ IntelliJ Idea๋ฅผ ์ค์นํ๊ณ Java ๊ธฐ๋ณธ ์ฌํญ์ ๋ฐฐ์ฐ๋ ค๋ฉด JavaRush.ru์ ์ฒซ ๋ฒ์งธ ๊ฐ์๋ฅผ ํ์ฉํ๋ฉด ๋ฉ๋๋ค. ์ ํ๋ก์ ํธ๋ฅผ ๋ง๋๋ ๊ฒ๋ถํฐ ์์ํ๊ฒ ์ต๋๋ค. ์ด๋ฏธ ํ๋ก์ ํธ๊ฐ ์ด๋ ค ์๋ ๊ฒฝ์ฐ ์ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค ๋ ์ ์ฐฝ์์ ์ด๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋๋ฏ๋ก ์ฆ์ ์์ฝํ๊ฒ ์ต๋๋ค. ๋งค์ฐ ํธ๋ฆฌํฉ๋๋ค. (์ ๋ ๋ชจ๋ ํ๋ก์ ํธ๊ฐ ํ๋์ ์ฐฝ์์ ์ด๋ฆฌ๋ Eclipse๋ก ์์
ํด ๋ณธ ์ ์ด ์์ต๋๋ค.) ๋ค์์ผ๋ก ์ค๋ช
์์ด ๋ง์ ์ฌ์ง์ ์ ๊ณตํ๋ฏ๋ก ๋ชจ๋ ๊ฒ์ด ๋ช
ํํฉ๋๋ค.
๋ค์ ์ฌ์ง๋ถํฐ ์์ํ๋ฉด ๋งค์ฐ ํฅ๋ฏธ๋กญ์ต๋๋ค. ์ ๋ ํญ์ ์ด ์ ๋ฌธ๊ฐ๋ฅผ ๋ณด์์ง๋ง ๊ทธ๊ฒ์ผ๋ก ๋ญ๊ฐ๋ฅผ ํ๋ ๊ฒ์ด ๋๋ ค์ ์ง๋ง ์๋ํด ๋ณด์์ต๋๋ค. ๋ชจ๋ ๊ฒ์ด ๋งค์ฐ ๊ฐ๋จํ๋ค๋ ๊ฒ์ด ๋ฐํ์ก์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํ์ํ๋ฉด ์ด๋ฆ์ ์
๋ ฅํ๊ณ ์ต์ ๋ฒ์ ์ ์ฐพ์ ๋ค์ด๋ก๋ํ์ธ์. ๋ฐ๋ผ๋ณด๋ค. ์ฐ๋ฆฌ๋ http://habrahabr.ru/post/133766/ jSSC ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ javax:mail ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ค์ด๋ก๋ํฉ๋๋ค. ๋ด๊ฐ ์ดํดํ๋ ๋ฐ์ ๋ฐ๋ฅด๋ฉด ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ชฉ๋ก์์ ์ ๊ฑฐ๋์์ง๋ง Maven์์๋ ์ฝ๊ฒ ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค.
ํ์ธ์ ํด๋ฆญํ๋ฉด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ถ๊ฐ๋ฉ๋๋ค. ์ง์ :)
ํ
์คํธ๋ฅผ ์
๋ ฅํ์ธ์.
comRun.java 1 package ru.example.comTest.Test1; 2 3 import jssc.*; 4 5 import java.io.UnsupportedEncodingException; 6 import java.util.Properties; 7 import javax.mail.*; 8 import javax.mail.internet.*; 9 10 /** 11 * Created by ipolma on 8/12/2014. 12 */ 13 14 public class comRun { 15 16 17 private static SerialPort serialPort; 18 19 public static void main(String[] args) { 20 21 22 String[] retPorts = SerialPortList.getPortNames(); 23 //for (String port: retPorts){System.out.println(port);} 24 25 serialPort = new SerialPort(retPorts[1]);//"COM4"); ัะบะฐะทัะฒะฐะตะผ ะฒัะพัะพะน ะฟะพัั 26 System.out.println(serialPort.getPortName()); 27 try { 28 //ะัะบััะฒะฐะตะผ ะฟะพัั 29 if (serialPort.isOpened()) serialPort.closePort(); //ะะดะตัั ะฑัะฒะฐะตั ัะธััะฐัะธั Busy, ะบะพัะพััั ะฝะต ะพะฑัะฐะฑะพัะฐะตัั - ัะพะปัะบะพ ะตัะปะธ ะพะถะธะดะฐัั 30 serialPort.openPort(); 31 //ะัััะฐะฒะปัะตะผ ะฟะฐัะฐะผะตััั 32 serialPort.setParams(SerialPort.BAUDRATE_9600, 33 SerialPort.DATABITS_8, 34 SerialPort.STOPBITS_1, 35 SerialPort.PARITY_NONE); 36 //ะะบะปััะฐะตะผ ะฐะฟะฟะฐัะฐัะฝะพะต ัะฟัะฐะฒะปะตะฝะธะต ะฟะพัะพะบะพะผ 37 serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_RTSCTS_IN | 38 SerialPort.FLOWCONTROL_RTSCTS_OUT); 39 40 int tempData0 = 0; 41 42 while(true){ 43 Thread.sleep(1000); 44 int[] data = serialPort.getLinesStatus();//readString(event.getEventValue()); 45 //7 ะธ 8 ะบะพะฝัะฐะบัั ะทะฐะผัะบะฐัััั - 1010 46 //ัะฐะทะพะผะบะฝััั - 0010 47 //7 ะธ 6 ะบะพะฝัะฐะบัั ะทะฐะผัะบะฐัััั - 0110 48 //data[0] - 12 ะ ะฝะฐ 8 (CTS) 49 //data[1] - 12 ะ ะฝะฐ 6 (DCE) 50 //serialPort.setDTR(status); //ะะตะฝัะตััั ะฝะฐะฟััะถะตะฝะธะต ัะพะปัะบะพ ะฝะฐ 4 ะบะพะฝัะฐะบัะต - ะฝะพ ะธ ััะพ ั
ะพัะพัะพ 51 //serialPort.setRTS(status); // ะะฐ 7 ะฝะต ะผะตะฝัะตััั- ะผะพะถะฝะพ ััะพ ะธัะฟะพะปัะทะพะฒะฐัั How ะฒัั
ะพะด +-7ะ. 52 53 if (data[0] == 1){ 54 tempData0 = 1; 55 sendEmail("ะัะถะฐ"); 56 System.out.println("1"); 57 } 58 if (data[0] == 0 && tempData0 == 1){ 59 tempData0 =0; 60 System.out.println("0"); 61 sendEmail("ะะตั ะปัะถะธ"); 62 } 63 } 64 } 65 catch (SerialPortException ex) { 66 System.out.println(ex); 67 } 68 catch (InterruptedException ty){} 69 70 } 71 72 private static void sendEmail(String text){ 73 74 try { 75 // ะกะพะทะดะฐะตะผ address ะพัะฟัะฐะฒะธัะตะปั ะธ ะฟัะปััะฐัะตะปั 76 InternetAddress from = new InternetAddress("*****@yandex.ru", "From"); 77 InternetAddress to = new InternetAddress("****@****.ru", "To"); 78 // ะะฐะปะตะต ัะพะทะดะฐะตะผ ั.ะฝ. ััะฐะฝัะฟะพัั ั ะพะฟัะตะดะตะปะตะฝะฝัะผะธ ะฟะฐัะฐะผะตััะฐะผะธ, ะบะพัะพััะน 79 // ะฑัะดะตั "ะทะฐะฝะธะผะฐัััั" ะพัะฟัะฐะฒะบะพะน messages 80 Properties props = new Properties(); 81 // ะขะธะฟ ะฟัะพัะพะบะพะปะฐ, address serverะฐ ะธ ะฝะพะผะตั ะฟะพััะฐ 82 props.put("mail.transport.protocol", "smtp"); 83 props.put("mail.smtp.host", "smtp.yandex.ru"); 84 props.put("mail.smtp.port", "25"); 85 Session session = Session.getDefaultInstance(props); 86 Transport transport = session.getTransport(); 87 // ะขะตะฟะตัั ัะพะทะดะฐะตะผ ัะพะพะฑัะตะฝะธะต 88 MimeMessage message = new MimeMessage(session); 89 message.setText(text, "utf-8"); 90 message.setFrom(from); 91 message.setRecipient(Message.RecipientType.TO, to); 92 message.setSubject("ะขะตะผะฐ", "utf-8"); 93 // ะัะธ ะฟะพะดะบะปััะตะฝะธะธ ัะบะฐะทัะฒะฐะตะผ ะฟะฐัะฐะผะตััั ะดะปั smtp serverะฐ: ะปะพะณะธะฝ ะธ ะฟะฐัะพะปั 94 transport.connect("*****@yandex.ru", "**Password***"); 95 transport.sendMessage(message, new Address[]{to}); 96 transport.close(); 97 } catch (UnsupportedEncodingException ex) { 98 ex.printStackTrace(); 99 } catch (NoSuchProviderException ex) { 100 ex.printStackTrace(); 101 } catch (MessagingException ex) { 102 ex.printStackTrace(); 103 } 104 } 105 106 } 107
๊ธฐ์กด ์ฃผ์์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ค์ ํ์ธ์. (๊ทธ๋ฐ๋ฐ Yandex์ smtp ๋์๋ง์์๋ ํฌํธ 465์ ๋ํด ์ฐ์ฌ ์์ง๋ง ์ธํฐ๋ท์์๋ ํฌํธ 25๋ฅผ ์ฐพ์๊ณ ์ด๊ฒ์ด ์ฌ๋ฐ๋ฅธ ๊ฒ์ผ๋ก ํ๋ช
๋์์ต๋๋ค. ). ์คํ์ ์์ํด ๋ณด๊ฒ ์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ฐ๋ฝ์ฒ 7๊ณผ 8์ ๋ซ๊ณ 3์ด ํ์ 1์ ํด์ ํฉ๋๋ค - ์ฐ๋ฝ์ฒ๊ฐ ๋ซํ๊ณ "Puddle" ๋ฌธ์๊ฐ ์ ์ก๋ฉ๋๋ค. 0 - ์ฐ๋ฝ์ฒ๊ฐ ์ด๋ ค ์์ต๋๋ค - "No Puddle" ๋ฌธ์๊ฐ ์ ์ก๋ฉ๋๋ค. ์ด๊ฒ์ด ๋ด ๋ฉ์ผ์ ์๋ ๋ด์ฉ์
๋๋ค
.
์ด์ ์ ์ฒญ์๋ฅผ ๋ฐ๊ณ ์ถ์ต๋๋ค. ์ฌ๊ธฐ์ ์๋ฃ๋ฅผ ๊ณต๋ถํ๋ ๋์ ๋๋ ์ธ์์ต๋๋ค. ๋งค๋ํ์คํธ ํ์ผ์ ๋ง๋ค๊ณ , ํด๋์ค ํจ์น๋ฅผ ๋ฑ๋กํ๋ ๊ฒ์ด ์ ๋ง๋ก ํ์ํ๊ฐ์? ๋์ฐํ ์ผ์
๋๋ค. Skipy๋ ์ด ๋ชจ๋ ๊ฒ์ ์ค๋ช
ํฉ๋๋ค. ๊ฑฐ์ ํฌ๊ธฐํ ๋ปํ๋๋ฐ ๋ถ์ ์ฑ
์ ์๋์ ์ฒ๊ณต์นด๋๋ ์ค๋์ ์ ์์๊ณ , ์์ด๋์ด๊ฐ ์์ด์ ์์ฃผ ๊ฐ๋จํ๊ฒ ํญ์๋ฆฌ ๋ณด๊ดํจ์ ๋ง๋ค์์ด์.
Build on Make ํ์ธ๋์ ์ ํํ์ธ์. Idea์์ ๋ค์ ์ปดํ์ผ์ด ์๋ฃ๋๋ฉด ๊ฒฐ๊ณผ๊ฐ out ํด๋์ ์ ์ฅ๋ฉ๋๋ค.
๋ชจ๋ ๊ฒ์ด ๋ถ๋ฆฌ๋์ด ์๊ณ ๋งค์ฐ ๋
๋ฆฝ์ ์ด์ด์ ์ด๋ค ๊ฒฝ์ฐ์๋ ๊ธฐ๊ณ ๋ด ์ด๋์์๋ ๋ณต์ฌ๋๊ณ ์คํ๋ฉ๋๋ค.
ํ์ง๋ง ๊ทธ๋ฅ ์คํํ๋ฉด ๋ฌธ์๊ฐ ์ ์ก๋์ง๋ง ์ฝ์์ด ์์ผ๋ฉฐ ์์
๊ด๋ฆฌ์์์ ํด๋น ํญ๋ชฉ์ ์ฐพ์์ผ๋ง ํ๋ก์ธ์ค๋ฅผ ์ข
๋ฃํ ์ ์์ต๋๋ค.
๋ค๋ฅธ ํด๋๋ก ์ ์กํ๊ณ ๊ฑฐ๊ธฐ์์ ์์ํ๊ณ bat ํ์ผ์ ๋ง๋ญ๋๋ค.
๋ฐฐ์น ํ์ผ์ ์คํํฉ๋๋ค
. ์ฌ๊ธฐ์ ์ฝ์์ด ์๊ณ Ctrl + C๋ฅผ ์ฌ์ฉํ์ฌ ์ข
๋ฃ ์์ฒญ์ ํฉ๋๋ค.
๊ทธ๋ฌ๋ jar๋ฅผ ๋ ๋ฒ ์คํํ๋ฉด ๋ ๋ฒ์งธ ์คํ์ ์๋ํ์ง ์์ต๋๋ค. com ํฌํธ๊ฐ ์ฌ์ฉ ์ค์ด๊ฒ ๋ฉ๋๋ค. ๋ฐ๋ผ์ ํ ๋ฒ์ ์ ์ฒญํ๋ ๊ฒ์ด ์ข์ต๋๋ค. Launch4j๋ฅผ ์ค์นํ๊ณ ์คํํ ํ ์ถ๋ ฅ ํ์ผ์ ์ ํํฉ๋๋ค. ์ด๋ฆ์ ๋ฌด์์ด๋ ๊ธฐ๋ณธ ์ฐฝ์์ exe์ด์ด์ผ ํ๊ณ jar๋ฅผ ์ ํํ๊ณ ์ฝ์ ์ ํ์ ์ ํํฉ๋๋ค. ์ต์ ๋ฒ์ 1.4.0 ๋ง์
๋ณต์ฌ๋ณธ์ด ํ์ํ์ง ์์์ ๋ํ๋
๋๋ค
. ๊ธฐ์ด๊ฐ ์๋ ๋ฒํผ ์์ ํ์ผ์ ์ ์ฅํ ์์น๋ฅผ ๋ฌป๋ ์ง๋ฌธ์ Good Lak์ด๋ผ๊ณ
๋๋ตํฉ๋๋ค . ๋ชจ๋ ๊ฒ์ด ์ค๋น๋์์ต๋๋ค.
์คํ ํ์ผ์ ์คํํด ๋ณด๊ฒ ์ต๋๋ค.
์ฌ์ค, ๋์คํจ์ฒ์์๋ ์ฌ์ ํ javaw๋ก ์คํ๋ฉ๋๋ค.
ํธ์ง๊ฐ ์ต๋๋ค
. ๊ทธ๋ฐ ์ ์์ ์ ๋ Java๋ฅผ ์ข์ํ์ต๋๋ค. ์ถ์ . ๋์ถ์ ๋ชจ๋ํฐ๋งํ๋ ๊ฐ์ฅ ์ข์ ๊ธฐ๊ณ์ ๋ฐฉ๋ฒ์ http://www.vse-sam.ru/10249-mexanicheskaya-sistema-dlya-kontrolya-i-predotvrashheniya-protechki-vody.html PPS์
๋๋ค. ์ฝ์ ์ถ๋ ฅ์ ํน์ ๋ผ์ธ ์ ์ดํ ํ๋ก๊ทธ๋จ๊ณผ ์ถฉ๋ํ๋ฏ๋ก ๊ฐ์๊ธฐ ์ด ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ๋ณตํ๋ ๊ฒฝ์ฐ ์ฝ์ ์ถ๋ ฅ์ ๋นํ์ฑํํ๋ ๊ฒ์ ์์ง ๋ง์ญ์์ค.
GO TO FULL VERSION