Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Schakel Alexa Control in op je plafondventilator

Componenten en benodigdheden

Raspberry Pi 3 Model B
× 1
Arduino UNO
× 1
Relais (algemeen)
ofwel een 5V-relais zodat je rechtstreeks kunt communiceren met Arduino of een relais-interfacekaart zou voldoende zijn
× 1
Ventilatorregelaar
u kunt elk type gebruiken, zolang u maar een terminal kunt vinden om deze van stroom te voorzien. Ik zou oudere regelgevers willen voorstellen die resistieve blokken gebruikten om de geleverde spanning te verminderen
× 1

Benodigde gereedschappen en machines

Soldeerbout (algemeen)

Apps en online services

Arduino IDE
Amazon Alexa Alexa Skills Kit
Ngrok

Over dit project

Ik zal hier in detail beschrijven hoe ik mijn gewone plafondventilator slim heb gemaakt door Amazon Alexa te integreren voor snelheidsregeling daarvan. We zullen de amazon Alexa-vaardigheden gebruiken om de snelheidsverandering te initiëren en zullen ngrok zijn tunneling-service om het verzoek door te sturen naar onze lokaal gehuisveste RPi-server, die onze Arduino uno zal vertellen om het gerelateerde relais in te schakelen.

Onze lokale Raspberry Pi-server instellen

we hebben de volgende services nodig om onze server te gebruiken.

  • Python PIP:om python-pakketten te installeren, als u python 2.7 of 3 gebruikt, wordt standaard pip geïnstalleerd, dus u kunt deze stap vermijden
sudo apt-get install python-pip  
  • Flask:Flask is een serverpakket voor python waarmee je gemakkelijk python-servers kunt implementeren.
pip install flask  
  • flask ask:een flask-extensie die wordt gebruikt om gemakkelijk Alexa-vriendelijke programma's te maken.
pip install flask-ask  
  • pyserial:seriële communicatiemodule voor python
sudo apt-get install pyserial 
  • libpython2.7-dev
sudo apt-get intall libpython2.7-dev 

alle benodigde modules zijn geïnstalleerd, het is tijd om de server te laten draaien. we moeten het python-script invoeren voor hetzelfde

from flask import Flaskfrom flask_ask import Ask, statementimport requestsimport jsonimport serial ser =serial.Serial("/dev/ttyAMA0",9600)app =Flask(__name__)ask =Ask(app, '/')@ [email protected]("FanOn")def on():ser.write(b'1') return statement("Plafondventilator ingeschakeld.")@ask.intent("FanOff")def off() :ser.write(b'0') return statement("Plafondventilator uitgeschakeld.")@ask.intent("FanLevelUp")def up():ser.write(b'+') return statement("Plafondventilator versnellen.")@ask.intent("FanLevelDown")def down():ser.write(b'-') return statement("Plafondventilator verlagen.")if __name__ =="__main__":app.run (debug=True) 

Voer dit python-script uit en voeg dit script toe aan de automatische startlijst van uw RPi.

3. Ngrok downloaden

Ngrok is een veilig tunnelplatform om uw apparaat online te maken. Met dit platform kunt u op een zeer eenvoudige manier uw webapplicatie of welke applicatie dan ook online laten gaan. Ga om te downloaden naar de officiële site en download voor ARM.

https://ngrok.com/

Pak het uit en ga naar de map waar je het uitpakt. Voer het uit met het commando

./ngrok http 5000  

Alexa-vaardigheid

Ga naar de Amazon-ontwikkelaarspagina en meld u aan voor uw ontwikkelaarsaccount

https://developer.amazon.com/

Ga naar de ontwikkelaarsconsole nadat je je hebt aangemeld en voer nu in selecteer "Alexa skill kit"

selecteer nu "Nieuwe vaardigheid toevoegen"

Voer de naam voor uw vaardigheid in en voer een aanroepnaam in. zorg ervoor dat uw aanroepnaam aan de noodzakelijke voorwaarden voldoet

opslaan en doorgaan naar de volgende stap

Voer hier de intenties in voor het aanroepen van de vaardigheid, en uitingsvoorbeelden, dwz de woordcombinaties die elke intentie moeten initiëren.

bedoelingen zijn als volgt

{ "intents":[ { "intent":"FanOn" }, { "intent":"FanOff" }, { "intent":"FanLevelUp" }, { "intent":"FanLevelDown" }] } 

