Practice makes perfect, thanks.
'IOT > 아듀이노' 카테고리의 다른 글
아듀이노 dc모터제어 4 wheel (0) | 2019.09.07 |
---|---|
back light (0) | 2019.03.02 |
크리스마스 트리 만들기(led strip (네오픽셀)) (0) | 2018.12.23 |
DIY-공기청정기 (0) | 2018.06.01 |
[DIY : 센서등]인체감지센서,LED로 센서등 만들기 (0) | 2018.03.31 |
Practice makes perfect, thanks.
아듀이노 dc모터제어 4 wheel (0) | 2019.09.07 |
---|---|
back light (0) | 2019.03.02 |
크리스마스 트리 만들기(led strip (네오픽셀)) (0) | 2018.12.23 |
DIY-공기청정기 (0) | 2018.06.01 |
[DIY : 센서등]인체감지센서,LED로 센서등 만들기 (0) | 2018.03.31 |
DIY-공기청정기
저렴하게 만들수 있다는 장점이 있지만 뭔가 허접. 저처럼 3D프린트기가 없다면.
장비 : 자동차 에어컨필터(6천원~1만5천원), 테이프(1천원), 쿨러팬(죽어버린데스크탑의 팬 재사용), 샤오미보조베터리, 아두이노
여기서 아두이노를 사용하는건 계속적으로 전력을 공급하기 위해서 그냥 사용할뿐.
이것 사용안하면 10초후에 보조베터리에서 전력이 끊어짐.
추가로 미세먼지 센서나 led로 측정값에 대한 이벤트를 주는것도 가능하겠음.
미세먼지 센서로 측정하게되면 업데이트하는걸로.
데스크탑에서 뺀 쿨러 4pin이다.
노란색선(+), 그 옆 검정색선(-)
그럭저럭^^ 그런데 바람이 좀 많이 약하다. DIY는 자기 만족이니까. 난 만족한다.
이것 선풍기로 만드는것도 좋겠는데^^.
아듀이노 dc모터제어 4 wheel (0) | 2019.09.07 |
---|---|
back light (0) | 2019.03.02 |
크리스마스 트리 만들기(led strip (네오픽셀)) (0) | 2018.12.23 |
미세먼지 센서(GP2Y1010AU0F) 로 측정하기 (3) | 2018.06.11 |
[DIY : 센서등]인체감지센서,LED로 센서등 만들기 (0) | 2018.03.31 |
자바스크립트로 fb API연동하여 로그인하기
그래프 API 탐색기 이용하기
url : https://developers.facebook.com/tools-and-support
appid 에서 가져올 권한 선택추가 선택
default : id, name
추가로 가져올 정보 : email
위 api 탐색기로 선 테스트 후
아래처럼 javascript로 코드작성.
참고url : https://developers.facebook.com/docs/facebook-login/web#logindialog
<<html code>>
로그인페이지>>
로그인후 fb의 개인정보 받아 display
로그인은 잘 되나, 로그아웃은 아래와 같은 에러내용으로 console log를 찍고 로그아웃이 안되고 있음.
유투브 동영상등 찾아보고 진행했지만 해결못함.
curl kakao open api사용하기 (0) | 2018.08.05 |
---|---|
php CURL 사용하기 (0) | 2018.07.31 |
php 패스워드 암호화 bcript (0) | 2018.05.02 |
unlink(=delete) 메소드 이용하기 (0) | 2018.04.22 |
directory entry 읽어 파일리스트업 (0) | 2018.04.20 |
스크린스크래핑
WebBrowser이용해서 website에 렌더링된 html의 특정값을 추출한다.
예를 들어 특정 사이트 모 카테고리에 있는 내용을 모두 가져와서 데이터화하고 그것을 분석하고 싶을 때 스크래핑을 사용하면 편리하다.
아래 code는
특정 카테고리의의 글list를 통해 key, title을 추출하고
Key를 이용해 본문내용의 text를 가져와서 db화 한 내용이다.
글의 pattern등 분석자료로 사용할 목적으로 데이터가 필요하나 해당사이트에서 DB를공개하진 않으니 이렇게 스크랩핑해서 자료화해서 사용하는 것이다.
이렇게 하지 않으면 사이트의 모든 사이트 내용을 클릭~클릭~클릭~ 하겠지.
이렇게 프로그램하기 전에 사전에 해당 사이트를 분석하고 맞게 프로그래밍하면 된다.
step1) 카테고리의의 글list를 통해 key, title을 추출 : webSiteContentsList();
reference to : https://www.codeproject.com/Tips/858775/Csharp-Website-HTML-Content-Parsing-or-How-To-Get
c#에서 mariadb사용하기 (0) | 2018.11.10 |
---|---|
WebBrowser.DocumentText 한글깨짐 (0) | 2018.05.07 |
using MySqlConnector (0) | 2018.05.07 |
WebBrowser 객체를 이용해서 web페이지를 볼 때 DocumentText 메소드로 렌더링된 html을 읽어올 때 default가 utf-8 encoding type이라 이상태에서는 euc-kr의 한글은 깨진다
이 경우 스트림리더를 사용해서 실제 페이지의 encoding type으로 읽어들이면 된다.
샘플) WebBrowser.DocumentText 로 소스를 봤을경우.
<html>
<head>
<title><��̴Ͻ�Ʈ ���� �ϴ�></title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr" />
StreamReader를 이용해 페이지의 encoding type으로 읽어들인경우
<html>
<head>
<title><오늘은 어린이날 입니다></title>
<<C# Code>>
/// <summary>
/// WebBrowser's DocumentCompleted Event
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void webBrowserViewer_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
// ((WebBrowser)sender).Document.Window.Error += new HtmlElementErrorEventHandler(Window_Error);
WebBrowser oBrowser = sender as WebBrowser;
txtSource.Text = StreamConvertEUCKRtoUTF8(oBrowser);
}
/// <summary>
/// Using WebBrowser web page
/// 웹페이지 Encoding type 이 EUC-KR 이면 WebBrowser.DocumentText로 html로 렌더링된 text를 볼때 한글이 깨진다.
/// 아래처럼 스트림리더로 EUC-KR type으로 읽어온다.
/// </summary>
/// <param name="oBrowser"></param>
/// <returns></returns>
private String StreamConvertEUCKRtoUTF8(WebBrowser oBrowser)
{
String sResult = String.Empty;
Stream oStream;
StreamReader oStreamReader;
oStream = oBrowser.DocumentStream;
oStreamReader = new StreamReader(oStream, System.Text.Encoding.GetEncoding(oBrowser.Document.Encoding));
oStream.Position = 0;
sResult = oStreamReader.ReadToEnd();
return sResult;
}
c#에서 mariadb사용하기 (0) | 2018.11.10 |
---|---|
WebBrowser이용한 스크린스크래핑 (0) | 2018.05.09 |
using MySqlConnector (0) | 2018.05.07 |
c#에서 Mariadb를 연결할때 MySqlConnector를 사용한다.
VS에서 NgGet을 이용해서 쉽게 검색하고 설치할 수 있다.
*NgGet 이놈 참 좋다~
MySqlConnector는 MIT 라이센스 그냥 사용하면 된다.
connector설치한김에 테스트까지 해봐야지요
c#코드
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using MySql.Data.MySqlClient;
namespace ScrappingWinForms
{
public partial class Form1 : Form
{
string sConnectionString = "Server=localhost;Uid=root;Pwd=???????;Database=???";
String Url = string.Empty;
public Form1()
{
InitializeComponent();
//WebBrowser로 사이트 로딩시 자바스크립트 바인딩안되어 에러나는 경우.
//자바스크립트 오류(dialogbox) 무시하고 진행가능하도록 제어함.
this.webBrowserViewer.ScriptErrorsSuppressed = true;
webBrowserViewer.DocumentTitleChanged += new EventHandler(webBrowserViewer_DocumentTitleChanged);
}
private void btnSearch_Click(object sender, EventArgs e)
{
surftheWeb();
}
private void surftheWeb()
{
Url = txtUrl.Text;
webBrowserViewer.Navigate(Url);
}
/// <summary>
/// WebBrowser's DocumentCompleted Event
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void webBrowserViewer_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
// ((WebBrowser)sender).Document.Window.Error += new HtmlElementErrorEventHandler(Window_Error);
WebBrowser oBrowser = sender as WebBrowser;
txtSource.Text = StreamConvertEUCKRtoUTF8(oBrowser);
}
/// <summary>
/// Using WebBrowser web page
/// 웹페이지 Encoding type 이 EUC-KR 이면 WebBrowser.DocumentText로 html로 렌더링된 text를 볼때 한글이 깨진다.
/// 아래처럼 스트림리더로 페이지 EUC-KR type을 읽어들인다.
/// </summary>
/// <param name="oBrowser"></param>
/// <returns></returns>
private String StreamConvertEUCKRtoUTF8(WebBrowser oBrowser)
{
String sResult = String.Empty;
Stream oStream;
StreamReader oStreamReader;
oStream = oBrowser.DocumentStream;
oStreamReader = new StreamReader(oStream, System.Text.Encoding.GetEncoding(oBrowser.Document.Encoding));
oStream.Position = 0;
sResult = oStreamReader.ReadToEnd();
return sResult;
}
private void webBrowserViewer_DocumentTitleChanged(object sender, EventArgs e)
{
//this.Text = webBrowser1.DocumentTitle.ToString();
this.groupBox1.Text = webBrowserViewer.DocumentTitle;
}
private void loadTestData() {
MySqlConnection oConnection = new MySqlConnection(sConnectionString);
oConnection.Open();
try
{
MySqlCommand cmd = oConnection.CreateCommand();
cmd.CommandText = "SELECT * FROM TMP_help order by help_topic_id desc";
MySqlDataAdapter aDap = new MySqlDataAdapter(cmd);
DataSet dsData = new DataSet();
aDap.Fill(dsData);
dgViewSample.DataSource = dsData.Tables[0].DefaultView;
}
catch (Exception ex)
{
throw ex;
}
finally {
if (oConnection.State == ConnectionState.Open)
{
oConnection.Close();
}
}
}
private void btnForTest_Click(object sender, EventArgs e)
{
loadTestData();
}
}
}
c#에서 mariadb사용하기 (0) | 2018.11.10 |
---|---|
WebBrowser이용한 스크린스크래핑 (0) | 2018.05.09 |
WebBrowser.DocumentText 한글깨짐 (0) | 2018.05.07 |
password 암호화 알고리즘 bcrypt
php script :
아래 옵셥의 cost 값은 해싱의 속도를 나타낸다.
default : 10이며 값이 커질수록 해싱의 속도가 느려진다. 이는 오토 크래킹으로 부터 보안성을 높여 줄 수 있다.
cost => 10
cost => 12
cost => 15
reference to : http://dolgo.net/PHP/lecture/18
php CURL 사용하기 (0) | 2018.07.31 |
---|---|
Javascript로 Facebook로그인 (0) | 2018.05.26 |
unlink(=delete) 메소드 이용하기 (0) | 2018.04.22 |
directory entry 읽어 파일리스트업 (0) | 2018.04.20 |
파일 업로드(move_uploaded_file) (3) | 2018.04.14 |
칠레와인 1865 Single Vineyard Cabernet Sauvignon
1865 : SAN PEDRO 창립연도
Alcol : 14.5%
18홀 65타 라는 마케팅, 스토리텔링으로 골프애호가들에게 행운의 숫자 와인으로 기억됨.
떫고 다소 묵직한 느낌, 입안에 머금고 있을 때 과일향 과 맛의 느낌이 참 좋다..
드라이하고 떫은 맛이, 조금전 먹은 음식 맛을 초기화시키는 것 같은데 ^^
개인적인 평가는 Good 이다.
PINOT NOIR (피노 누아) (0) | 2018.04.15 |
---|
VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
자료를 맵핑할 때 특정한 key로 값을 찾을 때 사용되는 함수이다.
난 보통 일적으로 db쿼리를 사용해서 자료를 맞춘다.
Select a.key, a.data, b.data2 from
(Select 1 as key, ‘test1’ as data from dual
Union all
Select 2 as key, ‘test2’ as data from dual) a,
(Select 1 as key, ‘test1자료’ as data2 from dual
Union all
Select 2 as key, ‘test2자료’ as data2 from dual) b
Where a.key = b.key
위 쿼리의 모습과 같은 내용을 엑셀로도 할 수 있는데 그게 vlookup 이다
아래 url을 참고했고.
excel자체의 도움말에서 찾아도 된다.
==> table_array선택후 +F4로 데이터를 고정시켜야 함
reference url : https://support.office.com/en-us/article/vlookup-function-0bbc8083-26fe-4963-8ab8-93a18ad188a1
업로드된 파일을 삭제하고 싶을 때 , unlink 메소드를 사용한다.
bool unlink ( string $filename [, resource $context ] )
인수
filename : Path to the file.
반환값
성공 시 TRUE를, 실패 시 FALSE를 반환합니다.
php초보자로 이벤트(클릭)를 발생시키고 파일을 삭제하는 것도 쉽지 않네.
php에서 파일삭제 메소드를 사용하기 위해서 아래 순서대로 호출.
크게 나쁘진 않은 것 같다. 보안관련 이슈는 차후에 학습하면서 추가하면 되겠다.
1) Html a tag 사용한다.
2) A tag에 삭제파라미터 : 파일명 를 넣고 해당 페이지를 호출
3) Php get파라미터로 대상을 받아 파일삭제 메소드 호출
>> entries.PNG 삭제 버튼을 클릭함
>>bootstrap css 적용위한 css파일 첨부
php source :
Javascript로 Facebook로그인 (0) | 2018.05.26 |
---|---|
php 패스워드 암호화 bcript (0) | 2018.05.02 |
directory entry 읽어 파일리스트업 (0) | 2018.04.20 |
파일 업로드(move_uploaded_file) (3) | 2018.04.14 |
fileupload 에러메시지 설명 (0) | 2018.04.14 |