Flashlex-IOT for python使任何python计算机成为物联网设备变得非常容易。
flashlexiot的Python项目详细描述
flashlex iot python
面向制造商的python-raspberry-pi物联网项目
辅助材料
- Python AWS IOT SDK-https://docs.aws.amazon.com/greengrass/latest/developerguide/IoT-SDK.html
- {Python-{Python-}社区
使用python 3
您需要ssl系统包,因为IOT需要ssl
python3 -m venv venv --system-site-packages
source venv/bin/activate
python3 -m pip install --user --upgrade pip
python3 -m pip install -r requirements.txt
python3
import ssl
print (ssl.OPENSSL_VERSION)
OpenSSL 1.1.0j 20 Nov 2018
在PI上安装AWS IOT
^{pr2}$钥匙
为了连接一个设备,你需要为这个东西下载下面的证书。在
<my-iot-id>.cert.pem
A public key <my-iot-id>.public.key
A private key <my-iot-id>.private.key
酒吧酒吧
python basicPubSub.py -e <my-iot-endpoint>.iot.us-east-1.amazonaws.com -r ssl/AmazonRootCA1.pem -c ../keys/<my-iot-id>-certificate.pem.crt -k ../keys/<my-iot-id>-private.pem.key
台阶
git clone https://github.com/claytantor/flashlex-pi.git
cd flashlex-pi/
pip install virtualenv
/home/pi/.local/bin/virtualenv venv
source venv/bin/activate
pip install -r requirements.txt
创建systemd服务
有关设置服务的说明,请访问https://www.raspberrypi-spy.co.uk/2015/10/how-to-autorun-a-python-script-on-boot-using-systemd/
sudo cp flashlex.service /lib/systemd/system/flashlex.service
sudo chmod 644 /lib/systemd/system/flashlex.service
sudo systemctl daemon-reload
sudo systemctl enable flashlex.service
将日志记录添加到syslog
然后,假设您的发行版使用rsyslog管理syslog,在/etc/rsyslog.d/<new_file>.conf
中创建一个包含以下内容的文件:
if $programname == '<your program identifier>' then /path/to/log/file.log
& stop
重新启动rsyslog(sudo systemctl restart rsyslog)享受吧!您的程序stdout/stderr仍然可以通过journalctl(sudo journalctl-u<;Your program identifier>;)使用,但它们也可以在您选择的文件中使用。在
sudo cp flashlex.conf /etc/rsyslog.d/flashlex.conf
sudo systemctl daemon-reload
sudo systemctl restart flashlex.service
sudo systemctl restart rsyslog
检查服务的状态
sudo systemctl status flashlex.service
为您的服务旋转日志
您需要旋转日志,这样磁盘就不会填满日志。logrotation的conf文件如下所示:
/var/log/flashlex.log {
daily
missingok
rotate 7
maxage 7
dateext
dateyesterday
}
创建一个crontab,每天执行logrotate
/usr/sbin/logrotate /etc/logrotate.conf
引导
Python-u引导.py-c键/配置-引导.yml-d$(密码)/数据-k$(密码)/密钥
#收集信息
$ source venv/bin/activate
(venv) $ python -u collectmessage.py -c keys/config-bootstrap.yml -d $(pwd)/data -k $(pwd)/keys
starting flashelex app.
collecting message from thing:a44d80ec-bc2d-44d2-8568-eb23f7d44021
https://u100den7gk.execute-api.us-east-1.amazonaws.com/dev/things/a44d80ec-bc2d-44d2-8568-eb23f7d44021/collect {'foo': 'bar'} {'Authorization': 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6ImE0NGQ4MGVjLWJjMmQtNDRkMi04NTY4LWViMjNmN2Q0NDAyMSJ9.eyJleHAiOjE1NTU3NzU5ODMsIm5iZiI6MTU1NTc3NTg2MywiaXNzIjoidXJuOnRoaW5nOmE0NGQ4MGVjLWJjMmQtNDRkMi04NTY4LWViMjNmN2Q0NDAyMSIsImF1ZCI6InVybjpmbGFzaGxleDphNDRkODBlYy1iYzJkLTQ0ZDItODU2OC1lYjIzZjdkNDQwMjEifQ.Thv2m04Bhgqe5T7KkxGgW0ESvW4gATUhRGedzaTOul820CgQCtXlT158X6T-ysoMqTP5N1du2TF3-tY_zU_QPM-K8uTlkqspIBri72aUurl7nOTKpmlxexHaiJlM3BlkZJBIX0T4bnTraCrrc4BscNQRs7jJcWkW277F-ok59fRRYAVa2nZdZVcrI9ZeGUR3a9BrlO4YslYaldLN61YU-Q-Fg4OK3xEcooPUhNNGfEpL0Gpme3dBI123ADwn10jK8snhIBD76kOeoHy2yCD7lYufclwuXeuvl0xA3QAFdZC-GVaywb9AaNPFg1clbGqmfBkl1hIpUDWK4IodqhZ_Zg', 'Content-Type': 'application/json'}
- 项目
标签: