Cet article est la suite de Cet article (Introduction à l'IoT).
Dans le précédent article IoT, j'ai reçu un e-mail lors de sa publication, mais ici, j'ai essayé d'utiliser la fonction AWS pour faire sonner le téléphone.
Lorsqu'un article de publipostage est détecté à l'aide d'une partie du mécanisme du centre d'appels appelé «Amazon Connect» via AWS serverless «Lambda», un appel est lancé vers le numéro de téléphone spécifié et une notification indiquant que l'article de publipostage est arrivé. Peut maintenant être fait.
Plus précisément, comme le montre la figure ci-dessous, nous créons une fonction pour démarrer une fonction Python sur "Lambda" à partir d'Amazon API Gateway à partir de la carte du micro-ordinateur, nous connecter à Amazon Connect et appeler le numéro de téléphone spécifié. .. L'avantage d'utiliser Amazon Connect est que lorsque le téléphone sonne, la voix synthétique peut lire la chaîne de caractères sur le Python de Lambda comme en japonais. Je ne l'ai pas vu cette fois, mais en rendant dynamique le contenu des paramètres d'ApiGateway, par exemple, il sera possible de dire l'heure de publication par la voix, et il sera possible de réaliser facilement une lecture dynamique à voix haute. ..
Le temps nécessaire était d'environ 2 à 3 heures pour vérifier et prendre des captures d'écran de l'état où le compte était défini. Si vous y êtes habitué, cela prendra moins de 30 minutes.
J'ai fait référence à l'article de blog suivant
Créez un mécanisme pour passer un appel avec Amazon Connect pour 4 $ par mois https://dev.classmethod.jp/cloud/aws/amazon-connect-system-alert/#toc-amazon-conenct
Premier,
Créer une instance Amazon Connect https://dev.classmethod.jp/cloud/aws/hello-connect-tokyo-region/#toc-amazon-connect
↑ Tout en regardant cela, effectuez de l'instance de Connect au réglage et au test.
Si vous cochez l'option de téléphonie entrante et obtenez le numéro de téléphone - liez le flux de demande au numéro de téléphone, vous pouvez tester en appelant le numéro de téléphone obtenu. Après le test, décochez l'appel entrant dans les paramètres de l'option Téléphonie.
Vous pouvez passer un appel depuis Lambda via Python. Ici, j'ai créé une fonction avec le nom iotPost_AmazonConnect.
lambda_function.py
import boto3
import logging
logger = logging.getLogger()
logger.setLevel(logging.INFO)
def lambda_handler(event, context):
logger.info(event)
logger.info(context)
connect = boto3.client('connect', region_name='ap-northeast-1')
message = 'Notification de IoT Smart Post. La publication a été détectée. Veuillez sortir l'article envoyé et le vérifier. Merci d'utiliser.'
logger.info(message)
response = connect.start_outbound_voice_contact(
DestinationPhoneNumber='+810000004717',
ContactFlowId='edf8xxxx-xxxx-xxxx-xxxx-xxxxxxxx16f4',
InstanceId='e82dxxxx-xxxx-xxxx-xxxx-xxxxxxxx6cf3',
SourcePhoneNumber='+815000000000',
Attributes={
'message': message
}
)
logger.info(response)
Ici, nous avons donné à cette fonction toute la puissance d'Amazon Connect (AmazonConnctFullAccess).
Si vous appuyez sur le bouton de test ici et que vous le démarrez avec un json approprié, le téléphone sonnera et la chaîne de caractères spécifiée dans lambda_function.py sera lue à voix haute en japonais.
Comme le montre la figure ci-dessous dans l'article précédent, il s'agit généralement d'une image de l'un en tant que destination de notification d'AWS SNS.
Cette fois, nous allons appeler la fonction Lambda depuis API Gateway. J'ai pris une capture d'écran ici avec la configuration de la méthode POST, mais je l'ai en fait configurée avec la méthode GET.
Lorsque vous vérifiez la ressource, vous verrez un écran comme la capture d'écran.
Lorsque vous cliquez sur le test, le téléphone sonne réellement et vous pouvez entendre l'annonce.
↓ Après avoir terminé les paramètres de la passerelle API, vous obtiendrez une URL comme celle-ci, donc lorsque vous y accédez réellement avec la méthode GET, le téléphone sonnera et vous serez averti qu'il a été publié. https://????????????.execute-api.ap-northeast-1.amazonaws.com/public
Après cela, vous pouvez modifier l'URL de destination de la notification de la carte du micro-ordinateur avec Arduino IDE.
Étant donné que le côté ESP8266 (WiFiClientSecure.h sur Scketch) utilisé cette fois n'inclut pas le certificat serveur (certificat racine) pour AWS SSL, il n'est pas possible de communiquer directement avec ApiGateway par SSL, et http (non-SSL) ) Doit être transféré via un autre serveur ou CloudFront. Si la carte de micro-ordinateur réellement expédiée nécessite une communication cryptée telle que SSL, vous devez faire attention à l'émetteur et à la date d'expiration de ce certificat racine.
C'est tout pour DEMO.
Recommended Posts