추운 겨울과 봄이옴을 알리는 꽃샘추위가 지나가고, 드디어 따듯한 봄내음이 제주도에 퍼졌습니다.

주말에 특별한 일이 없으면 방구석에 박혀 휴식을 즐기지만 어제는 왠지 밖에 나가 산책을 하고

싶더라구요. 그래서 간단하게 동내를 산책하며 찍은 사진과 함께 일상생활 포스트를 해보려 합니다.


[지도 출처 : 네이버지도]


출발지는 용담2동 1942번지 입니다. 사진에서는 다호마을 복지회관에서 시작한걸로 나와 있지만

사실은 좀더 뒤에서 시작되었습니다.

총거리 1.3KM, 도보로는 약 20분정도 걸리는 구간입니다.



시작부터 동백꽃이 이쁘게 펴있길래 한번 찍어보았습니다. 돈이 없는지라 DSLR구매할 엄두는 못내겠고

아쉬운대로 스마트폰으로 촬영하여 살짝 보정만 하였습니다.

(포토로더는 본인이 개인적으로 운영하는 페이지 입니다. 광고아님..)

어릴적에는 봄이 참 길었는데 요즘에는 여름과 겨울만 긴것 같습니다.

날이 좋을땐 대충 걸쳐입고 나가서 많이 찍어놔야 할것 같습니다.


가는곳마다 동백꽃이 피어 있더군요. 저는 개인적으로 꽃은 안좋아하지만 그래도 사진찍으면서

기분은 좋았습니다. 색이 너무 이쁘지 않나요?



중간지점을 지나갈 무렵, 강아지 가족을 만났습니다.

처음에는 저를보며 경계를 하는것 같았지만 스마트폰을 내려놓고 경계를 푸니 금세 다가와서

꼬리를 살랑살랑 흔들며 저를 반겨주었습니다.

발에 흙이 많이 뭍어있었는지 일어나보니 검은바지에 온통 흙이....

그래도 너무 귀여워서 그자리를 한참동안이나 떠나지 못했네요 ㅋㅋ




처음이라 사진찍는 기술도 많이 서툴고, 건진 사진은 별로 없지만 정말 재미있었습니다.

앞으로도 시간이나면 밖에나가서 제주도 일상 사진을 찍어 여러분들께 보여드리고 싶네요.

긴글 읽어주셔서 감사하구요, 다음 포스트때 만나요!!

Posted by MAESTRO.
,


NSUserDefaults — A Swift Introduction


NSUserDefaults 는 안드로이드 Preference와 같은 기능을 수행합니다.

간단한 데이터인 경우 구지 데이터베이스를 생성하지 않고도 NSUserDefaults를 이용하여 자료를 저장 

할 수 있습니다.


[사용방법]

let pref = NSUserDefaults.standardUserDefaults()//NSUserDefaults 클래스 참조

pref.setValue("Hello", forKey: "abcd")//앞에서부터 "저장할 데이터", "키값"

print(pref.stringForKey("abcd"))//키값을 이용하여 저장된 데이터 불러오기


아래 내용은 NSUserDfaults와 관련된 애플 개발자 사이트의 설명글입니다.

영어 실력이 시원치 않아 원문을 보고 싶으신 분은

https://developer.apple.com/reference/foundation/userdefaults

로 접속하여 보시면 되겠습니다.

Class

UserDefaults

The NSUserDefaults class provides a programmatic interface for interacting with the defaults system.

NSUserDefaults 클래스는 기본 시스템과 상호 작용할 수있는 프로그래밍 인터페이스를 제공합니다.

 

The defaults system allows an application to customize its behavior to match a user’s preferences.

디폴트 시스템은 사용자의 선호에 맞게 사용자 정의 프로그램 동작을 지정해 줍니다.

 

For example, you can allow users to determine what units of measurement your application displays or how often documents are automatically saved.

예를 들어 어플에 표시된 어떠한 측정 단위나 얼마나 자주 문서를 자동으로 저장할지를 사용자가 결정할 수 있도록 해줄 수 있습니다.

 

