복분자 껍질과 Wayley를 이용한 #생장 실험실 만들기

간단한 소개


지난달 세계보건기구#Growlab 프로젝트가 시작됐다.그의 생각은 매우 간단하다. 신기술을 배우는 동시에 채소를 스스로 재배하는 것이다.
그가 나에게 내가 매우 참여하고 싶은 프로젝트를 보여 주었을 때, 나는 센서를 사서, 나의 낡은 복분자 Pi를 털고, 나의 설정을 만들기 시작했다.

하드웨어


내 최종 설정은 다음과 같습니다.


산토 와호프
# 산토바이

어제 제 설정을 만들어서 즐거웠어요!이제 더 큰 화분과 씨앗만 기다리면 돼요.🌱아이디어 고마워요!
2021년 5월 10일 오전 8:05
내가 쓰는 것은:
  • Raspberry Pi 3b+, 하지만 기능이 약한 장치에서 모든 것을 실행할 수 있습니다. 예를 들어 Raspberry Zero입니다.
  • 복분자 카메라 v2
  • 그로브 습도 센서
  • 그로브 온도/습도 센서
  • 그로브 광 센서
  • Grove 16x2 디스플레이
  • 모든 Grove 구성 요소를 연결하는 Grove 베이스 캡
  • 모든 물건이 내가 옆에 서 있는 이케아 화물칸에 실렸다.나는 집 안의 물건을 위해 집을 찾아야 하지만, 그것의 틀은 매우 좋다.그리고 나서 나는 나무를 적당한 사이즈로 잘라서 모든 물건을 지퍼로 묶었다.
    이것은 아마도 가장 아름다운 설정이 아닐 것이다. 그러나 알렉스가 his talk about Growlab 에서 말한 것처럼, 이것은 만기에 관한 것이다.
    당신이 어떤 하드웨어나 센서를 사용하든지 간에growlab 프로젝트는 다른 사람이 하고 있는 일을 완전히 복제하는 것이 아니라 창조하고 배우는 것에 관한 것이다.

    소프트웨어


    나는 단지 이곳에서 Waylay의 링크를 소개하고 싶을 뿐이다. 그렇지 않으면 이 문장은 매우 길 것이다.그러나 this Github repository에서 제 전체 코드 솔루션을 보실 것을 요청합니다.

    측량하다


    센서에서 측정 값을 얻는 것은 제조사에 매우 특정된 것이다.Grove 시스템에는 자체 grove.pypython 라이브러리가 있습니다. 저는 sensors.py 코드에서 다음 서명이 있는 대상을 되돌려줍니다.
    @dataclass
    class SensorReading:
        light: float
        temperature: float
        humidity: float
        moisture: float
    

    Wayley에게 글 올리기


    이 측정값을 Waylay에 입력하는 것은 지금부터 어렵지 않습니다.우리가 취해야 할 단계는 다음과 같다.
  • 리소스 만들기
  • Webscript 만들기
  • Webscript에 데이터 전송
  • 1. 리소스 만들기


    리소스는 물리적 장치 또는 그룹을 나타내는 Waylay 시스템의 기반입니다.그것들이 무엇인지 더 잘 알기 위해 살펴보아라.새 이름을 만듭니다plant-monitor.

    받습니다Identifier. 다음 단계에 필요합니다.

    2. WebScript 만들기


    WebScript는 Waylay 시스템의 lambda 함수입니다.우리는 먼저 그 중 하나로 데이터를 보낸다. 왜냐하면 데이터를 자원에 저장하기 전에 데이터를 처리할 수 있기 때문이다.현재, 내가 데이터 처리를 변경하고 싶을 때 (예를 들어 습도를 100으로 나누기 때문에, 이것은 0에서 100이 아니라 0에서 1까지의 값이다). 나는 좋은 UI 환경에서 웹스크립트를 변경할 수 있으며, ssh를 나의 Raspberry Pi로 바꾸지 않아도 된다.
    이것은 가장 간단한 시작 방식이기 때문에 Webscript에 직접 보낼 것입니다.더 큰 용례를 구축하거나 생산 과정에서 뭔가를 실행하려면 MQTT가 더 좋은 선택이 될 수 있습니다.MQTT는 데이터를 받은 후에도 Webscript를 사용할 수 있습니다.
    Waylay에서 새 Webscript를 만들고 다음 코드 또는 유사한 내용을 붙여넣습니다.
    async function handleRequest (req, res) {
      if (!req.body) {
        // No body found
        return
      }
    
      // Parse body if needed
      let payload = req.body
      if (typeof payload === 'string' || payload instanceof String)
        payload = JSON.parse(payload)
    
      /*
        You can do some processing of the payload over here.
      */
    
      // Post values to our resource
      waylay.data.baseUrl = 'https://data-io.waylay.io'
      await waylay.data.postSeries('resource-id', payload, { store: true, forward: true })
        .catch(e => console.error(e.message))
    
      res.sendStatus(200)
    }
    
    당신의 자원'resource-id'으로 바꾸는 것을 잊지 마세요Identifier.
    보상점: 유효 부하에서 자원을 보내는 id입니다.이런 방식을 통해 여러 개의 공장 감시기를 운행할 수 있다.

    3. Webscript로 데이터 전송


    지금 우리가 해야 할 일은 Raspberry Pi에서 이 Webscript로 도량 값을 보내는 것이다.먼저 Webscript 이름 아래의 URL을 클릭하여 Webscript 링크를 복사합니다.

    Webscript가 개인 (기본적으로 개인) 이라면, 이 복사된 URL에는 인증할 비밀 영패도 포함되어 있기 때문에 코드에서 인증할 필요가 없습니다.
    이 URLPOST 값을 사용하여 트리베리에 다음과 같은 내용을 표시할 수 있습니다.
    from requests import post
    from dataclasses import asdict
    
    json_data = asdict(data)
    request = post("webscript-url", json=json_data)
    
    URL을 다시 변경합니다"webscript-url".나의 리포에 있는 webscript.py 파일을 보고 나의 완전한 실현을 보면 오류 처리가 발생할 수 있다.
    사진을 찍고 Github에 저장하는 것을 무시했습니다. 코드를 더 깊이 알고 싶으면 the Github repo 보십시오.그러나 이것은 가치관을 웨이레이 시스템에 포함시키는 기본적인 절차이다.

    데이터 보기


    이제 모든 것이 설정되었으니 Raspberry Pi에서 데이터를 전송할 수 있습니다.리소스data 탭에서 이러한 데이터를 확인할 수 있어야 합니다.

    지표 옆에 있는 Explore를 누르면 브라우저 보기로 이동합니다.리소스 매니저 뷰에 대한 자세한 내용은 에서 확인할 수 있습니다.추가 지표를 추가하는 경우 즉시 모든 항목에 대해 개요를 설명할 수 있습니다.

    우리 성공했어!🥳

    계기판


    마지막으로 나는 식물에 대한 통계 정보를 신속하게 제공할 수 있는 little dashboard도 만들었다.이 문장은 이미 매우 길기 때문에, 나는 그것을 다음에 다시 해석할 것이다.


    산토 와호프
    # 산토바이

    Wayley IO에서 저를 위한이거 빨리 안 죽어요.😄 dashboard-io.waylay.io/public?token=e…
    2021년 5월 17일 오전 9:34

    한층 더 개선하다.


    이 프로젝트를 지속적으로 개선할 수 있는 많은 방법이 있습니다!다음과 같은 항목을 나열합니다.

    자동 장치


    아직 자동화는 이뤄지지 않았다.나는 방금 모니터링과 계기판을 설치했다.나는 작은 공장의 조건이 좋지 않을 때 자동 경보를 가동할 수 있다.

    순환을 끝내다


    현재 나는 단지 공장을 감시하고 있을 뿐이지만, 만약 내가 회로를 닫고 작은 펌프로 공장에 물을 줄 수 있다면 매우 재미있을 것이다.그리고 저수지의 수위를 측정하기 위해 센서가 필요합니다🤔

    MQTT


    Webscript를 직접 사용하면 시작하기 쉬우나 생산 환경에서 MQTT를 사용하는 것이 방법이다.

    밀리리터


    당신은 기계로 멋진 일을 많이 할 수 있고, 멋진 생각들을 여기서 결합시킬 수 있다.

  • Germination detection: 씨앗이 이미 싹이 는지 검사하면 씨앗이 싹이 을 때 통지를 받을 수 있습니다.
  • 나쁜 잎 검사: 나쁜 잎이 있는지 확인한다.This dataset 사용 가능.
  • 하수 검측: 나뭇잎이 하수되었는지 확인하는 것은 보통 좋지 않은 징조이다.
  • this awesome paper에서 농업에서 더욱 멋진 ML의 응용을 찾을 수 있다.

    결론


    이것들을 함께 놓아서 나는 당연히 매우 기쁘다. 나는 나의 식물이 이번에 살아남기를 바란다😅
    다시 한 번 강조하지만, 이 프로젝트는 다른 사람이 하고 있는 일을 완전히 복제하는 것이 아니라, 당신이 가지고 있는 것을 충분히 이용하고, 이제 막 실험을 시작해야 합니다!
    이 글이 당신이 #Growlab 프로젝트에 참여할 수 있기를 바랍니다.너는 지금 당연히 시작점이 하나 있다. 채소를 직접 재배하고 도중에 기술 기술을 배울 수 있다.

    좋은 웹페이지 즐겨찾기