voorbeelduitingen

FanOn zegt ventilator aanFanOn zegt aanFanOff zegt offFanOff zegt ventilator uitFanLevelUp zegt ventilatorniveau omhoogFanLevelUp zegt ventilatorsnelheid verhogenFanLevelDown zeg ventilatorniveau omlaagFanLevelDown zeg ventilatorsnelheid verlagen 

Sla op en ga door naar de volgende fase. hier moet u de locatie invoeren waarnaar u de gegevens moet verzenden zodra een voornemen is ingeroepen.

aangezien we ngrok . gebruiken , selecteer HTTPS, en voer de beveiligde link in die is gegenereerd in ngrok serve, sla deze op en ga verder met de volgende stap

kies de tweede optie voor SSL-certificaat en ga verder

Om te controleren of onze setup werkt of niet. Zorg ervoor dat uw ngrok-server werkt en dat het Python-script ook draait, anders werkt het niet.

we kunnen zien dat servers verzoeken ontvangen en bijwerken.

Arduino-code

upload de bijgevoegde schets van je arduino en sluit hem aan op raspberry pi zoals uitgelegd in het schema.

int Fan[] ={13,12,11,10,9,8}; int n=0;void reset();void set(char);void setup() { // plaats hier uw setup-code om één keer uit te voeren:for(int i=0;i<6;i++){ pinMode(Fan [i], UITGANG); } Serieel.begin(9600); } void loop() { char x;if (Serial.available()){ x=Serial.read(); reset(); set(x);}}void reset(){ for(int i=0;i<6;i++) {digitalWrite(Fan[i], LOW); }}void set(char x){ switch (x) { case '1':n=1; pauze; geval '+':n++; pauze; geval '-':n--; pauze; geval '0':n=0; pauze; } digitalWrite(Fan[n],HIGH);}  

Hardware

sluit de hardware aan zoals getoond in het schema

Gelukkig maken. maak elk ander apparaat op dezelfde manier spraakgestuurd :)

Code

  • arduino schets
  • Python-servercode
arduino schetsArduino
upload deze code naar je arduino en verbind hem met je raspberry pi server
int Fan[] ={13,12,11,10,9,8}; int n=0;void reset();void set(char);void setup() { // plaats hier uw setup-code om één keer uit te voeren:for(int i=0;i<6;i++){ pinMode(Fan [i], UITGANG); } Serieel.begin(9600); } void loop() { char x;if (Serial.available()){ x=Serial.read(); reset(); set(x);}} void reset(){ for(int i=0;i<6;i++) {digitalWrite(Fan[i], LOW); }}void set(char x){ switch (x) { case '1':n=1; pauze; geval '+':n++; pauze; geval '-':n--; pauze; geval '0':n=0; pauze; } digitalWrite(Fan[n],HIGH);} 
Python Server-codePython
un deze code in uw spython nadat ngrok is ingesteld om gegevens te ontvangen
van flask import Flaskfrom flask_ask import Ask, statementimport requestsimport jsonimport serial ser =serial.Serial("/dev/ttyAMA0",9600)app =Flask(__name__ )ask =Ask(app, '/')@[email protected]("FanOn")def on():ser.write(b'1') return statement("Plafondventilator ingeschakeld.")@ ask.intent("FanOff")def off():ser.write(b'0') return statement("Plafondventilator uitgeschakeld.")@ask.intent("FanLevelUp")def up():ser.write (b'+') return statement("Plafondventilator versnellen.")@ask.intent("FanLevelDown")def down():ser.write(b'-') return statement("Plafondventilator verlagen." )if __name__ =="__main__":app.run(debug=True)

Schema's

zo verbind je de apparaten met elkaar

Productieproces

  1. Een draadloos sensornetwerk in uw huis bouwen
  2. Bedien muntvangers met Arduino
  3. Arduino-controlecentrum
  4. Alexa gestuurde LED's via Raspberry Pi
  5. Arduino met Bluetooth om een ​​LED te bedienen!
  6. Arduino-luchtbevochtigerbediening
  7. Arduino Nano:bedien 2 stappenmotoren met joystick
  8. Bedien uw led met Cortana
  9. Volledige controle over uw tv met Alexa en Arduino IoT Cloud
  10. Sluit uw centrale verwarming aan op Arduino
  11. 25 kHz 4-pins PWM-ventilatorregeling met Arduino Uno