Applications record such preferences by assigning values to a set of parameters in a user’s defaults database.

어플리케이션은 사용자 디폴트 데이터베이스 내에 있는 매개 변수 집합으로 각각 선호하는 값을 기록 합니다.


The parameters are referred to as defaults since they’re commonly used to determine an application’s default state at startup or the way it acts by default.

매개 변수는 시작 시 응용 프로그램의 기본 상태 또는 기본적으로 작동하는 방식을 결정하는 데 일반적으로 사용되므로 기본 값으로 참조된다,


해석한다고 해봤지만 뭔소린지 모르겠네요...

전 이만 도망가보겠습니다!

포스트에 관한 피드백은 언제나 환영입니다.



Posted by MAESTRO.
,

NSNotificationCenter

IOS(Swift) 2016. 12. 5. 23:46


Class

NSNotificationCenter

An NSNotificationCenter object (or simply, notification center) provides a mechanism for broadcasting information within a program.

NSNotificationCenter 객체는(또는 줄여서 notification center) broadcasting 매카니즘 정보를 제공해준다.

 An NSNotificationCenter object is essentially a notification dispatch table.

NSNotificationCenter 객체는 notification dispatch table을 기본으로 한다.


Overview

Objects register with a notification center to receive notifications (NSNotification objects) using the addObserver:selector:name:object: or

addObserverForName:object:queue:usingBlock: methods.

notification center는 객체등록을 위해 addObserver:selector:name:object: 또는 addObserverFor

Name:object:queue:usingBlock: methods를 사용한다.

 

Each invocation of this method / specifies a set of notifications.

각각의 메서드는 notification 집합을 지정한다.

 

Therefore, objects may register as observers of different notification sets by calling these methods several times.

그러므로, 서로 다른 notification들은 여러 차례 호출되어 지기 때문에 객체로 등록할 수 있다.

 

Each running Cocoa program has a default notification center.

각각의 Cocoa 프로그램에는 서로 다르게 작동하는 notification center가 있다.

 

You typically don’t create your own.

일반적으로 여러분 스스로 만들지는 않는다.

 

An NSNotificationCenter object can deliver notifications only within a single program.

NSNotificationCenter 객체는 하나의 프로그램에서만 nofitication 기능을 수행할 수 있다.

 

If you want to post a notification to other processes or receive notifications from other processes, use an instance of

만약 다른 프로세서에 notification을 보내거나 다른 프로세서에 있는 notification을 사용하고 싶다면,

https://developer.apple.com/reference/foundation/nsdistributednotificationcenter?language=objc 

이것을 사용해봐라.

Posted by MAESTRO.
,

회사에서 안드로이드로 개발된 어플을 아이폰 용으로도 하나 만들어 보라고 하셔서 현재 개발중인데....

언어도 언어지만 XCODE 사용하는게 너무어렵네요..ㅠㅠ

에러나도 뭔소린지 모르겠고 이번달 중순까지 마무리 해야되는데 큰일났습니다..ㅠㅠ



Posted by MAESTRO.
,

1년 전부터 대한통운을 사칭한 스미싱 문자가 유행처럼 돌았었습니다.

그리고 그문자가 저에게 왔습니다..

전화를 걸어도 받지 않는 의문의 번호로 온 문자메세지 입니다.

해당 주소를 PC로 접속해본결과 대한통운 택배 조회 사이트와 똑같이 나왔습니다.

다른점이라면 전화번호를 입력하여 조회를 할 수 있게끔 해놓았는데 , 정상적인

대한통운 택배 조회 사이트는 운송장 번호를 적게끔 되어 있습니다.

(정상적인 대한통운 택배 조회 사이트)


비교 사진을 보여드리고 싶었는데, 다시 접속하니 페이지가 삭제되어 있었습니다.

아마도 자신의 할일을 끝내면(?) 자동으로 소멸되는 사이트 였나 봅니다.

