搜尋此網誌
2018年12月31日 星期一
2018年12月25日 星期二
2018年12月21日 星期五
今天寫了一個偵測溫度的arduino程式,每10分鐘傳到thingspeak 來觀察室內溫度變化
https://thingspeak.com/channels/659684
因還沒買wifi 模組,先寫一個python 程式讀取com port 輸出值,再送到thingspeak
================arduion 程式
int potPin = 0; //定義類比端口0 連接LM35 溫度感測器
void setup()
{
Serial.begin(9600);//設置Baud rate
analogReference(INTERNAL);
}
void loop()
{
int val;
float LM35temp;
val=analogRead(0);// 讀取感測器的模擬值並傳值給val
LM35temp = val / 9.31;
Serial.println(LM35temp);
delay(600000);//延時600 秒
}
==============python3 程式
import serial
import datetime
from urllib.request import urlopen
thingspeak_apikey="your api key"
s = serial.Serial('COM3')
while 1 :
res = s.readline()
res = res.decode('utf-8')
print(datetime.datetime.now(),res)
baseURL = 'http://api.thingspeak.com/update?api_key='+thingspeak_apikey+'&field1='
f = urlopen(baseURL +res)
print (f.read())
f.close()
https://thingspeak.com/channels/659684
因還沒買wifi 模組,先寫一個python 程式讀取com port 輸出值,再送到thingspeak
================arduion 程式
int potPin = 0; //定義類比端口0 連接LM35 溫度感測器
void setup()
{
Serial.begin(9600);//設置Baud rate
analogReference(INTERNAL);
}
void loop()
{
int val;
float LM35temp;
val=analogRead(0);// 讀取感測器的模擬值並傳值給val
LM35temp = val / 9.31;
Serial.println(LM35temp);
delay(600000);//延時600 秒
}
==============python3 程式
import serial
import datetime
from urllib.request import urlopen
thingspeak_apikey="your api key"
s = serial.Serial('COM3')
while 1 :
res = s.readline()
res = res.decode('utf-8')
print(datetime.datetime.now(),res)
baseURL = 'http://api.thingspeak.com/update?api_key='+thingspeak_apikey+'&field1='
f = urlopen(baseURL +res)
print (f.read())
f.close()
2018年1月6日 星期六
rad studio 10.2 在linux下indy 用openssl
試了好久才成功,網路上一時還找不到rad studio 10.2 在 linux 下run indy+openssl的資料
重點在於 IdSSLOpenSSLHeaders.IdOpenSSLSetLibPath('/lib/x86_64-linux-gnu');
看此目錄下是否有 libssl.so 及 libcrypt.so,目前用的linux 是ubuntu 16.1 x64
因不同linux 版本可能在不同目錄,要寫成通用版出來可能要在研究
program openssl_test;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils,
IdSSL,
IdSSLOpenSSL,
IdSSLOpenSSLHeaders,
idhttp,
idioHandler,
IdIOHandlerSocket,
dateutils
;
var
HTTP: TIdHTTP;
idssl:TidSSLioHandlerSocketOpenSSL;
s:string;
dt:Tdatetime;
begin
try
{ TODO -oUser -cConsole Main : Insert code here }
IdSSLOpenSSLHeaders.IdOpenSSLSetLibPath('/lib/x86_64-linux-gnu');
idSSLOpenSSL.LoadOpenSSLLibrary;
// LoadOpenSSLLibrary fail Writeln(WhichFailedToLoad());
idssl:=TidSSLioHandlerSocketOpenSSL.create;
HTTP:= TIdHTTP.Create();
http.IOHandler:=idssl;
dt:=now();
s:=http.Get('https://google.com');
writeln('Use TIME:'+formatdatetime('ss-zzzz',now()-dt));
writeln(s);
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.
重點在於 IdSSLOpenSSLHeaders.IdOpenSSLSetLibPath('/lib/x86_64-linux-gnu');
看此目錄下是否有 libssl.so 及 libcrypt.so,目前用的linux 是ubuntu 16.1 x64
因不同linux 版本可能在不同目錄,要寫成通用版出來可能要在研究
program openssl_test;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils,
IdSSL,
IdSSLOpenSSL,
IdSSLOpenSSLHeaders,
idhttp,
idioHandler,
IdIOHandlerSocket,
dateutils
;
var
HTTP: TIdHTTP;
idssl:TidSSLioHandlerSocketOpenSSL;
s:string;
dt:Tdatetime;
begin
try
{ TODO -oUser -cConsole Main : Insert code here }
IdSSLOpenSSLHeaders.IdOpenSSLSetLibPath('/lib/x86_64-linux-gnu');
idSSLOpenSSL.LoadOpenSSLLibrary;
// LoadOpenSSLLibrary fail Writeln(WhichFailedToLoad());
idssl:=TidSSLioHandlerSocketOpenSSL.create;
HTTP:= TIdHTTP.Create();
http.IOHandler:=idssl;
dt:=now();
s:=http.Get('https://google.com');
writeln('Use TIME:'+formatdatetime('ss-zzzz',now()-dt));
writeln(s);
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.
訂閱:
文章 (Atom)