DigitalSignage with Raspberry Pi
Ceci est un article sur ** Digital Signage with Raspberry Pi **, qui a remporté le Raspberry Pie Foundation Award au ** Everyone's Raspberry Contest 2019 **. Je l'ai fait dans le but de numériser un babillard papier et de le remplacer facilement.
pydrive (Google Drive API)
pdf2image
PIL
tkinter
Autoriser les comptes à accéder à l'API et aux projets Google Drive à l'aide de Google Oauth
Main.py
gauth = GoogleAuth()
drive = GoogleDrive(gauth)
files = os.listdir('./data/')
count = len(files)
dirtxt = 'dirdata.txt'
Le dossier ScanPDF
sera créé au premier lien.
Après cela, le dossier correspondant sera acquis.
Main.py
if not os.path.isfile(dirtxt):
folder = drive.CreateFile({
'title': 'ScanPDF',
'mimeType': 'application/vnd.google-apps.folder'
})
folder.Upload()
with open(dirtxt, mode='w') as f:
f.write(folder['id'])
dir_id = folder['id']
else:
with open(dirtxt) as f:
dir_id = f.read()
L'utilisateur ajoute le fichier PDF qu'il souhaite voir dans la signalisation dans le dossier ScanPDF
.
Après cela, lorsque l'intérieur du dossier est numérisé, le PDF ajouté s'affiche sur l'écran LCD.
Main.py
def scan(self):
global count
404img_path = "./data/404.png "
tmp_dir = "./tmp/"
shutil.rmtree(tmp_dir)
os.mkdir(tmp_dir)
i = 1
query = f"'{dir_id}' in parents and trashed=false"
try:
for file_list in drive.ListFile({'q': query, 'maxResults': 100}):
for file in file_list:
if file['mimeType'] == 'application/vnd.google-apps.folder':
pass
else:
file.GetContentFile(f'./tmp/{i+1}.pdf')
i += 1
except Exception as e:
print(e)
files = os.listdir(tmp_dir)
count = len(files)
if os.path.isfile(404img_path):
os.remove(404img_path)
if count == 0:
shutil.copy('404.png', 404img_path)
shutil.rmtree(tmp_dir)
os.mkdir(tmp_dir)
else:
for i in range(0, count):
shutil.copy(f'./tmp/{i+1}.pdf',
f'./data/{i+1}.pdf')
files = os.listdir('./data/')
Main.py
image = convert_from_path(f'./data/{cnt % (count) + 1}.pdf')
tmp = image[0].rotate(90, expand=True).resize((sw, sh))
self.img = ImageTk.PhotoImage(tmp)
self.canvas.itemconfig(self.imgArea, image=self.img)
Étant donné que le dossier Google Drive est utilisé comme emplacement de stockage des fichiers, il peut être mis à jour même lorsque vous êtes absent. En outre, il est possible pour plusieurs personnes de mettre à jour en définissant les droits d'accès au dossier. La tarte à la râpe elle-même ne prend presque pas de place, sa compacité dépend donc de la minceur des cristaux liquides. Actuellement, j'ai introduit ce système en tant que tableau d'affichage de contact dans un laboratoire universitaire, et il fonctionne bien. Nous ne considérons pas les problèmes de sécurité.
** Nous souhaitons la bienvenue à Pururiku Tsukkomi. Venez merci **
Recommended Posts