여기서 중요한 점은 자신의 휴대폰번호를 적지 않고 다른 번호를 적은뒤 조회 버튼을

눌렀을시 정상적인 번호가 아니라고 뜬다는 것입니다. 아마 해당 사이트는 접속한 사

람의 전화번호를 알고 있어서 저런 문구가 뜨지않나 추측해봅니다.

저는 PC에서 접속을 했기때문에 제 전화번호를 적고 어플리케이션을 다운 받았습니다

그리고 해당 어플리케이션의 매니페스트 내용은 많이 손상되었지만 아래와 같은 퍼미

션들이 선언되어 있었습니다.

u s e s - p e r m i s s i o n a n d r o i d . p e r m i s s i o n . I N T E R N E T

- 인터넷 사용권한 퍼미션

a n d r o i d . p e r m i s s i o n . R E A D _ P H O N E _ S T A T E

- 단말기 상태 읽기 권한 퍼미션

a n d r o i d . p e r m i s s i o n . R E A D _ S M S

- 문자메시지 읽기 퍼미션(이하, 퍼미션 생략)

a n d r o i d . p e r m i s s i o n . S E N D _ S M S 

- 문자메시지 전송 권한

a n d r o i d . p e r m i s s i o n . R E C E I V E _ B O O T _ C O M P L E T E D

- 부팅완료를 알려줌

a n d r o i d . p e r m i s s i o n . R E C E I V E _ S M S 

- 문자메시지 수신 권한

a n d r o i d . p e r m i s s i o n . W R I T E _ S E T T I N G S

- APN설정 쓰기 권한

a n d r o i d . p e r m i s s i o n . C A L L _ P H O N E 

- 통화 권한

a n d r o i d . p e r m i s s i o n . M O D I F Y _ P H O N E _ S T A T E

- 단말기 상태 편집 권한

a n d r o i d . p e r m i s s i o n . B I N D _ D E V I C E _ A D M I N

- 기기관리자 활성화 권한


이렇게 어마어마한 퍼미션들이 선언되어 있었습니다...

이걸 깔았다가는 보나마나 휴대폰에 있는 모든 정보를 빼갈겁니다.

다른 클래스들은 깨지거나 열리지 않아서 정확히는 확인을 해보진 못하였으나

패키지명이나, SDK등의 명칭이 Bugly인걸로 봐선 중국에서 만든 어플이란걸

예살해볼수 있겠습니다.

(Bugly는 중국에서 운영하는 프로그래머 피드백 사이트입니다.)


아래 내용은 CJ대한통운에 올라온 공지사항입니다.


스미싱 사례 및 신고안내(2/12 Update)

2015-02-12

조회수 : 120882

 

※ 악성 앱 설치 예방법

 스마트폰에서 환경 설정→보안→디바이스 관리 순으로 들어가 알 수 없는 출처에 V체크가 돼 있으면 해제(출처: 미래창조과학부)

환경설정 보안 디바이스 관리의 알수없는 출처의 체크를 해제


※ 스미싱 사례 안내   

 


1. [CJ통운]우편물이수취두절(부배중)상태입니다. 재발송/주소지확인
2. cj대한통운입니다. 운종장번호 확인하시기 바랍니다
3. [CJ대한통운]고객님게서 택배가도착하였습니다 확인해주십시요. 
4. 부재중으로 물품 미수취로 반송됩니다. 
5. 고객님 앞으로 도착한 운송장번호[2540-****]CJ택배 조회 부탁드립니다. 
6. 수하인의 정보확인어려워 물품 반송합니다. 
7. 우편물 수취두절 연락두절 사이트 주소
8. 등기소포 수취불가상태 입니다. 주소지확인/변경요망
9. CJ택배 불가상태입니다. 주소지확인/변경
10. [post]등기소포 배송불가(주소불명)주소지확인/변경요망
11. 고객님 택배가 반송처리 되었으니 주소를 수정하세요




※ 스미싱 주의 안내 


