私はラズベリーパイ3を持っていて、スマートグリーンハウスモデルを作成しようとしています。このモデルは、温度が高すぎるとウィンドウを開くはずです。ラズベリーパイ3 +温度センサー+サーボモーター
私はPythonで新しいコードを書いていますが、いくつかの例があります:1.温度センサー用、2.サーボ・モーター用。
サーボモータで助けてもらえますか?私はサーボが20°Cの場合は30°に、21°Cの場合は40°サーボのように移動したいと考えています。サーボモータのIR例について
import sys
import Adafruit_DHT
import time
import wiringpi
sensor_args = { '11': Adafruit_DHT.DHT11,
'22': Adafruit_DHT.DHT22,
'2302': Adafruit_DHT.AM2302 }
if len(sys.argv) == 3 and sys.argv[1] in sensor_args:
sensor = sensor_args[sys.argv[1]]
pin = sys.argv[2]
else:
print('usage: sudo ./Adafruit_DHT.py [11|22|2302] GPIOpin#')
print('example: sudo ./Adafruit_DHT.py 2302 4 - Read from an AM2302
connected to GPIO #4')
sys.exit(1)
humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
if humidity is not None and temperature is not None:
print('Temp={0:0.1f}* Humidity={1:0.1f}%'.format(temperature, humidity))
else:
print('Failed to get reading. Try again!')
sys.exit(1)
temp=temperature
text_file = open("output.txt", "w")
text_file.write("%s" %(temp))
text_file.close()
wiringpi.wiringPiSetupGpio()
wiringpi.pinMode(18,wiringpi.GPIO.PWM_OUTPUT)
wiringpi.pwmSetMode(wiringpi.GPIO.PWM_MODE_MS)
wiringpi.pwmSetClock(192)
wiringpi.pwmSetRange(2000)
delay_period = 0.01
while temp==20.0:
for pulse in range(50,250,1):
wiringpi.pwmWrite(18,50)
time.sleep(delay_period)
for pulse in range(250,50,-1):
wiringpi.pwmWrite(18,pulse)
time.sleep(delay_period)
パートIは、インターネット上で見つかった:
私はPythonコードを持っています。 "while"を "if"に置き換える必要があります。私は自分で試しましたが、ローターは常に同じ角度に回転します。 誰もこの小さなコードを手伝ってくれますか?
2番目の質問ですが、10分ごとに自動的にラズベリーパイの端末「sudo python servo.py 11 17」でこのコマンドを実行するとラズベリーパイがオンになっていますか?
ありがとうございました!あなたのサーボ、100移動サーボのパルス値に応じて、 https://learn.adafruit.com/adafruits-raspberry-pi-lesson-8-using-a-servo-motor?view=all
:
wiringpi.pwmWrite(18,pulse)
は、この例を参照してください:
あなたは、コードの何かを試してみてください、その後、あなたが成し遂げ投稿してください。 ifのwhileループを変更するように頼んだら、プログラミングについては何も知りません。 –