Using a Flask Server to Connect to SUSI smart speaker

A smart speaker becomes significantly smarter when it is connected to a Smart-Phone. So, we added a way to connect the Smart-Phone to the Smart Speaker and initiate the first way towards a Smart Home. Use a simple HTTP connection protocol and deploy a light-weight server on the Raspberry Pi to allow connection from a mobile phone. Step 1: Setting Up the server Use flask to deploy a light-weight server on the raspberry pi. We’ll install flask using raspbian repos.   1>Install Flask by using the following command sudo apt-get install python3-flask   2> Setting up the boilerplate code. Open the terminal and type the following commands ` mkdir server_app cd server_app touch app.py `   Add the following code to your app.py file. This create a server at localhost:5000   from flask import Flask app = Flask(__name__) @app.route('/') def index():    return 'Hello world' if __name__ == '__main__':    app.run(debug=False, host='0.0.0.0')  #This will allow the server to be accessible on all devices   Step 2: Adding Endpoints Now , add endpoints which will trigger the scripts during initialisation of the raspberry Pi. This will trigger the respective endpoints @app.route('/auth/<auth>/<email>/<passwd>') def login(auth, email, passwd): os.system('sudo ./login.sh {} {} {}'.format(auth, email,passwd)) #nosec #pylint-disable type: ignore return 'Authenticated' # pylint-enable@app.route('/wifi_credentials/<wifissid>/<wifipassd>') def wifi_config(wifissid,wifipassd): wifi_ssid = wifissid wifi_password = wifipassd os.system('sudo ./home/pi/SUSI.AI/susi_linux/access_point/wifi_search.sh {} {}'.format(wifi_ssid,wifi_password))  #nosec #pylint-disable type: ignore return 'Wifi Configured' # pylint-enable   Step 3: Connecting to the endpoints Now, try and hit the API endpoints to get the response. eg.As shown in the above example, you will be getting a single line response and will execute a bash script behind the scenes Now you can access the other endpoints and configure the clients with the SUSI Smart Speaker References https://projects.raspberrypi.org/en https://github.com/fossasia/susi_linux http://flask.pocoo.org/docs/1.0/   Tags fossasia,GSoC,Python, Flask , raspberryPi, SUSI,smart-speaker,FOSSASIA

Continue ReadingUsing a Flask Server to Connect to SUSI smart speaker