스마트폰 이용자들에게 인터넷주소를 클릭하여 개인정보를 뺴거나 소액결제를 유도하는 
신종 사기 수법인 "스미싱"이 번지고 있습니다.
저희 CJ대한통운 택배는 택배 앱 설치 주소[http://앱다운.com] 외 운송장 번호나 택배 조회를 하도록 별도의 안내하지 않습니다.
인터넷주소가 포함된 문자를 수신한 고객님께서는 인터넷주소에 접속하지 말고 바로 삭제해주시기 바랍니다.




※ 스미싱 피해 신고 안내


 개인정보 유출, 통신 과금 피해 등 스미싱으로 인해 직접적인 피해가 발생한 경우,
 사이버경찰청 또는 KiSA에 직접 신고하여야 피해구제가 가능합니다.
                                    
                                [신고전화]
                    - 사이버경찰청: 국번없이 182
                    - KISA: 국번없이 118


재미없는글 읽어 주셔서 감사합니다.

기타 오류및 피드백 사항은 댓글로 남겨주시면 감사하겠습니다.

Posted by MAESTRO.
,


Thread 1 signal Sigabrt


구글링을 통해 국내 여러 사이트를 돌아다녀 봤지만 이렇다한 해결책을 찾아보지 못했습니다.

에러라는것이 정해진 틀에서 발생하는 것이 아니라 생각지도 못한 곳에서 발생하기 때문에 콕찝어서

모든에러에 대한 해결방법을 말씀드릴순 없지만 '개똥도 약에 쓰려면 없다고' 혹시나 하나 얻어 걸려서

도움이 될까 싶어 올려봅니다.



원인 1.

Custom Class 의 Class 및 Module 설정이 잘못되었을 경우

해결방법

Custom Class 의 Class 및 Module 설정이 잘못되었을 경우 위와같은 에러가 발생합니다.

MainStoryBoard로 넘어가신후 해당 뷰의 Custom Class 옵션설정을 제대로 설정해주시면 해결이 가능합니다.


원인 2.

Outlets 가 여러개 선언되었을경우

해결방법

아웃렛 변수를 여러개 선언할 경우 충돌로 인하여 Sigabrt 에러가 발생하게 됩니다.

필요없는 선언을 삭제해주면 간단히 해결이 가능합니다.


원인 3.

클래스에서 아웃렛 변수선언을 강제로 삭제할 경우

해결방법

클래스에서 아웃렛 선언을 삭제하더라도 스토리 보드 내에있는 UIView에는 아직 선언이 남아있습니다.

원인2와 같이 삭제를 해주시면 해결이 가능합니다.


기타

Xcode를 완전히 끄고 재시작 하거나, 맥북자체를 재시작해주시면 해결이 가능합니다.

하지만 이렇게 해결되는 경우는 드물더군요...


Xcode를 접한지 이제 2~3개월쯤되어 가지만 역시나 어렵습니다 ㅠㅠ

마치 안드로이드를 처음 공부하는 기분입니다. 하지만 차근차근 하다보면 나아지겠지요?

저는 이 에러 때문에 일주일을 스택오버플로우와 구글에서 허우적거렸습니다.

저같은 경우는 원인1 때문이였습니다. 제가 영어를 못해서 못본건지 아니면 없던것인지 아무리 찾아봐도

나오지 않던 찰나에 혹시나 이거때문인가 했는데 역시나...

아무튼 이글을 읽고 누군가에게 도움이 되었으면 좋겠습니다.


Posted by MAESTRO.
,

출처 : https://github.com/CocoaPods/CocoaPods/issues/2908

gem uninstall psych

pod setup

'IOS(Swift)' 카테고리의 다른 글

Swift NSUserDefaults(Android = Preference)  (0) 2016.12.06
NSNotificationCenter  (0) 2016.12.05
swift Thread 1 signal Sigabrt 에러 해결 방법  (4) 2016.10.10
Posted by MAESTRO.
,

가짜 ‘윈도우 업데이트’로 위장한 랜섬웨어 등장?

  • AhnLab
  • 2016-09-21

최근 해외에서 윈도우 업데이트로 위장한 랜섬웨어가 등장했다. 언제든 이러한 유형의 랜섬웨어가 국내 사용자를 타깃으로 제작 및 유포될 수 있어 미리 살펴보고 대비하는 것이 좋겠다. 특히 랜섬웨어 피해 예방의 첫 번째 보안 수칙으로 윈도우 등 OS와 주요 프로그램의 보안 업데이트 적용이 강조되고 있는 만큼, 윈도우 업데이트 파일로 위장한 랜섬웨어로 인한 잠재적인 피해가 우려된다.

 

우선, 영어권 사용자를 노리는 것으로 추정되는 허위 윈도우 업데이트 랜섬웨어가 발견됐다. 윈도우 업데이트로 위장한 파일을 실행하면 ‘WindowsUpdate.exe’라는 이름의 파일이 시스템에 생성 및 실행되며, [그림 1]과 같이 ‘중요 윈도우 업데이트’라는 메시지와 함께 가짜 업데이트 화면이 나타난다. 

 

 

[그림 1] 가짜 윈도우 업데이트 화면

 

허위 윈도우 업데이트가 진행되는 동안 랜섬웨어는 사용자 몰래 시스템 내 파일을 암호화한다. 최근 랜섬웨어들과 마찬가지로 PC의 거의 모든 포맷의 파일을 암호화하며, 파일 확장자명에는 “.fantom”라는 문자를 추가한다.

 

[그림 2] 랜섬웨어 감염 후 변경된 바탕화면

 

이후 바탕화면을 [그림 2]와 같이 변경하고 “DECRYPT_YOUR_FILES.HTML” 파일을 생성해 사용자에게 암호화된 파일 복구와 관련된 내용을 안내한다.

 

[그림 3] 볼륨 섀도우 카피(Volume Shadow Copy) 삭제

 

또한 추가로 생성된 “%APPDATA%\delback.bat” 파일은 VSC(Volume Shadow Copy) 파일을 삭제하여 시스템 복원을 방해한다.

 

최근에는 러시아어 사용자를 노린 것으로 추정되는 허위 윈도우 업데이트 랜섬웨어도 발견됐다. 이른바 ‘RAA 랜섬웨어’로 불리는 이 랜섬웨어는 DOC 문서 파일 형태로 유포되었다. 

 

[그림 4] RAA 스크립트(Java Script)가 포함된 랜섬웨어 DOC 문서

 

악성 DOC 파일을 실행하면 [그림 4]와 같이 러시아어로 ‘MS 오피스워드의 최신 버전에서 만들어진 것으로, 문서를 보기 위해서는 공식 업데이트 패키지를 설치하라’는 내용이 나타난다. 내용 하단에는 MS의 로고가 포함된 패키지 설치 버튼이 나타나 사용자의 실행을 유도한다.

 

해당 해키지를 실행하면 공격자가 삽입한 스크립트(Java Script, JS)가 실행된다. 해당 스크립트에는 [표 1]과 같은 코드가 포함되어 있다. 

 

[표 1] 랜섬웨어 스크립트에 포함된 코드 정보

 

또한 자바스크립트의 indexOf로 확장자를 이용해 암호화를 할 파일들을 검색한다. 암호화 대상 파일을 검색하는 문자열은 [표 2]와 같으며, docm, docx, xlsx 등의 파일도 암호화의 대상이다.

 

[표 2] 암호화 대상 확장자 문자열

 

한편, 스크립트를 통해 생성된 실행 파일(ii.exe)은 특정 네트워크로 연결을 시도하지만, 안랩의 분석 당시 해당 서버는 연결되지 않았다. 

 

[그림 4] RAA 랜섬웨어 감염 안내 메시지

 

이번에 발견된 두 건의 윈도우 업데이트로 위장한 랜섬웨어는 각각 영어 및 러시아어로 제작되어 있어, 국내 사용자를 노린 것은 아닌 것으로 보인다. 그러나 언제든 관련 변종이 국내로 유입될 수 있기 때문에 주의를 기울이는 것이 바람직하다. 특히 사용 중인 OS 및 프로그램의 최신 버전 업데이트는 반드시 정품 OS 및 소프트웨어에서 제공하는 업데이트 기능 및 제조사의 업데이트 사이트를 통해 진행하는 것이 바람직하다. 

 

한편, V3 제품은 이들 랜섬웨어를 각각 아래와 같은 진단명으로 탐지하고 있다. 

 

<V3 제품군의 진단명>

Trojan/Win32.Tear (2016.08.26.03)

DOC/Downloader (2016.09.01.00)

JS/Downloader (2016.09.01.00)

Trojan/Win32.Upbot (2016.08.30.03)​ 

  • AhnLab 로고
  • ASEC대응팀

이 정보에 대한 저작권은 AhnLab에 있으며 무단 사용 및 도용을 금합니다.

단, 개인이 비상업적인 목적으로 일부 내용을 사용하는 것은 허용하고 있으나, 이 경우 반드시 출처가 AhnLab임을 밝혀야 합니다.
기업이 이 정보를 사용할 때에는 반드시 AhnLab 의 허가를 받아야 하며, 허가 없이 정보를 이용할 경우 저작권 침해로 간주되어 법적인 제재를 받을 수 있습니다. 자세한 내용은 컨텐츠 이용약관을 참고하시기 바랍니다.

정보 이용 문의 : contents@ahnlab.com


'잡담' 카테고리의 다른 글

IOS 개발 엄청 빡쎄네요...  (0) 2016.12.02
[안드로이드] CJ대한통운 스미싱 문자  (8) 2016.10.26
회로공부는 너무 어려워..  (0) 2015.10.05
처음으로 강의해본 날  (0) 2015.10.03
티스토리 시작..  (0) 2015.10.03
Posted by MAESTRO.
,

INDESIGN STUDIOS

Design 2016. 6. 6. 15:44


팀 창설일 : 2016. 06


분야 : 디자인, 영상편집 및 제작, 3D 설계


인디자인(INDESIGN)은 소수의 인원으로 구성된 디자인팀입니다.

 

Posted by MAESTRO.
,

오늘은 WIFI 쉴드를 사용하여 웹서버를 만들어 서버에 누군가 접속을하면 불이 켜지도록 해볼겁니다.

해당 프로젝트는  https://www.youtube.com/watch?t=90&amp;v=iOran8zx1yQ 이것을 응용한것입니다. 시작하기전 동영상을 먼저 보신뒤

하시는걸 추천합니다.

필요한 것들은 아래와 같습니다.

 

옥션기준

와이파이 쉴드 가격이 상당이 비쌉니다. 의도치 않게 와이파이 쉴드가 있으신분들만 해당 글을 따라하실수 있게 됬네요.. ㅠㅠ 죄송합니다..이렇게 비싼줄 몰랐어요ㅠㅠ

아두이노 개발을 위해선 아두이노 공식사이트에서 제공하는 sketch 라는 프로그램이 필요합니다. 아두이노 개발환경 설정은 시간이 나면 해드리겠습니다.

일단 스케치를 실행 하시고 해당코드를 입력해주시기 바랍니다.

WIFI WEB SERVER[MEGA]

/*
  WiFi Web Server

A simple web server that shows the value of the analog input pins.
using a WiFi shield.

This example is written for a network using WPA encryption. For
WEP or WPA, change the Wifi.begin() call accordingly.

Circuit:
* WiFi shield attached
* Analog inputs attached to pins A0 through A5 (optional)

created 13 July 2010
by dlf (Metodo2 srl)
modified 31 May 2012
by Tom Igoe

*/

#include <SPI.h>
#include <WiFi.h>
#include <Wire.h>

char ssid[] = "와이파이명";      // your network SSID (name)
//char pass[] = "와이파이 비밀번호";

// 공유기에서 와이파이 설정을 WEP 방식으로 하신분들은 암호사용안함으로 한뒤 사용해주시기 바랍니다.

 //int keyIndex = 0; 
int status = WL_IDLE_STATUS;

WiFiServer server(80);

void setup() {
  //Initialize serial and wait for port to open:
  Serial.begin(9600);
  Wire.begin();
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }

  // check for the presence of the shield:
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("WiFi shield not present");
    // don't continue:
    while (true);
  }



  // attempt to connect to Wifi network:
  while ( status != WL_CONNECTED) {
    Serial.print("Attempting to connect to SSID: ");
    Serial.println(ssid);
    // Connect to WPA/WPA2 network. Change this line if using open or WEP network:
    status = WiFi.begin(ssid);
   
    // wait 10 seconds for connection:
    delay(10000);
  }
  server.begin();
  // you're connected now, so print out the status:
  printWifiStatus();
}


