Lav en Python Powered ChatBot #Raspberry Pi: 4 trin (med billeder)

Lav en Python Powered ChatBot #Raspberry Pi: 4 trin (med billeder)

Indholdsfortegnelse:

Anonim

Hej Guys, I disse instruktables går jeg

viser dig, hvordan du laver simpel Python-baseret chatbot. det er ikke stærkt som Amazon alexa.

Skal se videoen først (klik her)

forsyninger:

Trin 1: Krav

Hardware:

#Raspberry pi 3

(Bemærk: -Du kan bruge Can hindbær pi-version sørg for at du har tilsluttet wiffi Dongle til det)

Software:

# python2

(Ingen grund til at installere python det er allerede installeret på hindbær pi)

Tilslut LED til GPIO 11.

Trin 2: Arbejde

NU, lad mig forklare, hvordan denne chatboat virker her, raspberry pi fungerer som server og vores app fungerer som klient. Pythonserver på Raspberry pi håndterer alle anmodninger fra klienten. sørg for, at RPi & android-telefonen skal være tilsluttet det samme wifi-netværk.

Du kan også få adgang til din server uden for dit hjem wiffi netværk ved port videresendelse.

Trin 3: Android App

Jeg har oprettet denne android app ved hjælp af MIT app opfinder 2.

Denne app er stort set en TCP-klient, som gør kommunikation med serveren.

Du kan downloade denne app fra nedenstående link (klik her).

Jeg har givet.aia-fil af MIT app opfinderprojekt, du kan importere det og redigere det efter dine behov.

Trin 4: Python Server

Åbn Python 2.7, Kopier denne kode og indsæt den.

Kør derefter denne kode.

Du kan ændre det efter dine behov.

import stikkontakt

import sys import RPi.GPIO som GPIO fra tråd import *

import datetime import tilfældige importanmodninger import os

GPIO.setwarnings (False) GPIO.setmode (GPIO.BOARD) GPIO.setup (11, GPIO.OUT)

host = '' port = 8220 adresse = (vært, port)

server_socket = socket.socket (socket.AF_INET, socket.SOCK_STREAM) server_socket.bind (adresse) server_socket.listen (5) #Variabel for antallet af forbindelser numbOfConn = 0

#Navn af liste anvendt til forbindelser addressList = clients = set () ###################################################################################### #########database af vores bot Hilsen = 'hola', 'hej', 'hej', 'hej' spørgsmål = 'hvordan har du det', 'hvordan har du det' svar = 'okay', 'jeg har det fint' database = {'jarvis': 'hej, herre hvordan kan jeg hjælpe dig', 'navn': 'jarvis', 'hvad hedder du': 'jeg hedder jarvis', 'hej jarvis': 'hej, herre hvordan kan jeg hjælpe dig ',' hvad kan du gøre for mig ':' jeg kan gøre mange ting.. '}

udskrive ("Lytte til klient …") ############################################################################################ #######################chatbot kode her def chatboat (data): hvis data i databasen: print (database data) # os.system ("flite -t" "+ database data +" '") sclient (database data) elif data i spørgsmål: random_response = random.choice (random_response) # os.system ("flite -t ​​'" + random_response + "'") sclient (random_response) elif data i hilsner: random_greeting = random.choice (greetings) print (random_greeting) sclient # os.system ("flite -t ​​'" + random_greeting + "'") elif 'light on'in data eller' led på 'i data: sclient ("light tænd") # os.system ("flite -t 'lys tænd')) GPIO.output (11, True) print ("Lys på") elif 'light of' i data eller 'led af' i data: sclient ("light off") # os.system "fliter -t" lys slukker "") GPIO.output (11, False) print ("Light Off") elif 'time' i data: nu = datetime.datetime.now () time = str (nu.hour) + str ("timer") + str (now.minute) + str ("minu tes ") print (tid) # os.system (" flite -t ​​"" + tid + "" ") sclient (tid) elif'datoen'en data: nu = datetime.datetime.now () dato = str s /% s /% s "% (nu.month, nu.dag, nu.år)) print (dato) # os.system (" flite -t' "+ dato +" '") sclient conn.send ("undskyld venligst venligst..") add_data = open ("newdata.txt", "a") add_data.write (" n") add_data.write (data) add_data.close () #### ################################################## ##########Sending Besvar alle klienter def sclient (mess): for c i klienter: prøv: c.send (rod) bortset fra: c.close () ##################################################################################### #################serverserver kode her def clientthread (conn, adresseliste): #infinite loop så funktionen ophører ikke, og tråden slutter ikke. mens True: output = conn.recv (2048); hvis output.strip () == "disconnect": conn.close () sys.exit ("Modtaget frakoblingsmeddelelse. Lukning af.") conn.send ("forbindelsestab") elif output: print ("Meddelelse modtaget fra klient: ") data = str (output).lower () print (data) print (" Svar fra serveren: ") chatboat (data)

mens True: #Acceptere indgående forbindelser conn, address = server_socket.accept () print ("Connected til klient på", adresse) clients.add (conn) #Creating new thread. Kalding af klientstyringsfunktion til denne funktion og forbigående conn som argument. start_new_thread (clientthread, (conn, adresseliste)) #start ny tråd tager 1. argument som et funktionsnavn, der skal køres, andet er tuplen af ​​argumenter til funktionen.

conn.close () sock.close ()

Download denne kode herfra

For flere projekter kan du tjekke min YouTube-kanal (Electronics Forever)

Runner Up i

Internet af Tingkonkurrence 2017