Pyscan¶
Pyscan е сензорен разширител, който можем да използваме с всякакви многомрежови платки за разработка (на Pycom). С акселерометър, сензор за светлина и RFID-NFC.
Product page Datasheet & Pinout
Ще изпратим данните от сензорната платка към pyBytes и към flespi[1] и ще запазим данните в MongoDB[2]. Ще използваме модула LoPy4
Когато преместите LoPy модула върху PyScan, трябва да създадем и активираме у-вото отново като посочим, че използваме PyScan.
Нужни¶
За работя със сензорния разширител ни трябват съответните библиотеки за:
- Основната библиотека за разширителната платка - https://github.com/pycom/pycom-libraries/blob/master/shields/pyscan_1.py
- RFID/NFC reader
- accelerometer
- ambient light sensor
- MQTT с променено име на класа
Програмиране на модула¶
Тъй като използваме PyBytes за конфигурация, boot.py
файла може да остане празен, модула ще вземе настройки за мрежа към която да се свърже от проекта в pyBYtes.
При използване на две отделни MQTT връзки (както в случай), ако не осигурите достатъчно време между изпращанията се получава bottleneck и съответно загуба на данни.
Сканиране на RFID/NFC карта¶
Не разполагам с подходящ тип карта.
Сензор за ускорение¶
LIS2HH12
import time
import pycom
import machine
from mqtt import MQTTClient_lib as MQTTClient
from LIS2HH12 import LIS2HH12
pycom.heartbeat(False)
pycom.rgbled(0x0A0A08)
acc = LIS2HH12()
client = MQTTClient("lopyPyscan", "mqtt.flespi.io", user="JIbSuYlgiTvbdhIviQoWoDy5lPZJ9y5I45rpRAtZkOZnVxG1bTNqmblyPa7My0jr",password="", port=1883)
client.connect()
while True:
for i in range(0,20):
acc_measurement = str(acc.acceleration())
time.sleep(0.5)
print("Acceleration: " + acc_measurement)
pybytes.send_signal(1, acc_measurement)
time.sleep(0.5)
client.publish(topic="lopy4/acceleration", msg=acc_measurement)
# sleep for 1 milisecond before iterating again
time.sleep(0.5)
Резултат и наблюдение¶
Наблюдение на работата от 3 страни: терминал, PyBytes и flespi.
Следващото видео наблюдава случай в който НЕ сме осигурили достатъчно време между действията. Обърнете внимание на данните във всеки прозорец в един момент - не са еднакви, дори се разминават с няколко съобщения.
Видео на правилна операция на у-вото:
Сорс код¶
Готов за качване проект може да свалите от тук: https://github.com/46265z/IoT-dev-setup/releases/tag/v1.0