void loop() {
  // listen for incoming clients
  WiFiClient client = server.available();
  if (client) {
    Serial.println("new client");
          Wire.beginTransmission(5);
          Wire.write('H');
          Wire.endTransmission();

    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        Serial.write(c);
        // if you've gotten to the end of the line (received a newline
        // character) and the line is blank, the http request has ended,
        // so you can send a reply

        if (c == '\n' && currentLineIsBlank) {
          // send a standard http response header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connection: close");  // the connection will be closed after completion of the response
          client.println("Refresh: 5");  // refresh the page automatically every 5 sec
          client.println();
          client.println("<!DOCTYPE HTML>");
          client.println("<html>");

          // output the value of each analog input pin
          for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
            int sensorReading = analogRead(analogChannel);
            client.print("analog input ");
            client.print(analogChannel);
            client.print(" is ");
            client.print(sensorReading);
            client.println("<br />");
          }
          client.println("</html>");                
          Wire.beginTransmission(5);
          Wire.write('L');
          Wire.endTransmission();
          break;
         
        }
        if (c == '\n') {
          // you're starting a new line
          currentLineIsBlank = true;
        }
        else if (c != '\r') {
          // you've gotten a character on the current line
          currentLineIsBlank = false;
        }
      }
    }
    // give the web browser time to receive the data
    delay(1);

    // close the connection:
    client.stop();
    Serial.println("client disonnected");
  }
}


