好吧,你已经通过了实际运行的代码。这里是如何工作的
有3个脚本运行时刻
1)listenemail.py
listenemail很简单。它定期的Gmail账户,如果发现有未读邮件,这是邮件阅读然后发送发送者的电子邮件地址到Adafruit IO饲料。
2)sendmqttpings.py
这是一个黑客,由于其局限性限制要求Adafruit MQTT(或我的能力,这可能是更可能是一个限制)。为了保持连接Adafruit IO活着,我们需要平它周期性地说,“嘿,我还活着!别忘了我!”但在Python库没有平的方法,我能找到。所以,相反,这个Python脚本发送短信“平”每隔X分钟(我2)的treatmachine饲料。这让听者接收新的MQTT消息每2分钟,从而保持一切活着
3)listenmqtt.py
这听的任何新的数据饲料Adafruit IO。当它接收到的数据,它采取行动。大多数时候,它收到“平”,它丢弃。有时,它接收一个电子邮件地址。如果是这样的话,它激活器。你会看到我创建的各种类(人、TreatDispenser、相机、emailserver)希望这些方法是相当简单和/或评论。它还设置了方便地处理其它消息来自Adafruit IO饲料,创建一个可扩展的平台,建立更多的与狗互动的方式。你会看到一些其他的使用在代码中我建立了泡菜球发射器和发射球球容器他然后放进特制的盒子,触发治疗机。
附加说明
<strong>单独的发布和订阅</strong>:我分开sendmqtt和listenmqtt因为,当我起来,我发现自己很难做错误检查和重新连接时失败的一切东西。如果任何人有一个更好的方式,我所有的耳朵,但我没有任何可靠性问题是不值得更多的我的时间。
<strong>重新启动[错误</strong>]:任何互联网连接的需要定期重新启动如停电。我创建了一个任务运行一个shell脚本每5分钟,检查是否每个脚本运行并重新启动它,如果它不是当前正在运行。它似乎工作得很好
<strong>人类</strong>:人类创造了原来是因为我打算发送信息通过短信和/或电子邮件,所以我要把我的家人的喜好。这结束了一点矫枉过正,但我不想删除类。