0
私はGitHubで見つかった小さなプロジェクトをしています。私はArduino Mega 2560を持っています。動きを検出するとSMSを取得しようとしていますが、 Pythonでエラーが発生したときに、サーバーを実行しようとしました。ここでPython(Arduinoモーションセンサー、SMS通知あり)
はコードです:私は実行時にTELAPIがこれ以上あるよう
#!/usr/bin/env python
import serial
import requests
from datetime import datetime, timedelta
# Set the serial port to the same serial port you uploaded the arduino sketch to
# In the Arduino IDE, click "Tools > Serial Port"
# SERIAL_PORT = "/dev/tty.usbserial-A70064Mh"
SERIAL_PORT = "/dev/cu.usbmodem1421"
SERIAL_BAUD = 115200
# Don"t send more than one message every 30 minutes
SENSOR_INTERVAL = timedelta(minutes=30)
SMS_FROM = "" # Make sure this is a number on telapi.com or you'll get charged extra for spoofing
SMS_TO = ""
SMS_BODY = "ALERT! Your Arduino just detected motion!"
TELAPI_ACCOUNT_SID = ""
TELAPI_TOKEN = ""
# Try to import TELAPI_ACCOUNT_SID and such from settings_local.py, if it exists
try:
from settings_local import *
except ImportError:
pass
TELAPI_SMS_URL = "https://api.zang.io/v2/Accounts/{AccountSid}/SMS/Messages" % TELAPI_ACCOUNT_SID
# Start the server
if __name__ == "__main__":
print "Starting SMS motion detector server at", datetime.now()
last_sent_time = None
# Open a serial connection to the Arduino
with serial.Serial(SERIAL_PORT, SERIAL_BAUD) as arduino:
while True:
print "Polling Arduino..."
# Listen for the Arduino to send a byte
byte_received = arduino.read()
print "Received byte:", byte_received
# Motion was detected
if byte_received == "1":
print "Motion detected at", datetime.now()
# If we haven"t sent an SMS in the last 30 minutes, send one now
if not last_sent_time or (datetime.now() - last_sent_time) > SENSOR_INTERVAL:
last_sent_time = datetime.now()
print "Sending SMS..."
# Send request to TelAPI to send SMS
try:
data = {
"From": SMS_FROM,
"To": SMS_TO,
"Body": SMS_BODY,
}
requests.post(TELAPI_SMS_URL, data=data, auth=(TELAPI_ACCOUNT_SID, TELAPI_TOKEN))
print "** SMS Sent! **"
except Exception as e:
print "Some error occurred while sending SMS:", e
だから、「Pythonのserver.pyは、」それは
Traceback (most recent call last):
File "server.py", line 28, in <module>
TELAPI_SMS_URL = "https://api.zang.io/v2/Accounts/{AccountSid}/SMS/Messages" % TELAPI_ACCOUNT_SID
TypeError: not all arguments converted during string formatting
私は、このエラーを与える今では見えませんが、奘は撮影していそれは、どこの助けにも感謝します、ありがとう!