This shows you the differences between two versions of the page.
pm:prj2021:abasoc:smarthome [2021/05/02 23:50] tudor.niculescu0610 [Schema Bloc] |
pm:prj2021:abasoc:smarthome [2021/06/03 11:58] (current) tudor.niculescu0610 |
||
---|---|---|---|
Line 5: | Line 5: | ||
====== Introducere ====== | ====== Introducere ====== | ||
- | Instalarea a senzori de lumina, praf, temperatura, calitatea aerului in casa printr-un bus RS485, folosind un PC ca master, si arduino + senzori ca slave | + | Scopul proiectului este sa folosesc un arduino pentru a interfata cateva tipuri diferite de senzori cu RS485 - Modbus, pentru a putea fi folositi intr-un proiect de tipul SmartHome. |
====== Schema Bloc ====== | ====== Schema Bloc ====== | ||
- | {{ :pm:prj2021:abasoc:thniculescu_smarthome.png?1000 |}} | + | {{ :pm:prj2021:abasoc:thniculescu_smarthome.jpg?600 |}} |
====== Hardware Design ====== | ====== Hardware Design ====== | ||
- | TODO | + | Lista de piese: |
+ | * Arduino UNO | ||
+ | * Breadboard | ||
+ | * Senzor optic CNY70 | ||
+ | * UART TTL to RS485 converter | ||
+ | * USB to serial RS485 | ||
+ | |||
+ | {{ :pm:prj2021:abasoc:smarthomers485-schema-electrica.png?600 |}} | ||
====== Software Design ====== | ====== Software Design ====== | ||
- | TODO | + | Proiectul e format din 2 parti: |
+ | * slave - Arduino | ||
+ | * master - Python | ||
+ | |||
+ | Codul de slave citeste regulat senzorul si raspunde la requesturi(citiri) modbus. Foloseste biblioteca ArduinoModbus. | ||
+ | |||
+ | Codul de master ruleaza pe calculator, si citeste date de la sclavii conectati la busul RS485. Foloseste biblioteca de python minimalmodbus. | ||
====== Rezultate Obținute ====== | ====== Rezultate Obținute ====== | ||
- | TODO | + | Am reusit sa citesc senzorul pe arduino si sa afisez la seriala. |
+ | Calculatorul si Arduinoul comunica prin RS485-Modbus dar checksumul raspunsurilor de la Arduino este prost. Nu am reusit sa fac debugging intrucat folosesc seriala pentru comunicare prin RS485. | ||
- | ====== Concluzii ====== | + | Eroare checksum: |
- | TODO | + | Traceback (most recent call last): |
+ | File "./master-rs485.py", line 13, in <module> | ||
+ | val = instrument.read_register(0, 0, 3) | ||
+ | File "/usr/local/lib/python2.7/dist-packages/minimalmodbus.py", line 258, in read_register | ||
+ | return self._genericCommand(functioncode, registeraddress, numberOfDecimals=numberOfDecimals, signed=signed) | ||
+ | File "/usr/local/lib/python2.7/dist-packages/minimalmodbus.py", line 697, in _genericCommand | ||
+ | payloadFromSlave = self._performCommand(functioncode, payloadToSlave) | ||
+ | File "/usr/local/lib/python2.7/dist-packages/minimalmodbus.py", line 798, in _performCommand | ||
+ | payloadFromSlave = _extractPayload(response, self.address, self.mode, functioncode) | ||
+ | File "/usr/local/lib/python2.7/dist-packages/minimalmodbus.py", line 1075, in _extractPayload | ||
+ | raise ValueError(text) | ||
+ | ValueError: Checksum error in rtu mode: '\x01\x83' instead of '\x00\x00' . The response is: '\x01\x83\x02\xc0\xf1\x01\x83' (plain response: | ||
+ | '\x01\x83\x02\xc0\xf1\x01\x83') | ||
- | ====== Download ====== | + | {{:pm:prj2021:abasoc:smarthomers485-poza.jpeg?400}} |
- | TODO | + | |
- | ====== Jurnal ====== | + | https://youtu.be/BwLi745r3rU |
- | TODO | + | |
+ | ====== Download ====== | ||
+ | {{:pm:prj2021:abasoc:smarthomers485.zip | Source code }} | ||
====== Bibliografie/Resurse ====== | ====== Bibliografie/Resurse ====== | ||
- | [[https://ocw.cs.pub.ro/courses/pm/prj2021/abasoc/smarthome?do=export_pdf | PDF]] | + | [[https://ocw.cs.pub.ro/courses/pm/prj2021/abasoc/smarthome?do=export_pdf | PDF]] \\ |
+ | https://www.arduino.cc/en/ArduinoModbus/ArduinoModbus \\ | ||
+ | https://minimalmodbus.readthedocs.io/en/stable/apiminimalmodbus.html \\ |