질문과 답변
안녕하세요,
지난 수요일 라이브 때 PicoW의 MS Azure IOT Hub 연결이 안되던 문제는
MS Azure IOT 설정에서,
리소스 그룹 이름과 IoT Hub 이름, 장치 이름을 예제의 원본 내용과 동일하게 설정하여 연결이 됐습니다.
리소스 그룹: picoresources
IoT HUb: picohub2
장치: picow
code:
hostname = 'picowhub2.azure-devices.net'
clientid = 'picow'
user_name = 'picowhub2.azure-devices.net/picow/?api-version=2021-04-12'
passw = 'SharedAccessSignature sr=picowhub2.azure-devices.net%2Fdevices%2Fpicow&sig=GfzRxafWG9l1D48KNuFWllUax%2Bvy3k51xuxEZMGPNn4%3D&se=1662091306'
topic_pub = b'devices/picow/messages/events/'
topic_msg = b'{"buttonpressed":"1"}'
port_no = 8883
subscribe_topic = "devices/picow/messages/devicebound/#"
Variable |
Usage |
|
hostname |
|
|
clientid |
IoT Hub 장치의 장치 ID |
|
user_name |
IoT Hub에 연결하기 위한 인증의 일부 |
|
passw |
IoT Hub에 대한 인증을 위해 생성된 SAS 토큰 |
|
topic_pub |
텔레메트리 메시지를 게시할 MQTT 토픽 |
|
topic_msg |
IoT Hub에 보낼 MQTT 메시지 |
|
port_no |
MQTT를 통해 IoT Hub와 통신하는 데 사용할 포트 번호입니다. 0은 SSL을 사용할 때 기본 MQTT 포트를 사용합니다.이 경우 8883입니다. |
|
subscribe_topic |
IoT Hub 대 디바이스(클라우드-디바이스)를 수신할 수 있는 MQTT 주제 messages |
Azure IoT Explorer에서 생성한 SAS token connection string으로 부터
Hostname, DeviceID, passw 스트링을 추출하여 파이썬 코드에 입력하여 SAS 접속을 하면 됩니다.
** 접속 에러가 나는 경우 SAS 접속 스트링을 다시 생성하시고, 코드를 수정해 주시면 다시 접속이 가능합니다.
-
* 이제 라이브 때 참조한 Petecode의 포스팅의 'Step10' IOT HUB에 텔리메트리 데이터 보내기를 해볼 차례인데,
현재 배포된 'Azure IoT Explorer'의 버그인지 Telemetry 기능은 오류가 나고 있습니다.
Github repository에 질문을 올려 뒀으니 곧 해결된 버전이 올려질 거 같습니다.
하지만, Step11의 클라우드로 부터 장치로 메시지 수신은 잘 됩니다.
저는 코드를 약간 수정하여, 클라우드 메시지로 LED를 토글 하도록 했는데,
def callback_handler(topic, message_receive):
print("Received message")
print(message_receive)
if message_receive.strip() == b'led_on':
led.value(1)
elif message_receive.strip() == b'led_toggle':
led.toggle()
else:
led.value(0)
죄측의 메뉴에서 'Cloud-to-device message'를 클릭 하시고,
우측의 Message bodyd에 led_toggle 이라는 메시지를 입력 하신 후,
위의
를 클릭 하시면, Pico W 제작 보드의 LED가 On/Off되는 걸 보실 수 있습니다.
자~! 이렇게 어제 라이브에서 함께 해보지 못한 부분을 올려드렸는데요.
따라 해보시는 분들 중 잘 안되시는분들은 질문을 남겨 주시면 함께 답을 찾아 보도록 하겠습니다.
다음 주에는, 라이브가 아닌, 자료로 AWS IOT 연결 테스트 과정을 공유해드리겠습니다.
주말 잘 보내세요~~~!
로그인 후
참가 상태를 확인할 수 있습니다.