void printWifiStatus() {
  // print the SSID of the network you're attached to:
  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());

  // print your WiFi shield's IP address:
  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");
  Serial.println(ip);

  // print the received signal strength:
  long rssi = WiFi.RSSI();
  Serial.print("signal strength (RSSI):");
  Serial.print(rssi);
  Serial.println(" dBm");
}

위의 코드를 컴파일 하신뒤 MEGA에 업로드 시켜주시기 바랍니다.

 

LED CONTROL [UNO]

#include <Wire.h>
#include <SPI.h>
#include <SD.h>

File myFile;
void setup() {
  // put your setup code here, to run once:
  Wire.begin(5);
  Wire.onReceive(ReceiveEvent);

  pinMode(8, OUTPUT);
  digitalWrite(8, LOW);
}

void loop() {
  // put your main code here, to run repeatedly:

}

void ReceiveEvent(int howMany){
  while(Wire.available()){
    char c = Wire.read();

    if(c == 'H')
    {
      digitalWrite(8, HIGH);
    }
    else if(c == 'L')
    {
      digitalWrite(8, LOW);
    }
  }

 

}

위의 코드를 입력하신뒤 우노에 업로드 해주시기 바랍니다.

회로 연결도

회로연결까지 끝나셨다면 와이파이쉴드 웹서버에 접속해보세요. LED가 반짝 반짝 거리는것을 확인할수 있습니다.

해당동영상은 빨른시일내에 올리도록 하겠습니다.

 

 

'ARDUINO' 카테고리의 다른 글

아두이노 키트 빌려옴  (0) 2015.10.04
Posted by MAESTRO.
,