④ Raspberry Pi3와 토양 습도 센서로 토양 습도 취득 (YL69 + MCP3208)
6066 단어 Raspberrypi3
준비하는 것(주변기기)
1. Raspberry Pi 3
2.YL-69(토양 습도 센서)
3.MCP3208(A/D 컨버터)
4. 남성 점퍼, 여성 점퍼 (Raspberry Pi 초보자 키트 사용)
yl69+MCP3208+브레드보드+Raspberry Pi 연결
스크립팅
yl69.py# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO
from time import sleep
import spidev
#GPIOのピン番号
pin = 22
# initialize GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.cleanup()
#GPIOの指定したピン番号を出力端子に設定
GPIO.setup(pin, GPIO.OUT)
#出力用関数
def output_fromGPIO(pin, output):
GPIO.output(pin, output)
sleep(0.1)
#MCP3002動作用関数
def readadc_spidev(adcnum):
if ((adcnum > 1) or (adcnum < 0)):
return -1
#0x68は1chを使う場合です。2chは0x78を使います。
ret = spi.xfer2([0x68,0x00])
#データは8ビットずつに分かれているので、最初の8ビットを上位データとして8ビットシフトし、下位データと結合する
#MCP3002は10ビット目までがデータなので、10ビット目までを残して他のデータを消す
adcout = ((ret[0]<<8) + ret[1])&0x3ff
return adcout
#SPI通信開始
spi=spidev.SpiDev()
spi.open(0, 0) # bus0, CE0
#データ取得前にYL-69に電圧を印可
output_fromGPIO(pin,True)
try:
while True:
#先ほど定義したMCP3002の関数を呼び出す
getValue = readadc_spidev(0)
#値がちゃんと取れたらデータを出力。取れるまでトライ
if getValue != -1:
print(getValue)
break;
sleep(1)
except KeyboardInterrupt:
pass
#YL-69の印加電圧をとめる
output_fromGPIO(pin,False)
#SPI通信終了
spi.close()
스크립트 실행
sudo python yl69.py
>>0
>>0
>>0
모두 0으로 토양 습도를 취할 수 없는,,
Raspberry Pi3와 yl69와 MCP3208의 조합이 나쁜지
원인은 수수께끼입니다.
Reference
이 문제에 관하여(④ Raspberry Pi3와 토양 습도 센서로 토양 습도 취득 (YL69 + MCP3208)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ksk8/items/1e467dce91e084edb2ca
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
스크립팅
yl69.py# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO
from time import sleep
import spidev
#GPIOのピン番号
pin = 22
# initialize GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.cleanup()
#GPIOの指定したピン番号を出力端子に設定
GPIO.setup(pin, GPIO.OUT)
#出力用関数
def output_fromGPIO(pin, output):
GPIO.output(pin, output)
sleep(0.1)
#MCP3002動作用関数
def readadc_spidev(adcnum):
if ((adcnum > 1) or (adcnum < 0)):
return -1
#0x68は1chを使う場合です。2chは0x78を使います。
ret = spi.xfer2([0x68,0x00])
#データは8ビットずつに分かれているので、最初の8ビットを上位データとして8ビットシフトし、下位データと結合する
#MCP3002は10ビット目までがデータなので、10ビット目までを残して他のデータを消す
adcout = ((ret[0]<<8) + ret[1])&0x3ff
return adcout
#SPI通信開始
spi=spidev.SpiDev()
spi.open(0, 0) # bus0, CE0
#データ取得前にYL-69に電圧を印可
output_fromGPIO(pin,True)
try:
while True:
#先ほど定義したMCP3002の関数を呼び出す
getValue = readadc_spidev(0)
#値がちゃんと取れたらデータを出力。取れるまでトライ
if getValue != -1:
print(getValue)
break;
sleep(1)
except KeyboardInterrupt:
pass
#YL-69の印加電圧をとめる
output_fromGPIO(pin,False)
#SPI通信終了
spi.close()
스크립트 실행
sudo python yl69.py
>>0
>>0
>>0
모두 0으로 토양 습도를 취할 수 없는,,
Raspberry Pi3와 yl69와 MCP3208의 조합이 나쁜지
원인은 수수께끼입니다.
Reference
이 문제에 관하여(④ Raspberry Pi3와 토양 습도 센서로 토양 습도 취득 (YL69 + MCP3208)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ksk8/items/1e467dce91e084edb2ca
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO
from time import sleep
import spidev
#GPIOのピン番号
pin = 22
# initialize GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.cleanup()
#GPIOの指定したピン番号を出力端子に設定
GPIO.setup(pin, GPIO.OUT)
#出力用関数
def output_fromGPIO(pin, output):
GPIO.output(pin, output)
sleep(0.1)
#MCP3002動作用関数
def readadc_spidev(adcnum):
if ((adcnum > 1) or (adcnum < 0)):
return -1
#0x68は1chを使う場合です。2chは0x78を使います。
ret = spi.xfer2([0x68,0x00])
#データは8ビットずつに分かれているので、最初の8ビットを上位データとして8ビットシフトし、下位データと結合する
#MCP3002は10ビット目までがデータなので、10ビット目までを残して他のデータを消す
adcout = ((ret[0]<<8) + ret[1])&0x3ff
return adcout
#SPI通信開始
spi=spidev.SpiDev()
spi.open(0, 0) # bus0, CE0
#データ取得前にYL-69に電圧を印可
output_fromGPIO(pin,True)
try:
while True:
#先ほど定義したMCP3002の関数を呼び出す
getValue = readadc_spidev(0)
#値がちゃんと取れたらデータを出力。取れるまでトライ
if getValue != -1:
print(getValue)
break;
sleep(1)
except KeyboardInterrupt:
pass
#YL-69の印加電圧をとめる
output_fromGPIO(pin,False)
#SPI通信終了
spi.close()
sudo python yl69.py
>>0
>>0
>>0
모두 0으로 토양 습도를 취할 수 없는,,
Raspberry Pi3와 yl69와 MCP3208의 조합이 나쁜지
원인은 수수께끼입니다.
Reference
이 문제에 관하여(④ Raspberry Pi3와 토양 습도 센서로 토양 습도 취득 (YL69 + MCP3208)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ksk8/items/1e467dce91e084edb2ca텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)